---
id: config-read-individual
title: "Read individual"
description: "This endpoint is used to read an individual info defined for an organisation in the consent building block."
sidebar_label: "Read individual"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/consent-management-admin-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>Read individual</h1>

<MethodEndpoint method={"get"} path={"/config/individual/{individualId}"}></MethodEndpoint>



This endpoint is used to read an individual info defined for an organisation in the consent building block.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Unique ID of an object","in":"path","name":"individualId","required":true,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Individual retrieved successfully

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>individual</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Shallowly models an Individual which may reference some instance in an external system (registration system, functional ID, foundational ID etc). An Individual instance of this model is not to be mistaken with a unique natural individual. It is up to the system owner to decide if this record permits mapping to a natural individual and/or if a single Individual row can map to several consent agreements.

</div><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"64541a2e6e7569000145cd66","description":"The unique ID of an Individual row."}}></SchemaItem><SchemaItem collapsible={false} name={"externalId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"user@example.com","description":"Reference to another foundational/functional ID, which is likely PII"}}></SchemaItem><SchemaItem collapsible={false} name={"externalIdType"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"email","description":"External ID type specifier. A string. For instance \"email\" or \"foundational ID\". Can be used in later queries."}}></SchemaItem><SchemaItem collapsible={false} name={"identityProviderId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"64541a2e6e7569000145ab12","description":"This could be an FK, but for now we do not have a mapping of identity providers. IDBB may have more requirements."}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of the individual"}}></SchemaItem><SchemaItem collapsible={false} name={"iamId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Create a user in keycloak and save the `id` as `iamId`"}}></SchemaItem><SchemaItem collapsible={false} name={"email"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Email ID"}}></SchemaItem><SchemaItem collapsible={false} name={"phone"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Phone"}}></SchemaItem><SchemaItem collapsible={false} name={"pushNotificationToken"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Device token of the individual"}}></SchemaItem><SchemaItem collapsible={false} name={"deviceType"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`android`, `ios`]"} schema={{"type":"string","description":"Device type(OS) of the individual","enum":["android","ios"]}}></SchemaItem><SchemaItem collapsible={false} name={"mapperId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Defines the mapper id of the individual"}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"individual\": {\n    \"id\": \"64541a2e6e7569000145cd66\",\n    \"externalId\": \"user@example.com\",\n    \"externalIdType\": \"email\",\n    \"identityProviderId\": \"64541a2e6e7569000145ab12\",\n    \"name\": \"string\",\n    \"iamId\": \"string\",\n    \"email\": \"string\",\n    \"phone\": \"string\",\n    \"pushNotificationToken\": \"string\",\n    \"deviceType\": \"android\",\n    \"mapperId\": \"string\"\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

bad input parameter

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"404"} value={"404"}><div>

Resource not found

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      