---
id: service-read-update-my-data-status
title: "Read an open data update request of the individual"
description: "Tells if the individual has an open request (state `1` or `2`) to update its data in your organisation, and gives its ID, state and date. The individual can have more than one open update request: the answer then gives one of them. Use the list to see all of them. This route takes an API key or a token of the identity provider of the organisation, not an individual token or a token of the privacy dashboard login."
sidebar_label: "Read an open data update request of the 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-individual-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 an open data update request of the individual</h1>

<MethodEndpoint method={"get"} path={"/v4/service/consent/organisation/data-update/status"}></MethodEndpoint>



Tells if the individual has an open request (state `1` or `2`) to update its data in your organisation, and gives its ID, state and date. The individual can have more than one open update request: the answer then gives one of them. Use the list to see all of them. This route takes an API key or a token of the identity provider of the organisation, not an individual token or a token of the privacy dashboard login.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Header Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"in":"header","name":"X-ConsentBB-IndividualId","required":false,"schema":{"type":"string"},"example":"6af081b138e8f33dcf799628","description":"ID of the individual, or its `externalId`. Mandatory with an API key: without it the answer is `400` (\"IndividualId is not present in request header\"), and an unknown individual gets `400` too. With an individual token, leave it out: the server takes the individual from the token. Send it only on the routes that list it: with an API key that has resource scopes (for example `consent-records:read`), another route answers `400` to a request with this header."}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

An open update request, or `requestOngoing` `false`.

</div><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={"requestOngoing"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","example":true,"description":"`true` when the individual has an open request of this type."}}></SchemaItem><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"6af19d442d6fb7b6ac6efd11","description":"ID of the open request, or `\"\"`."}}></SchemaItem><SchemaItem collapsible={false} name={"state"} required={true} schemaName={"integer"} qualifierMessage={"**Possible values:** [`0`, `1`, `2`]"} schema={{"type":"integer","enum":[0,1,2],"example":2,"description":"State of the open request: `1` initiated, `2` acknowledged. `0` when there is no open request."}}></SchemaItem><SchemaItem collapsible={false} name={"stateStr"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `Request initiated`, `Request acknowledged`]"} schema={{"type":"string","enum":["","Request initiated","Request acknowledged"],"example":"Request acknowledged","description":"Name of the state, or `\"\"`."}}></SchemaItem><SchemaItem collapsible={false} name={"requestedDate"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"2026-11-09 10:15:32 +0000 UTC","description":"Date and time of the open request in UTC, in the text form `YYYY-MM-DD hh:mm:ss +0000 UTC` (not RFC 3339), or `\"\"`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"requestOngoing\": true,\n  \"id\": \"6af19d442d6fb7b6ac6efd11\",\n  \"state\": 2,\n  \"stateStr\": \"Request acknowledged\",\n  \"requestedDate\": \"2026-11-09 10:15:32 +0000 UTC\"\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"open"} value={"open"}><Markdown> The individual has an open request</Markdown><ResponseSamples responseExample={"{\n  \"requestOngoing\": true,\n  \"id\": \"6af2cdfc2d6fb7b6ac6efd17\",\n  \"state\": 1,\n  \"stateStr\": \"Request initiated\",\n  \"requestedDate\": \"2026-11-10 07:55:40 +0000 UTC\"\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"none"} value={"none"}><Markdown> The individual has no open request</Markdown><ResponseSamples responseExample={"{\n  \"requestOngoing\": false,\n  \"id\": \"\",\n  \"state\": 0,\n  \"stateStr\": \"\",\n  \"requestedDate\": \"\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

The `X-ConsentBB-IndividualId` header is missing, or the individual does not exist.

</div><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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

The API key or the token is missing or not valid.

</div><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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error.

</div><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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      