---
id: config-update-privacy-dashboard-button-labels
title: "Update privacy dashboard button labels"
description: "Changes the labels of the buttons of the privacy dashboard. An empty label sets the default label. The privacy dashboard and the public organisation details (Read organisation of the consent API for individuals) show the new label."
sidebar_label: "Update privacy dashboard button labels"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "put 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"}>Update privacy dashboard button labels</h1>

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



Changes the labels of the buttons of the privacy dashboard. An empty label sets the default label. The privacy dashboard and the public organisation details (Read organisation of the consent API for individuals) show the new label.

## Request

<MimeTabs className={"openapi-tabs__mime"}><TabItem label={"application/json"} value={"application/json-schema"}><details style={{}} className={"openapi-markdown__details mime"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-mime"}><h3 className={"openapi-markdown__details-summary-header-body"}>Body</h3><strong className={"openapi-schema__required"}>required</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"}>buttonLabels</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The new labels. A label that you do not send becomes empty (the default label).

</div><SchemaItem collapsible={false} name={"dataUsingServicesButtonLabel"} required={false} 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></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

The privacy dashboard record with the new labels.

</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={"Example"} value={"Example"}><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></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

The body is not valid JSON or has an unknown member.

</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={"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, or the server could not save the change.

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