POST/oauth/token
Emitir um token OAuth 2.0
oauth_token
O endpoint de token do OAuth 2.0 (RFC 6749, seção 3.2). grant_type: authorization_code troca um código de uso único por um par de tokens e exige code_verifier (PKCE S256); refresh_token emite um novo par em troca de um token de atualização e invalida o token de atualização anterior (rotação), e reutilizar um token invalidado revoga a cadeia inteira; client_credentials emite um token em nome da organização, só para um app confidential, sem token de atualização. Um cliente confidential se autentica com o cabeçalho Authorization: Basic ou com os campos client_id e client_secret; um cliente público envia só client_id. Um token de acesso vale por 1 hora, e um token de atualização, por 90 dias. As respostas e os erros seguem a RFC 6749, seção 5, com Cache-Control: no-store. Adicionado na versão 1.62.0.
Autenticação
Não são necessárias credenciais.
Corpo da requisição
application/x-www-form-urlencoded
grant_typestringobrigatórioValores permitidos:
authorization_coderefresh_tokenclient_credentialscodestringCódigo de autorização (
authorization_code).redirect_uristringO mesmo URI de redirecionamento da requisição de autorização (
authorization_code).code_verifierstringO valor PKCE original, de 43 a 128 caracteres (
authorization_code).refresh_tokenstringToken de atualização (
refresh_token).scopestringEscopos separados por espaço, só para restringir (
refresh_token,client_credentials).client_idstringID do app, quando o segredo não é passado no cabeçalho
Authorization: Basic.client_secretstringSegredo do cliente de um app
confidential, quando não é passado no cabeçalhoAuthorization: Basic.
Respostas
200Os tokens foram emitidos.
Cabeçalhos da resposta
RateLimit-PolicyLimites em vigor, no formato do rascunho da IETF
draft-ietf-httpapi-ratelimit-headers: itens separados por vírgula"<name>";q=<quota>;w=<window in seconds>.keyé a taxa de requisições da chave de API (a cota é a rajada, a janela é o tempo para reabastecê-la por completo; para uma sessão éuser, sem credenciais éip);minute,dayemonthsão as cotas da organização para o minuto, o dia e o mês do calendário em UTC.RateLimitO que resta de cada limite de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimite da entrada mais restritiva de
RateLimit-Policy(a que tem menos requisições restantes).X-RateLimit-RemainingRequisições restantes no limite mais restritivo.
X-RateLimit-ResetSegundos até o limite mais restritivo ser reiniciado.
application/json
access_tokenstringobrigatórioToken de acesso (
kbat_…) para o cabeçalhoAuthorization: Bearer.token_typestringobrigatórioValores permitidos:
Bearerexpires_inintegerobrigatórioTempo de vida do token de acesso em segundos.
refresh_tokenstringToken de atualização (
kbrt_…); ausente em client credentials.scopestringobrigatórioEscopos do token separados por espaço.
400Erro conforme definido na RFC 6749, seção 5.2.
Cabeçalhos da resposta
RateLimit-PolicyLimites em vigor, no formato do rascunho da IETF
draft-ietf-httpapi-ratelimit-headers: itens separados por vírgula"<name>";q=<quota>;w=<window in seconds>.keyé a taxa de requisições da chave de API (a cota é a rajada, a janela é o tempo para reabastecê-la por completo; para uma sessão éuser, sem credenciais éip);minute,dayemonthsão as cotas da organização para o minuto, o dia e o mês do calendário em UTC.RateLimitO que resta de cada limite de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimite da entrada mais restritiva de
RateLimit-Policy(a que tem menos requisições restantes).X-RateLimit-RemainingRequisições restantes no limite mais restritivo.
X-RateLimit-ResetSegundos até o limite mais restritivo ser reiniciado.
application/json
401Credenciais do cliente inválidas (`invalid_client`).
Cabeçalhos da resposta
RateLimit-PolicyLimites em vigor, no formato do rascunho da IETF
draft-ietf-httpapi-ratelimit-headers: itens separados por vírgula"<name>";q=<quota>;w=<window in seconds>.keyé a taxa de requisições da chave de API (a cota é a rajada, a janela é o tempo para reabastecê-la por completo; para uma sessão éuser, sem credenciais éip);minute,dayemonthsão as cotas da organização para o minuto, o dia e o mês do calendário em UTC.RateLimitO que resta de cada limite de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimite da entrada mais restritiva de
RateLimit-Policy(a que tem menos requisições restantes).X-RateLimit-RemainingRequisições restantes no limite mais restritivo.
X-RateLimit-ResetSegundos até o limite mais restritivo ser reiniciado.
application/json
Novas tentativas seguras
Envie um cabeçalho Idempotency-Key (por exemplo, um UUID) em cada POST e PATCH. Uma nova tentativa com a mesma chave em até 24 horas retorna a resposta salva, em vez de executar a requisição de novo.
Limites de taxa
As respostas trazem os cabeçalhos RateLimit e RateLimit-Policy e os anteriores X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset. Uma resposta 429 traz Retry-After em segundos: aguarde e tente de novo.