---
id: onboard-operator-delete-organisation
title: "Delete organisation"
description: "Starts the deletion of a suspended organisation. The deletion cannot be undone. The organisation gets the state `deleting`, and the API deletes its data of the organisation in steps: the sessions, the admins, the API keys, the data verifier users, the webhooks, the identity providers, the extension instances, the OpenID provider tenants, the sandbox organisations, the tickets, the individuals and the images. After the answer, the consent service purges its data of the organisation, and the organisation wallet deactivates the wallet of the organisation and purges it after its grace period. See [Deletion](/docs/platform-admin-guide/#deletion)."
sidebar_label: "Delete organisation"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "delete 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"}>Delete organisation</h1>

<MethodEndpoint method={"delete"} path={"/v4/onboard/platform/operator/organisation/{organisationId}"}></MethodEndpoint>



Starts the deletion of a suspended organisation. The deletion cannot be undone. The organisation gets the state `deleting`, and the API deletes its data of the organisation in steps: the sessions, the admins, the API keys, the data verifier users, the webhooks, the identity providers, the extension instances, the OpenID provider tenants, the sandbox organisations, the tickets, the individuals and the images. After the answer, the consent service purges its data of the organisation, and the organisation wallet deactivates the wallet of the organisation and purges it after its grace period. See [Deletion](/docs/platform-admin-guide/#deletion).

When `deletion.status` is `incomplete`, send the same request again: for an organisation in the state `deleting`, the API runs the steps again and answers `202` again.

## 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":"organisationId","in":"path","required":true,"description":"The ID of the organisation, from [List organisations of the installation](/docs/openid4vc-api/onboard-operator-list-organisations).","schema":{"type":"string","maxLength":256,"example":"6731f0c2a1b2c3d4e5f60789"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"202"} value={"202"}><div>

The deletion started.

</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={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>organisation</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"}}>

An organisation of the installation as a platform admin sees it: its profile and its state. It has no data of the organisation, such as its credentials, records or keys.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the organisation.","example":"6731f0c2a1b2c3d4e5f60789"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The name of the organisation.","example":"Acme Bank"}}></SchemaItem><SchemaItem collapsible={false} name={"location"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The location of the organisation.","example":"Stockholm, Sweden"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>type</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 organisation type.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the organisation type.","example":"64e0c1a2b3c4d5e6f7a8b9c0"}}></SchemaItem><SchemaItem collapsible={false} name={"type"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The name of the organisation type.","example":"Banking"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"policyUrl"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The privacy policy URL of the organisation.","example":"https://acme-bank.example.com/privacy"}}></SchemaItem><SchemaItem collapsible={false} name={"status"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`invited`, `active`, `suspended`, `deleting`]"} schema={{"type":"string","enum":["invited","active","suspended","deleting"],"description":"The state of the organisation. `invited`: no super admin of the organisation has logged in yet. `active`: a super admin has logged in. `suspended`: a platform admin suspended the organisation. `deleting`: the deletion of the organisation started; this state is final.","example":"active"}}></SchemaItem><SchemaItem collapsible={false} name={"isPlatformOperator"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"The organisation is the platform operator organisation of the installation.","example":false}}></SchemaItem><SchemaItem collapsible={false} name={"superAdminCount"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The number of super admins of the organisation.","example":1}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","description":"When the organisation was made (RFC 3339, UTC).","example":"2026-11-12T08:15:00Z"}}></SchemaItem><SchemaItem collapsible={false} name={"suspendedAt"} required={true} schemaName={"date-time"} qualifierMessage={undefined} schema={{"type":"string","format":"date-time","nullable":true,"description":"When a platform admin suspended the organisation (RFC 3339, UTC), or `null` when the organisation is not suspended. An organisation that was suspended in an earlier release can have no time.","example":null}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>wallet</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 deployment of the organisation wallet of the organisation.

</div><SchemaItem collapsible={false} name={"deploymentStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`deployed`, `requested`, `notConfigured`]"} schema={{"type":"string","enum":["deployed","requested","notConfigured"],"description":"`deployed`: the wallet is deployed. `requested` and `notConfigured`: the wallet is not deployed; deploy it with [Deploy organisation wallet](/docs/openid4vc-api/onboard-operator-deploy-organisation-wallet).","example":"deployed"}}></SchemaItem><SchemaItem collapsible={false} name={"walletOrganisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"The ID of the organisation in the organisation wallet (the `holderOrganisationId` of the wallet unit lists of the wallet provider), or `null` without a wallet.","example":"2f6c1d0e-8b7a-4c3d-9e1f-0a2b3c4d5e6f"}}></SchemaItem><SchemaItem collapsible={false} name={"isWalletProvider"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"The wallet of the organisation is the wallet provider of the installation.","example":false}}></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"}>features</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"}}>

How many of the product features of the platform are on for the organisation. Read the value of each feature with [Read organisation features](/docs/openid4vc-api/onboard-operator-read-organisation-features).

</div><SchemaItem collapsible={false} name={"enabled"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The number of product features that are on.","example":1}}></SchemaItem><SchemaItem collapsible={false} name={"total"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The number of product features of the platform.","example":4}}></SchemaItem></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"}>deletion</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 result of the steps of the API.

</div><SchemaItem collapsible={false} name={"status"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`completed`, `incomplete`]"} schema={{"type":"string","enum":["completed","incomplete"],"description":"`completed`, or `incomplete` with the steps that failed.","example":"completed"}}></SchemaItem><SchemaItem collapsible={false} name={"failedSteps"} required={false} schemaName={"string[]"} qualifierMessage={"**Possible values:** [`sessions`, `admins`, `apiKeys`, `dataVerifierUsers`, `webhooks`, `identityProviders`, `extensionInstances`, `oidcProviderTenants`, `sandboxes`, `tickets`, `individuals`, `images`]"} schema={{"type":"array","description":"With `incomplete`, the names of the steps that failed.","items":{"type":"string","enum":["sessions","admins","apiKeys","dataVerifierUsers","webhooks","identityProviders","extensionInstances","oidcProviderTenants","sandboxes","tickets","individuals","images"]},"example":["webhooks"]}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"organisation\": {\n    \"id\": \"6731f0c2a1b2c3d4e5f60789\",\n    \"name\": \"Acme Bank\",\n    \"location\": \"Stockholm, Sweden\",\n    \"type\": {\n      \"id\": \"64e0c1a2b3c4d5e6f7a8b9c0\",\n      \"type\": \"Banking\"\n    },\n    \"policyUrl\": \"https://acme-bank.example.com/privacy\",\n    \"status\": \"active\",\n    \"isPlatformOperator\": false,\n    \"superAdminCount\": 1,\n    \"createdAt\": \"2026-11-12T08:15:00Z\",\n    \"suspendedAt\": null,\n    \"wallet\": {\n      \"deploymentStatus\": \"deployed\",\n      \"walletOrganisationId\": \"2f6c1d0e-8b7a-4c3d-9e1f-0a2b3c4d5e6f\",\n      \"isWalletProvider\": false\n    },\n    \"features\": {\n      \"enabled\": 1,\n      \"total\": 4\n    }\n  },\n  \"deletion\": {\n    \"status\": \"completed\",\n    \"failedSteps\": [\n      \"webhooks\"\n    ]\n  }\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"organisation\": {\n    \"id\": \"6731f0c2a1b2c3d4e5f60789\",\n    \"name\": \"Acme Bank\",\n    \"location\": \"Stockholm, Sweden\",\n    \"type\": {\n      \"id\": \"64e0c1a2b3c4d5e6f7a8b9c0\",\n      \"type\": \"Banking\"\n    },\n    \"policyUrl\": \"https://acme-bank.example.com/privacy\",\n    \"status\": \"deleting\",\n    \"isPlatformOperator\": false,\n    \"superAdminCount\": 1,\n    \"createdAt\": \"2026-11-12T08:15:00Z\",\n    \"suspendedAt\": \"2026-11-12T11:00:00Z\",\n    \"wallet\": {\n      \"deploymentStatus\": \"deployed\",\n      \"walletOrganisationId\": \"2f6c1d0e-8b7a-4c3d-9e1f-0a2b3c4d5e6f\",\n      \"isWalletProvider\": false\n    },\n    \"features\": {\n      \"enabled\": 1,\n      \"total\": 4\n    }\n  },\n  \"deletion\": {\n    \"status\": \"completed\"\n  }\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 organisation has the ID (`errorKey` `organisation_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\": \"organisation_not_found\",\n  \"errorDescription\": \"The organisation does not exist\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"409"} value={"409"}><div>

The organisation cannot be deleted. `errorKey`: `organisation_not_suspended` (suspend the organisation first) or `platform_operator_organisation` (the platform operator organisation cannot be deleted).

</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\": \"organisation_not_suspended\",\n  \"errorDescription\": \"Only a suspended organisation can be deleted. Suspend the organisation first\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      