---
id: config-read-privacy-dashboard-docker-images
title: "List privacy dashboard releases"
description: "Lists the releases of the privacy dashboard that you can deploy, newest first. Send the `version` of a release to Deploy privacy dashboard or Reconfigure privacy dashboard. Only the supported releases are in the list."
sidebar_label: "List privacy dashboard releases"
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"}>List privacy dashboard releases</h1>

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



Lists the releases of the privacy dashboard that you can deploy, newest first. Send the `version` of a release to Deploy privacy dashboard or Reconfigure privacy dashboard. Only the supported releases are in the list.

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

The releases, newest first.

</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={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>versions</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"}}><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"version"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"v2026.10.1","description":"Version of the release. Send it as `version` to deploy this release."}}></SchemaItem><SchemaItem collapsible={false} name={"timestamp"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"1761811200000","description":"Upload time of the release image, in milliseconds since 1970-01-01 UTC, as a string."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"versions\": [\n    {\n      \"version\": \"v2026.10.1\",\n      \"timestamp\": \"1761811200000\"\n    }\n  ]\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"versions\": [\n    {\n      \"version\": \"v2026.10.2\",\n      \"timestamp\": \"1762416000000\"\n    },\n    {\n      \"version\": \"v2026.10.1\",\n      \"timestamp\": \"1761811200000\"\n    }\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 installation cannot read the release registry (`Privacy dashboard deployment is not available`).

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

The release registry did not answer as expected (`Failed to read the privacy dashboard releases`).

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