---
id: config-read-privacy-dashboard
title: "Read privacy dashboard"
description: "Reads the privacy dashboard deployment of the organisation as the service records it: the host name, the release, the status and the button labels. To compare the record with the deployment in the cluster, use Read privacy dashboard deployment status."
sidebar_label: "Read privacy dashboard"
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 privacy dashboard</h1>

<MethodEndpoint method={"get"} path={"/v4/config/platform/privacy-dashboard"}></MethodEndpoint>



Reads the privacy dashboard deployment of the organisation as the service records it: the host name, the release, the status and the button labels. To compare the record with the deployment in the cluster, use Read privacy dashboard deployment status.

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

The privacy dashboard record.

</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={"hostname"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"description":"Host name of the privacy dashboard, for example `acme-privacy.igrant.io`. Empty when not deployed.","type":"string","example":"acme-privacy.igrant.io"}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Release of the privacy dashboard (a `version` of List privacy dashboard releases). Empty when not deployed.","example":"v2026.10.1"}}></SchemaItem><SchemaItem collapsible={false} name={"status"} required={true} schemaName={"integer"} qualifierMessage={"**Possible values:** [`0`, `1`, `2`]"} schema={{"type":"integer","description":"Status of the deployment: `0` not configured, `1` requested (a deployment started and did not complete), `2` deployed.","example":2,"enum":[0,1,2]}}></SchemaItem><SchemaItem collapsible={false} name={"statusStr"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`Not Configured`, `Requested`, `Deployed`]"} schema={{"type":"string","example":"Deployed","description":"Label of `status`.","enum":["Not Configured","Requested","Deployed"]}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>buttonLabels</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The labels of the buttons of the privacy dashboard.

</div><SchemaItem collapsible={false} name={"dataUsingServicesButtonLabel"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Label of the button that shows the data using services. Empty for the default label.","example":"Partners"}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"hostname\": \"acme-privacy.igrant.io\",\n  \"version\": \"v2026.10.1\",\n  \"status\": 2,\n  \"statusStr\": \"Deployed\",\n  \"buttonLabels\": {\n    \"dataUsingServicesButtonLabel\": \"Partners\"\n  }\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Deployed"} value={"Deployed"}><ResponseSamples responseExample={"{\n  \"hostname\": \"acme-privacy.igrant.io\",\n  \"version\": \"v2026.10.1\",\n  \"status\": 2,\n  \"statusStr\": \"Deployed\",\n  \"buttonLabels\": {\n    \"dataUsingServicesButtonLabel\": \"\"\n  }\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Not deployed"} value={"Not deployed"}><ResponseSamples responseExample={"{\n  \"hostname\": \"\",\n  \"version\": \"\",\n  \"status\": 0,\n  \"statusStr\": \"Not Configured\",\n  \"buttonLabels\": {\n    \"dataUsingServicesButtonLabel\": \"\"\n  }\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={"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><TabItem label={"500"} value={"500"}><div>

The organisation cannot be read.

</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>
      