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 e protocollo MCP
Ottieni i metadati del server di autorizzazione
Scopri gli endpoint OAuth pubblici e i meccanismi di codice di autorizzazione, PKCE, aggiornamento e revoca supportati da questo ambiente.
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)
Scopri gli endpoint OAuth pubblici e i meccanismi di codice di autorizzazione, PKCE, aggiornamento e revoca supportati da questo ambiente.
GET https://api.voicecheap.ai/.well-known/oauth-authorization-server
Autenticazione
Nessuna.Esempi di richiesta
Segui la codifica e l’autenticazione documentate per questa route. L’involucro e le regole di idempotenza dell’API delle azioni si applicano solo alle invocazioni di azioni.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)
Risposta
Metadati del server di autorizzazione OAuth con URL assoluti degli endpoint sull’origine canonica dell’emittente.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
}
Note sull’operazione
- Sono dichiarati soltanto il tipo di risposta code e la modalità di risposta query.
- I client possono usare la registrazione dinamica o un Client ID Metadata Document (CIMD). client_id_metadata_document_supported è true; un client CIMD usa l’URL HTTPS pubblico del documento come client_id.
- Un documento JSON CIMD deve contenere un client_id identico, un client_name non vuoto di massimo 120 caratteri e 1–10 redirect_uris esatti. Usa l’autenticazione del client pubblico none con S256 PKCE; authorization_code è obbligatorio e refresh_token è facoltativo.
- Servi il CIMD come JSON non compresso su HTTPS pubblico sulla porta 443, con un percorso esplicito, senza credenziali, frammenti, segmenti punto o reindirizzamenti. Il documento deve essere al massimo di 64 KiB e rispondere entro 5 secondi. I metadati in cache scadono entro 5 minuti; scambio e rinnovo dei token usano i metadati associati all’autorizzazione.
- Quando OpenID Connect è disponibile, i metadati del server di autorizzazione dichiarano anche gli ambiti openid ed email, userinfo_endpoint e jwks_uri. Altrimenti questi ambiti ed endpoint sono assenti dai metadati.
- I metodi di autenticazione per token e revoca sono none. I client pubblici usano client_id e S256 PKCE al posto di un segreto client.
- offline_access è un indicatore di scope relativo al rinnovo, non un’autorizzazione del prodotto. L’emissione di un token di aggiornamento dipende dalla registrazione di refresh_token come tipo di grant.
- Verifica che il valore iss restituito nel callback finale del client corrisponda a issuer. Sia i callback di autorizzazione riuscita sia quelli di autorizzazione negata includono iss e riportano state quando è stato fornito.
Errori
| Stato HTTP | Codice | Significato o risoluzione |
|---|---|---|
| 429 | temporarily_unavailable | È stato raggiunto il limite di frequenza delle richieste OAuth pubbliche. Attendi il termine della finestra corrente prima di riprovare. |
| 500 | server_error | L’autorizzazione è temporaneamente non disponibile. Riprova più tardi. |
Questa pagina è stata utile?

