---
id: onboard-operator-end-super-admin-sessions
title: "End super admin sessions"
description: "Ends all sessions of a super admin. The body is empty."
sidebar_label: "End super admin sessions"
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"}>End super admin sessions</h1>

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



Ends all sessions of a super admin. 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 sessions are ended.

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