POST/oauth/token
Wydawanie tokenu OAuth 2.0
oauth_token
Punkt końcowy wydawania tokenów OAuth 2.0 (RFC 6749, sekcja 3.2). grant_type: authorization_code wymienia jednorazowy kod na parę tokenów i wymaga code_verifier (PKCE S256); refresh_token wydaje nową parę za token odświeżania i unieważnia poprzedni token odświeżania (rotacja), a ponowne użycie unieważnionego tokenu unieważnia cały łańcuch; client_credentials wydaje token w imieniu organizacji, tylko dla aplikacji confidential, bez tokenu odświeżania. Klient confidential uwierzytelnia się nagłówkiem Authorization: Basic lub polami client_id i client_secret; klient publiczny wysyła tylko client_id. Token dostępu jest ważny przez 1 godzinę, token odświeżania – przez 90 dni. Odpowiedzi i błędy są zgodne z RFC 6749, sekcja 5, z Cache-Control: no-store. Dodano w wersji 1.62.0.
Uwierzytelnianie
Dane uwierzytelniające nie są potrzebne.
Treść żądania
application/x-www-form-urlencoded
grant_typestringwymaganeDozwolone wartości:
authorization_coderefresh_tokenclient_credentialscodestringKod autoryzacji (
authorization_code).redirect_uristringTen sam adres URI przekierowania co w żądaniu autoryzacji (
authorization_code).code_verifierstringPierwotna wartość PKCE, od 43 do 128 znaków (
authorization_code).refresh_tokenstringToken odświeżania (
refresh_token).scopestringZakresy rozdzielone spacjami, tylko zawężające (
refresh_token,client_credentials).client_idstringID aplikacji, gdy sekret nie jest przekazywany w nagłówku
Authorization: Basic.client_secretstringSekret klienta aplikacji
confidential, gdy nie jest przekazywany w nagłówkuAuthorization: Basic.
Odpowiedzi
200Tokeny zostały wydane.
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
access_tokenstringwymaganeToken dostępu (
kbat_…) do nagłówkaAuthorization: Bearer.token_typestringwymaganeDozwolone wartości:
Bearerexpires_inintegerwymaganeCzas życia tokenu dostępu w sekundach.
refresh_tokenstringToken odświeżania (
kbrt_…); brak dla client credentials.scopestringwymaganeZakresy tokenu rozdzielone spacjami.
400Błąd zgodny z definicją w RFC 6749, sekcja 5.2.
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
401Nieprawidłowe dane uwierzytelniające klienta (`invalid_client`).
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
Bezpieczne ponawianie
Wysyłaj nagłówek Idempotency-Key (na przykład UUID) z każdym żądaniem POST i PATCH. Ponowienie z tym samym kluczem w ciągu 24 godzin zwraca zapisaną odpowiedź, zamiast ponownie wykonywać żądanie.
Limity częstotliwości
Odpowiedzi zawierają nagłówki RateLimit i RateLimit-Policy oraz starsze X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset. Odpowiedź 429 ma nagłówek Retry-After w sekundach: odczekaj i ponów żądanie.