---
id: config-read-privacy-dashboard-deployment-status
title: "Read privacy dashboard deployment status"
description: "Compares the privacy dashboard record of the organisation with its deployment in the cluster, and returns the state and the problems found. This call only reads: to repair a deployment, use Reconfigure privacy dashboard. When the service cannot read the cluster, the response is still `200`, with the `state` `unknown`."
sidebar_label: "Read privacy dashboard deployment status"
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 deployment status</h1>

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



Compares the privacy dashboard record of the organisation with its deployment in the cluster, and returns the state and the problems found. This call only reads: to repair a deployment, use Reconfigure privacy dashboard. When the service cannot read the cluster, the response is still `200`, with the `state` `unknown`.

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

The deployment status.

</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={{"type":"string","description":"Recorded host name of the privacy dashboard. Empty when not deployed.","example":"acme-privacy.igrant.io"}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Recorded release of the privacy dashboard. 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":"Recorded status: `0` not configured, `1` requested, `2` deployed.","enum":[0,1,2],"example":2}}></SchemaItem><SchemaItem collapsible={false} name={"statusStr"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`Not Configured`, `Requested`, `Deployed`]"} schema={{"type":"string","description":"Label of `status`.","enum":["Not Configured","Requested","Deployed"],"example":"Deployed"}}></SchemaItem><SchemaItem collapsible={false} name={"state"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`not_configured`, `requested`, `running`, `progressing`, `degraded`, `missing`, `drift`, `unknown`]"} schema={{"type":"string","description":"The state of the deployment in the cluster: `not_configured` (no deployment is recorded), `running` (all objects exist, match the record and all replicas are ready), `requested` (all objects exist, but the record is still requested), `progressing` (a rollout is in progress), `degraded` (no ready replica, or the rollout failed), `missing` (one or more objects do not exist), `drift` (the image version or the ingress host differs from the record) or `unknown` (the service cannot read the cluster). The first that applies of `missing`, `drift`, `degraded`, `progressing`, `requested` and `running` is the state.","enum":["not_configured","requested","running","progressing","degraded","missing","drift","unknown"],"example":"running"}}></SchemaItem><SchemaItem collapsible={false} name={"problems"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","description":"The problems found, as sentences. Empty when there is none.","items":{"type":"string"},"example":[]}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>kubernetes</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The objects of the deployment in the cluster. Not present for `not_configured` and `unknown`.

</div><SchemaItem collapsible={false} name={"namespace"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Namespace of the objects.","example":"release"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>configMap</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"}}><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of the ConfigMap."}}></SchemaItem><SchemaItem collapsible={false} name={"exists"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"The ConfigMap exists."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>service</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"}}><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of the Service."}}></SchemaItem><SchemaItem collapsible={false} name={"exists"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"The Service exists."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>deployment</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"}}><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of the Deployment."}}></SchemaItem><SchemaItem collapsible={false} name={"exists"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"The Deployment exists."}}></SchemaItem><SchemaItem collapsible={false} name={"image"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Container image of the Deployment. Empty when it has none."}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Release of the container image."}}></SchemaItem><SchemaItem collapsible={false} name={"desiredReplicas"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer"}}></SchemaItem><SchemaItem collapsible={false} name={"updatedReplicas"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer"}}></SchemaItem><SchemaItem collapsible={false} name={"readyReplicas"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer"}}></SchemaItem><SchemaItem collapsible={false} name={"availableReplicas"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>conditions</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 conditions of the Deployment, as Kubernetes reports them.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"type"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"status"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"reason"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"message"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>ingress</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"}}><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of the Ingress."}}></SchemaItem><SchemaItem collapsible={false} name={"exists"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"The Ingress exists."}}></SchemaItem><SchemaItem collapsible={false} name={"hosts"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","description":"The hosts that the Ingress serves.","items":{"type":"string"}}}></SchemaItem><SchemaItem collapsible={false} name={"hostnameMatches"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"The Ingress serves the recorded host name."}}></SchemaItem><SchemaItem collapsible={false} name={"tlsSecretName"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Name of the TLS secret of the Ingress. Empty when it has none."}}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"checkedAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"Time of the check (UTC).","example":"2026-11-05T09:30:00Z"}}></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  \"state\": \"running\",\n  \"problems\": [],\n  \"kubernetes\": {\n    \"namespace\": \"release\",\n    \"configMap\": {\n      \"name\": \"string\",\n      \"exists\": true\n    },\n    \"service\": {\n      \"name\": \"string\",\n      \"exists\": true\n    },\n    \"deployment\": {\n      \"name\": \"string\",\n      \"exists\": true,\n      \"image\": \"string\",\n      \"version\": \"string\",\n      \"desiredReplicas\": 0,\n      \"updatedReplicas\": 0,\n      \"readyReplicas\": 0,\n      \"availableReplicas\": 0,\n      \"conditions\": [\n        {\n          \"type\": \"string\",\n          \"status\": \"string\",\n          \"reason\": \"string\",\n          \"message\": \"string\"\n        }\n      ]\n    },\n    \"ingress\": {\n      \"name\": \"string\",\n      \"exists\": true,\n      \"hosts\": [\n        \"string\"\n      ],\n      \"hostnameMatches\": true,\n      \"tlsSecretName\": \"string\"\n    }\n  },\n  \"checkedAt\": \"2026-11-05T09:30:00Z\"\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Running"} value={"Running"}><ResponseSamples responseExample={"{\n  \"hostname\": \"acme-privacy.igrant.io\",\n  \"version\": \"v2026.10.1\",\n  \"status\": 2,\n  \"statusStr\": \"Deployed\",\n  \"state\": \"running\",\n  \"problems\": [],\n  \"kubernetes\": {\n    \"namespace\": \"release\",\n    \"configMap\": {\n      \"name\": \"org-6ae2bf741c3dadfeb27982ec-privacy-config\",\n      \"exists\": true\n    },\n    \"service\": {\n      \"name\": \"org-6ae2bf741c3dadfeb27982ec-privacy-svc\",\n      \"exists\": true\n    },\n    \"deployment\": {\n      \"name\": \"org-6ae2bf741c3dadfeb27982ec-privacy-app\",\n      \"exists\": true,\n      \"image\": \"eu.gcr.io/example-project/privacy-dashboard:privacy-dashboard-v2026.10.1-release\",\n      \"version\": \"v2026.10.1\",\n      \"desiredReplicas\": 1,\n      \"updatedReplicas\": 1,\n      \"readyReplicas\": 1,\n      \"availableReplicas\": 1,\n      \"conditions\": [\n        {\n          \"type\": \"Available\",\n          \"status\": \"True\",\n          \"reason\": \"MinimumReplicasAvailable\",\n          \"message\": \"Deployment has minimum availability.\"\n        },\n        {\n          \"type\": \"Progressing\",\n          \"status\": \"True\",\n          \"reason\": \"NewReplicaSetAvailable\",\n          \"message\": \"ReplicaSet \\\"org-6ae2bf741c3dadfeb27982ec-privacy-app-5d9c7b6f8d\\\" has successfully progressed.\"\n        }\n      ]\n    },\n    \"ingress\": {\n      \"name\": \"org-6ae2bf741c3dadfeb27982ec-privacy-ing\",\n      \"exists\": true,\n      \"hosts\": [\n        \"acme-privacy.igrant.io\"\n      ],\n      \"hostnameMatches\": true,\n      \"tlsSecretName\": \"igrant-io-tls\"\n    }\n  },\n  \"checkedAt\": \"2026-11-05T09:30:00Z\"\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  \"state\": \"not_configured\",\n  \"problems\": [],\n  \"checkedAt\": \"2026-11-05T09:30:00Z\"\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Cluster not readable"} value={"Cluster not readable"}><ResponseSamples responseExample={"{\n  \"hostname\": \"acme-privacy.igrant.io\",\n  \"version\": \"v2026.10.1\",\n  \"status\": 2,\n  \"statusStr\": \"Deployed\",\n  \"state\": \"unknown\",\n  \"problems\": [\n    \"Privacy dashboard deployment is not configured in this environment.\"\n  ],\n  \"checkedAt\": \"2026-11-05T09:30:00Z\"\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>
      