> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.voicecheap.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Eine MCP-OAuth-Verbindung widerrufen

> Widerrufen Sie eine Verbindung mit einem ihrer Zugriffs- oder Aktualisierungstokens und der registrierten client_id.

Widerrufen Sie eine Verbindung mit einem ihrer Zugriffs- oder Aktualisierungstokens und der registrierten client\_id.

```http theme={null}
POST https://api.voicecheap.ai/oauth/revoke
```

## Authentifizierung

Kein Client-Geheimnis. Senden Sie token und client\_id im URL-codierten Formular-Body.

## Anfragetext

<ParamField body="token" type="string" required>
  Ein ausgestelltes MCP-Zugriffs- oder Aktualisierungstoken. Unbekannte Token-Zeichenfolgen werden akzeptiert, ohne offenzulegen, ob ein Token existiert.

  Mindestlänge: 1. Höchstlänge: 256. Muster: `^[^\u0000-\u001F\u007F]+$`.
</ParamField>

<ParamField body="client_id" type="string" required>
  Die dem Token zugeordnete client\_id. Ein fehlender oder fehlerhafter Skalar wird abgelehnt; ein unbekannter oder nicht passender Client gibt Erfolg zurück.

  Mindestlänge: 1. Höchstlänge: 2048. Muster: `^[^\u0000-\u001F\u007F]+$`.
</ParamField>

<ParamField body="token_type_hint" type="field">
  Optionaler Standardhinweis. Diese Implementierung ignoriert das Feld und validiert seinen Wert nicht; Tokenpräfixe bestimmen die Tokenfamilie.
</ParamField>

<Accordion title="Technisches Schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "token": {
        "type": "string",
        "minLength": 1,
        "maxLength": 256,
        "pattern": "^[^\\u0000-\\u001F\\u007F]+$",
        "description": "An issued MCP access or refresh token. Unknown token strings are accepted without revealing whether a token exists."
      },
      "client_id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2048,
        "pattern": "^[^\\u0000-\\u001F\\u007F]+$",
        "description": "The client_id associated with the token. A missing or malformed scalar is rejected; an unknown or mismatched client returns success."
      },
      "token_type_hint": {
        "description": "Optional standard hint. This implementation ignores this field and does not validate its value; token prefixes determine the token family."
      }
    },
    "required": [
      "token",
      "client_id"
    ],
    "additionalProperties": true
  }
  ```
</Accordion>

## Anfragebeispiele

Beachten Sie die für diese Route dokumentierte Kodierung und Authentifizierung. Die Antwortstruktur und Idempotenzregeln der Aktions-API gelten nur für Aktionsaufrufe.

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST 'https://api.voicecheap.ai/oauth/revoke' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'token=mcp_refresh_EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE' \
    --data-urlencode 'client_id=mcp_client_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' \
    --data-urlencode 'token_type_hint=refresh_token'
  ```

  ```javascript JavaScript theme={null}
  const input = {
    token: 'mcp_refresh_EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE',
    client_id: 'mcp_client_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
    token_type_hint: 'refresh_token',
  };
  const response = await fetch('https://api.voicecheap.ai/oauth/revoke', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: new URLSearchParams(input),
    redirect: 'manual',
  });
  console.log(response.status, await response.text());
  ```

  ```python Python theme={null}
  import os
  import requests

  response = requests.request(
      "POST",
      "https://api.voicecheap.ai/oauth/revoke",
      headers={"Content-Type":"application/x-www-form-urlencoded"},
      data={"token": "mcp_refresh_EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE", "client_id": "mcp_client_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "token_type_hint": "refresh_token"},
      timeout=120,
      allow_redirects=False,
  )
  print(response.status_code, response.text)
  ```
</RequestExample>

## Antwort

Ein leeres JSON-Objekt. Unbekannte Tokens, falsche Client-Zuordnungen und bereits widerrufene Verbindungen geben ebenfalls HTTP 200 zurück.

```json HTTP 200 theme={null}
{}
```

## Antwortheader

```json theme={null}
{
  "Cache-Control": "no-store",
  "Pragma": "no-cache"
}
```

## Hinweise zur Operation

* Erkannte skalare Parameter müssen genau einmal als nicht leere Zeichenfolgen ohne ASCII-Steuerzeichen oder DEL übergeben werden. Wiederholte Abfrage- oder Formularfelder werden als Arrays dekodiert und beim Lesen als Skalare abgelehnt.
* Verwenden Sie application/x-www-form-urlencoded. JSON-Anfragen werden mit invalid\_request abgelehnt.
* Der Widerruf eines erkannten Zugriffstokens oder Refresh-Tokens widerruft die gesamte Verbindung und entfernt ihr aktives Refresh-Token; er beschränkt sich nicht auf das eine übergebene Token.
* Der Parameter resource ist auf dieser Route weder erforderlich noch wird er geprüft. token\_type\_hint und andere nicht erkannte Felder werden ignoriert.
* Der Endpunkt ruft nicht zuerst eine Clientregistrierung ab. Eine formal gültige unbekannte client\_id, eine für das Token falsche client\_id oder ein unbekanntes Token gibt \{} zurück, ohne die Gültigkeit des Tokens offenzulegen.
* Die öffentliche Widerrufsgrenze beträgt 60 Anfragen pro Minute und Client-IP und wird workerübergreifend geteilt. URL-kodierte Anfragetexte sind auf 32 KiB begrenzt.
* Die von der dynamischen Registrierung zurückgegebene client\_id oder die exakte öffentliche HTTPS-URL des Client-Metadatendokuments.

## Fehler

| HTTP-Status | Code | Bedeutung oder Behebung |
| - | - | - |
| 400 | `invalid_request` | Der Anfragetext oder ein erkannter Parameter ist ungültig, fehlt, ist doppelt vorhanden oder hat die falsche Kodierung. |
| 413 | `REQUEST_TOO_LARGE` | Die Anfrage überschreitet die zulässige Größe des Anfragetexts. JSON ist auf 1 MiB und URL-kodierte Formulare sind auf 32 KiB begrenzt. |
| 415 | `UNSUPPORTED_CONTENT_TYPE` | Der Body-Parser der Integration akzeptiert nur JSON oder URL-codierte Formulardaten. Die Route kann ausdrücklich eine dieser Codierungen erfordern. |
| 429 | `temporarily_unavailable` | Das öffentliche Anfrageratenlimit für OAuth wurde erreicht. Warten Sie vor einem erneuten Versuch das aktuelle Zeitfenster ab. |
| 500 | `server_error` | Die Autorisierung ist vorübergehend nicht verfügbar. Versuchen Sie es später erneut. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.