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 protocolo MCP
Obter metadados do servidor de autorização
Descubra os endpoints OAuth públicos e os mecanismos de código de autorização, PKCE, atualização e revogação compatíveis com este 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)
Descubra os endpoints OAuth públicos e os mecanismos de código de autorização, PKCE, atualização e revogação compatíveis com este ambiente.
GET https://api.voicecheap.ai/.well-known/oauth-authorization-server
Autenticação
Nenhum.Exemplos de requisição
Siga a codificação e a autenticação documentadas para esta rota. O formato de resposta e as regras de idempotência da API de ações se aplicam apenas às chamadas de ações.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)
Resposta
Metadados do servidor de autorização OAuth com URLs absolutas dos endpoints na origem canônica do emissor.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
}
Notas da operação
- Apenas o tipo de resposta code e o modo de resposta query são anunciados.
- Os clientes podem usar registro dinâmico ou um Client ID Metadata Document (CIMD). client_id_metadata_document_supported é true; um cliente CIMD usa a URL HTTPS pública do documento como client_id.
- Um documento JSON CIMD deve conter um client_id exatamente igual, um client_name não vazio de até 120 caracteres e de 1 a 10 redirect_uris exatos. Use autenticação de cliente público none com S256 PKCE; authorization_code é obrigatório e refresh_token é opcional.
- Sirva o CIMD como JSON sem compressão por HTTPS público na porta 443, com caminho explícito e sem credenciais, fragmentos, segmentos de ponto ou redirecionamentos. O documento deve ter até 64 KiB e responder em até 5 segundos. Os metadados em cache expiram em até 5 minutos; a troca e a renovação de tokens usam os metadados vinculados à autorização.
- Quando OpenID Connect está disponível, os metadados do servidor de autorização também anunciam os escopos openid e email, userinfo_endpoint e jwks_uri. Caso contrário, esses escopos e endpoints não aparecem nesses metadados.
- Os métodos de autenticação de token e revogação são none. Clientes públicos usam client_id e S256 PKCE em vez de um segredo de cliente.
- offline_access é um marcador de escopo relacionado à renovação, não uma permissão do produto. A emissão de um token de atualização depende de refresh_token ter sido registrado como tipo de concessão.
- Verifique o valor iss retornado no callback final do cliente em relação a issuer. Os callbacks de autorização bem-sucedida e negada incluem iss e repetem state quando ele foi fornecido.
Erros
| Status HTTP | Código | Significado ou recuperação |
|---|---|---|
| 429 | temporarily_unavailable | O limite de requisições OAuth públicas foi atingido. Aguarde a janela atual antes de tentar novamente. |
| 500 | server_error | A autorização está temporariamente indisponível. Tente novamente mais tarde. |
Esta página foi útil?

