API Key
Cocok untuk backend milikmu, pekerjaan terjadwal, dan automasi privat saat kredensial tidak pernah dikirim ke browser atau aplikasi mobile.
Dua cara autentikasi dengan API s.id, API key untuk server-ke-server, OAuth 2.0 untuk bertindak atas nama pengguna.
Pilih berdasarkan batas kepercayaan
Cocok untuk backend milikmu, pekerjaan terjadwal, dan automasi privat saat kredensial tidak pernah dikirim ke browser atau aplikasi mobile.
Cocok untuk aplikasi pihak ketiga yang membutuhkan persetujuan pengguna dan akses terperinci yang dapat dicabut ke akun s.id.
API Key
API key dipakai buat autentikasi integrasi server-ke-server. Buat satu di Dashboard → Developer → API Keys, pilih scope kamu, lalu kirim sebagai token Bearer.
Authorization: Bearer sk_live_...curl https://api.s.id/v2/links \
-H "Authorization: Bearer sk_live_..."links:readlinks:writelinks:archivelinks:analyticsqr:readqr:writeuser:readmicrosites:readmicrosites:writemicrosites:deleteOAuth 2.0
Arahkan pengguna ke s.id untuk memberikan persetujuan, verifikasi state saat callback, lalu tukarkan kode sekali pakai dengan access token dan refresh token yang berotasi.
Klien publik
Untuk SPA, aplikasi mobile, dan CLI. Buat code_verifier acak, kirim challenge S256 saat authorize, lalu kirim verifier asli ketika menukar token.
https://api.s.id/oauth/authorize?
response_type=code&
client_id=YOUR_CLIENT_ID&
redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback&
scope=links%3Aread%20links%3Awrite&
state=RANDOM_CSRF_VALUE&
code_challenge=BASE64URL_SHA256_VERIFIER&
code_challenge_method=S256curl -X POST https://api.s.id/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code" \
-d "client_id=YOUR_CLIENT_ID" \
-d "code=AUTHORIZATION_CODE" \
-d "redirect_uri=https://app.example.com/callback" \
-d "code_verifier=ORIGINAL_RANDOM_VERIFIER"Klien rahasia
Untuk aplikasi server-rendered atau backend yang dapat menjaga client_secret. PKCE tetap opsional dan disarankan sebagai perlindungan tambahan.
https://api.s.id/oauth/authorize?
response_type=code&
client_id=YOUR_CLIENT_ID&
redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback&
scope=links%3Aread%20links%3Awrite&
state=RANDOM_CSRF_VALUEcurl -X POST https://api.s.id/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET" \
-d "code=AUTHORIZATION_CODE" \
-d "redirect_uri=https://app.example.com/callback"Berlaku selama 1 jam
Berlaku selama 30 hari
Sekali pakai; kedaluwarsa setelah 10 menit
curl -X POST https://api.s.id/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=refresh_token" \
-d "client_id=YOUR_CLIENT_ID" \
-d "refresh_token=CURRENT_REFRESH_TOKEN"curl -X POST https://api.s.id/oauth/revoke \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_TO_REVOKE"}'https://api.s.id/.well-known/oauth-authorization-serverTemukan URL endpoint, scope yang didukung, dan metode PKCE melalui metadata RFC 8414.
POST https://api.s.id/oauth/introspectResource server rahasia dapat memeriksa apakah token aktif dan melihat scope-nya.
POST https://api.s.id/oauth/revokeCabut access token atau refresh token saat pengguna memutus integrasimu.
GET https://api.s.id/oauth/userinfoBaca profil yang terkait dengan access token OAuth yang memiliki user:read.
Buat API key dalam hitungan menit. Sudah termasuk tier gratis, tanpa kartu kredit.