POST/oauth/token
Emite un token OAuth 2.0
oauth_token
Endpointul de emitere a tokenurilor OAuth 2.0 (RFC 6749, secțiunea 3.2). grant_type: authorization_code schimbă un cod de unică folosință pe o pereche de tokenuri și necesită code_verifier (PKCE S256); refresh_token emite o pereche nouă pentru un token de reîmprospătare și invalidează tokenul de reîmprospătare anterior (reînnoire), iar reutilizarea unuia invalidat revocă întregul lanț; client_credentials emite un token în numele organizației, doar pentru o aplicație confidential, fără token de reîmprospătare. Un client confidential se autentifică cu antetul Authorization: Basic sau cu câmpurile client_id și client_secret; un client public trimite doar client_id. Un token de acces este valabil 1 oră, iar un token de reîmprospătare – 90 de zile. Răspunsurile și erorile respectă RFC 6749, secțiunea 5, cu Cache-Control: no-store. Adăugat în 1.62.0.
Autentificare
Nu sunt necesare date de autentificare.
Corpul cererii
application/x-www-form-urlencoded
grant_typestringobligatoriuValori permise:
authorization_coderefresh_tokenclient_credentialscodestringCodul de autorizare (
authorization_code).redirect_uristringAcelași URI de redirecționare ca în cererea de autorizare (
authorization_code).code_verifierstringValoarea PKCE originală, de la 43 la 128 de caractere (
authorization_code).refresh_tokenstringTokenul de reîmprospătare (
refresh_token).scopestringDomenii de acces separate prin spații, doar pentru restrângere (
refresh_token,client_credentials).client_idstringID-ul aplicației, când secretul nu se transmite în antetul
Authorization: Basic.client_secretstringSecretul de client al unei aplicații
confidential, când nu se transmite în antetulAuthorization: Basic.
Răspunsuri
200Tokenurile au fost emise.
Antetele răspunsului
RateLimit-PolicyLimitele în vigoare, în formatul proiectului IETF
draft-ietf-httpapi-ratelimit-headers: elemente separate prin virgulă"<name>";q=<quota>;w=<window in seconds>.keyeste frecvența cererilor cheii API (cota este rafala, fereastra este timpul în care rafala se reface complet; pentru o sesiune esteuser, fără date de autentificareip);minute,dayșimonthsunt cotele organizației pentru minutul, ziua și luna calendaristice în UTC.RateLimitCât a rămas din fiecare limită din
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimita celei mai stricte intrări din
RateLimit-Policy(cea cu cele mai puține cereri rămase).X-RateLimit-RemainingCereri rămase în cadrul celei mai stricte limite.
X-RateLimit-ResetSecunde până la resetarea celei mai stricte limite.
application/json
access_tokenstringobligatoriuTokenul de acces (
kbat_…) pentru antetulAuthorization: Bearer.token_typestringobligatoriuValori permise:
Bearerexpires_inintegerobligatoriuDurata de viață a tokenului de acces, în secunde.
refresh_tokenstringTokenul de reîmprospătare (
kbrt_…); lipsește pentru client credentials.scopestringobligatoriuDomeniile de acces ale tokenului, separate prin spații.
400Eroare conform RFC 6749, secțiunea 5.2.
Antetele răspunsului
RateLimit-PolicyLimitele în vigoare, în formatul proiectului IETF
draft-ietf-httpapi-ratelimit-headers: elemente separate prin virgulă"<name>";q=<quota>;w=<window in seconds>.keyeste frecvența cererilor cheii API (cota este rafala, fereastra este timpul în care rafala se reface complet; pentru o sesiune esteuser, fără date de autentificareip);minute,dayșimonthsunt cotele organizației pentru minutul, ziua și luna calendaristice în UTC.RateLimitCât a rămas din fiecare limită din
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimita celei mai stricte intrări din
RateLimit-Policy(cea cu cele mai puține cereri rămase).X-RateLimit-RemainingCereri rămase în cadrul celei mai stricte limite.
X-RateLimit-ResetSecunde până la resetarea celei mai stricte limite.
application/json
401Date de autentificare ale clientului invalide (`invalid_client`).
Antetele răspunsului
RateLimit-PolicyLimitele în vigoare, în formatul proiectului IETF
draft-ietf-httpapi-ratelimit-headers: elemente separate prin virgulă"<name>";q=<quota>;w=<window in seconds>.keyeste frecvența cererilor cheii API (cota este rafala, fereastra este timpul în care rafala se reface complet; pentru o sesiune esteuser, fără date de autentificareip);minute,dayșimonthsunt cotele organizației pentru minutul, ziua și luna calendaristice în UTC.RateLimitCât a rămas din fiecare limită din
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimita celei mai stricte intrări din
RateLimit-Policy(cea cu cele mai puține cereri rămase).X-RateLimit-RemainingCereri rămase în cadrul celei mai stricte limite.
X-RateLimit-ResetSecunde până la resetarea celei mai stricte limite.
application/json
Reîncercări sigure
Trimiteți un antet Idempotency-Key (de exemplu, un UUID) cu fiecare POST și PATCH. O reîncercare cu aceeași cheie în decurs de 24 de ore returnează răspunsul salvat, fără să execute din nou cererea.
Limite de frecvență
Răspunsurile conțin antetele RateLimit și RateLimit-Policy, precum și antetele anterioare X-RateLimit-Limit, X-RateLimit-Remaining și X-RateLimit-Reset. Un răspuns 429 conține Retry-After în secunde: așteptați și reîncercați.