curl --request GET 'https://api.voicecheap.ai/.well-known/oauth-authorization-server'
const input = {};
const response = await fetch('https://api.voicecheap.ai/.well-known/oauth-authorization-server', {
method: 'GET',
headers: {},
redirect: 'manual',
});
console.log(response.status, await response.text());
import os
import requests
response = requests.request(
"GET",
"https://api.voicecheap.ai/.well-known/oauth-authorization-server",
headers={},
timeout=120,
allow_redirects=False,
)
print(response.status_code, response.text)
OAuth- und MCP-Protokoll
Metadaten des Autorisierungsservers abrufen
Ermitteln Sie die öffentlichen OAuth-Endpunkte und die von dieser Umgebung unterstützten Mechanismen für Autorisierungscodes, PKCE, Token-Erneuerung und Widerruf.
GET
/
.well-known
/
oauth-authorization-server
curl --request GET 'https://api.voicecheap.ai/.well-known/oauth-authorization-server'
const input = {};
const response = await fetch('https://api.voicecheap.ai/.well-known/oauth-authorization-server', {
method: 'GET',
headers: {},
redirect: 'manual',
});
console.log(response.status, await response.text());
import os
import requests
response = requests.request(
"GET",
"https://api.voicecheap.ai/.well-known/oauth-authorization-server",
headers={},
timeout=120,
allow_redirects=False,
)
print(response.status_code, response.text)
Ermitteln Sie die öffentlichen OAuth-Endpunkte und die von dieser Umgebung unterstützten Mechanismen für Autorisierungscodes, PKCE, Token-Erneuerung und Widerruf.
GET https://api.voicecheap.ai/.well-known/oauth-authorization-server
Authentifizierung
Keine.Anfragebeispiele
Beachten Sie die für diese Route dokumentierte Kodierung und Authentifizierung. Die Antwortstruktur und Idempotenzregeln der Aktions-API gelten nur für Aktionsaufrufe.curl --request GET 'https://api.voicecheap.ai/.well-known/oauth-authorization-server'
const input = {};
const response = await fetch('https://api.voicecheap.ai/.well-known/oauth-authorization-server', {
method: 'GET',
headers: {},
redirect: 'manual',
});
console.log(response.status, await response.text());
import os
import requests
response = requests.request(
"GET",
"https://api.voicecheap.ai/.well-known/oauth-authorization-server",
headers={},
timeout=120,
allow_redirects=False,
)
print(response.status_code, response.text)
Antwort
OAuth-Metadaten des Autorisierungsservers mit absoluten Endpunkt-URLs auf der kanonischen Issuer-Origin.HTTP 200
{
"issuer": "https://api.voicecheap.ai",
"authorization_endpoint": "https://api.voicecheap.ai/oauth/authorize",
"token_endpoint": "https://api.voicecheap.ai/oauth/token",
"registration_endpoint": "https://api.voicecheap.ai/oauth/register",
"revocation_endpoint": "https://api.voicecheap.ai/oauth/revoke",
"response_types_supported": ["code"],
"response_modes_supported": ["query"],
"grant_types_supported": ["authorization_code", "refresh_token"],
"token_endpoint_auth_methods_supported": ["none"],
"revocation_endpoint_auth_methods_supported": ["none"],
"code_challenge_methods_supported": ["S256"],
"scopes_supported": [
"account:read",
"usage:read",
"settings:read",
"settings:write",
"team:read",
"team:write",
"projects:read",
"projects:write",
"projects:delete",
"translations:write",
"transcription:read",
"transcription:write",
"subtitles:read",
"subtitles:write",
"tts:read",
"tts:write",
"voices:read",
"voices:write",
"images:read",
"images:write",
"thumbnails:read",
"thumbnails:write",
"folders:read",
"folders:write",
"glossary:read",
"glossary:write",
"webhooks:read",
"webhooks:write",
"publishing:read",
"publishing:write",
"offline_access"
],
"authorization_response_iss_parameter_supported": true,
"client_id_metadata_document_supported": true
}
Hinweise zur Operation
- Nur der Antworttyp code und der Antwortmodus query werden ausgewiesen.
- Clients können die dynamische Registrierung oder ein Client ID Metadata Document (CIMD) verwenden. client_id_metadata_document_supported ist true; ein CIMD-Client verwendet die öffentliche HTTPS-URL seines Dokuments als client_id.
- Ein CIMD-JSON-Dokument muss eine exakt übereinstimmende client_id, einen nicht leeren client_name mit höchstens 120 Zeichen und 1–10 exakte redirect_uris enthalten. Verwenden Sie die Authentifizierung none für öffentliche Clients mit S256 PKCE; authorization_code ist erforderlich und refresh_token optional.
- Stellen Sie CIMD als unkomprimiertes JSON über öffentliches HTTPS auf Port 443 mit explizitem Pfad bereit, ohne Zugangsdaten, Fragmente, Punktsegmente oder Weiterleitungen. Das Dokument darf höchstens 64 KiB groß sein und muss innerhalb von 5 Sekunden antworten. Zwischengespeicherte Metadaten verfallen spätestens nach 5 Minuten; Tokenaustausch und -erneuerung verwenden die an die Autorisierung gebundenen Metadaten.
- Wenn OpenID Connect verfügbar ist, geben die Autorisierungsserver-Metadaten zusätzlich die Scopes openid und email sowie userinfo_endpoint und jwks_uri an. Andernfalls fehlen diese Scopes und Endpunkte in diesen Metadaten.
- Die Authentifizierungsmethoden für Token und Widerruf sind none. Öffentliche Clients verwenden client_id und S256 PKCE anstelle eines Clientgeheimnisses.
- offline_access ist eine verlängerungsbezogene Scope-Markierung, keine Produktberechtigung. Die Ausstellung eines Aktualisierungstokens hängt davon ab, ob refresh_token als Grant-Typ registriert wurde.
- Vergleichen Sie den im abschließenden Client-Callback zurückgegebenen iss-Wert mit issuer. Sowohl erfolgreiche als auch abgelehnte Autorisierungs-Callbacks enthalten iss und geben state unverändert zurück, wenn es übergeben wurde.
Fehler
| HTTP-Status | Code | Bedeutung oder Behebung |
|---|---|---|
| 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. |
War diese Seite hilfreich?

