---
id: onboard-operator-send-super-admin-password-reset
title: "Send super admin password reset"
description: "Sends the password reset e-mail to a super admin. A super admin with a pending invitation gets the invitation e-mail again. The body is empty."
sidebar_label: "Send super admin password reset"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "post 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"}>Send super admin password reset</h1>

<MethodEndpoint method={"post"} path={"/v4/onboard/platform/operator/super-admin/{adminId}/password-reset"}></MethodEndpoint>



Sends the password reset e-mail to a super admin. A super admin with a pending invitation gets the invitation e-mail again. The body is empty.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"name":"adminId","in":"path","required":true,"description":"The ID of a super admin of an organisation, from [List super admins](/docs/openid4vc-api/onboard-operator-list-super-admins).","schema":{"type":"string","maxLength":256,"example":"6731f1d8a1b2c3d4e5f6078a"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"204"} value={"204"}><div>

The e-mail is sent.

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

The request is not valid (`errorKey` `invalid_request`): for example a body that is not JSON, a member that the operation does not know, a missing required member, or a query value that is not allowed. `errorDescription` names the member.

</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><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorKey\": \"invalid_request\",\n  \"errorDescription\": \"field status must be \\\"suspended\\\" or \\\"active\\\"\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

The `Authorization` header is missing, or the access token is not valid or has expired.

</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 caller cannot call the operations of a platform admin. A login of an admin who is not a platform admin (an admin of another organisation, or an admin of the platform operator organisation without the platform admin right) gets `errorKey` `not_platform_admin`. An API key gets the older body `{"Code", "Message"}`: no API key can call these operations.

</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  \"errorCode\": 403,\n  \"errorKey\": \"not_platform_admin\",\n  \"errorDescription\": \"Access denied: only a platform admin of the platform operator organisation can call this route\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"404"} value={"404"}><div>

No account of the operation has the ID (`errorKey` `account_not_found`).

</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><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"errorCode\": 404,\n  \"errorKey\": \"account_not_found\",\n  \"errorDescription\": \"The account does not exist\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"409"} value={"409"}><div>

The installation has no e-mail service (`errorKey` `email_not_configured`). Set a one-time password instead.

</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><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"errorCode\": 409,\n  \"errorKey\": \"email_not_configured\",\n  \"errorDescription\": \"The installation has no e-mail service: the e-mail cannot be sent\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      