POST/oauth/token
Terbitkan token OAuth 2.0
oauth_token
Endpoint token OAuth 2.0 (RFC 6749, bagian 3.2). grant_type: authorization_code menukar kode sekali pakai dengan sepasang token dan memerlukan code_verifier (PKCE S256); refresh_token menerbitkan pasangan baru untuk token refresh dan membatalkan token refresh sebelumnya (rotasi), dan memakai ulang token yang sudah dibatalkan akan mencabut seluruh rantainya; client_credentials menerbitkan token atas nama organisasi, hanya untuk aplikasi confidential, tanpa token refresh. Klien confidential melakukan autentikasi dengan header Authorization: Basic atau dengan field client_id dan client_secret; klien publik hanya mengirim client_id. Token akses berlaku selama 1 jam, token refresh selama 90 hari. Respons dan error mengikuti RFC 6749, bagian 5, dengan Cache-Control: no-store. Ditambahkan di 1.62.0.
Autentikasi
Tidak memerlukan kredensial.
Isi permintaan
application/x-www-form-urlencoded
grant_typestringwajibNilai yang diizinkan:
authorization_coderefresh_tokenclient_credentialscodestringKode otorisasi (
authorization_code).redirect_uristringURI pengalihan yang sama seperti di permintaan otorisasi (
authorization_code).code_verifierstringNilai PKCE asli, 43 hingga 128 karakter (
authorization_code).refresh_tokenstringPembaruan token (
refresh_token).scopestringCakupan yang dipisahkan spasi, hanya untuk mempersempit (
refresh_token,client_credentials).client_idstringID aplikasi, jika rahasia tidak dikirim di header
Authorization: Basic.client_secretstringRahasia klien aplikasi
confidential, jika tidak dikirim di headerAuthorization: Basic.
Respons
200Token diterbitkan.
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
access_tokenstringwajibToken akses (
kbat_…) untuk headerAuthorization: Bearer.token_typestringwajibNilai yang diizinkan:
Bearerexpires_inintegerwajibMasa berlaku token akses dalam detik.
refresh_tokenstringToken refresh (
kbrt_…); tidak ada untuk client credentials.scopestringwajibCakupan token yang dipisahkan spasi.
400Error sebagaimana didefinisikan dalam RFC 6749, bagian 5.2.
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
401Kredensial klien tidak valid (`invalid_client`).
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
Percobaan ulang yang aman
Kirim header Idempotency-Key (misalnya UUID) bersama setiap POST dan PATCH. Percobaan ulang dengan kunci yang sama dalam 24 jam mengembalikan respons yang tersimpan alih-alih menjalankan permintaan lagi.
Batas laju
Respons berisi header RateLimit dan RateLimit-Policy serta header lama X-RateLimit-Limit, X-RateLimit-Remaining, dan X-RateLimit-Reset. Respons 429 berisi Retry-After dalam detik: tunggu, lalu coba lagi.