---
id: onboard-read-status
title: "Read API status"
description: "Returns the tenant mode and the version of the API. Use it to check that your API key works and which release of the API answers."
sidebar_label: "Read API status"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/openid4vc-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 API status</h1>

<MethodEndpoint method={"get"} path={"/v4/onboard/platform/status"}></MethodEndpoint>



Returns the tenant mode and the version of the API. Use it to check that your API key works and which release of the API answers.

<div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

The tenant mode and the version of the API.

</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={"applicationMode"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`multi-tenant`, `single-tenant`]"} schema={{"type":"string","enum":["multi-tenant","single-tenant"],"description":"The tenant mode of the installation: `multi-tenant` for an installation with many organisations, `single-tenant` for an installation with one organisation.","example":"multi-tenant"}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The release of the API (the Git tag of the build).","example":"v2026.10.10"}}></SchemaItem><SchemaItem collapsible={false} name={"candidate"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The kind of build, `release` for a release build, else `dev`.","example":"release"}}></SchemaItem><SchemaItem collapsible={false} name={"revision"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The short Git commit of the build. Can be empty.","example":"b0de5352"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"applicationMode\": \"multi-tenant\",\n  \"version\": \"v2026.10.10\",\n  \"candidate\": \"release\",\n  \"revision\": \"b0de5352\"\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"applicationMode\": \"multi-tenant\",\n  \"version\": \"v2026.10.10\",\n  \"candidate\": \"release\",\n  \"revision\": \"b0de5352\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

The `Authorization` header is missing, or the API key or token is not valid.

</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><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={"403"} value={"403"}><div>

The API key or token does not allow this call. An API key without the scope of the operation gets the older body `{"Code", "Message"}`. An `X-SandboxOrgId` header that names another sandbox organisation than the one of the API key gets `{"errorCode", "errorDescription"}`. When a platform admin has turned off the feature of the operation for the organisation, the answer has `errorKey` `feature_disabled` and the member `feature` (the name of the feature).

</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"}}><div><span className={"badge badge--info"}>anyOf</span><SchemaTabs><TabItem label={"MOD1"} value={"0-item-properties"}><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></TabItem><TabItem label={"Older error body"} value={"1-item-properties"}><SchemaItem collapsible={false} name={"Code"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The HTTP status.","example":403}}></SchemaItem><SchemaItem collapsible={false} name={"Message"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"What went wrong.","example":"Unauthorized access;User doesn't have enough permissions;"}}></SchemaItem></TabItem></SchemaTabs></div></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"Code\": 403,\n  \"Message\": \"Unauthorized access;User doesn't have enough permissions;\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      