dokumentasi
API dasbor

Kunci API

Markdown

Metode, kolom permintaan, dan respons.

Panduan lengkap

Bagian ini berisi 5 metode. Buka metode untuk melihat ketentuan akses, kolom permintaan, dan respons.

Metode dan jalurDeskripsiAkses
GET /api/v1/keysDaftar — kunci APIToken dasbor
POST /api/v1/keysPembuatan kunci APIToken dasbor
DELETE /api/v1/keys/:idPenghapusan — kunci APIToken dasbor
GET /api/v1/keys/:idPengambilan berdasarkan ID — kunci APIToken dasbor
PUT /api/v1/keys/:idPerubahan kunci APIToken dasbor
GET /api/v1/keys — Daftar — kunci API

Akses: Token dasbor

GET/api/v1/keys
Pembacaan; ID diambil dari respons Anda sebelumnya
curl --fail-with-body "https://ailoot.ai/api/v1/keys" \
  -H "Authorization: Bearer $TOKEN"

Parameter query

KolomJenisWajibValidasi / deskripsi
sort_bystringtidak; default: created_at
sort_orderstringtidak; default: desc
searchstringtidak
statusstringtidak
pageintegertidak; default: 1; positive; page_size/limit <=1000
page_sizeintegertidak; default: 20; positive; page_size/limit <=1000
limitintegertidak; default: 20; positive; page_size/limit <=1000

Isi permintaan tidak diperlukan. Kirim parameter di atas dalam URL.

Respons

Respons JSON berisi code, message, dan data. Isi data dijelaskan dalam skema di bawah.

Skema data respons: APIKey. Kolom dan tipe dijelaskan di halaman “Skema data”.

Skema respons, nilai hanya contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "items": [
      {
        "id": "PLACEHOLDER_ID (integer)",
        "user_id": "PLACEHOLDER_USER_ID (integer)",
        "key": "PLACEHOLDER_KEY (string)",
        "name": "PLACEHOLDER_NAME (string)",
        "status": "PLACEHOLDER_STATUS (string)",
        "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
        "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
        "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
        "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
        "quota": "PLACEHOLDER_QUOTA (number)",
        "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
        "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
        "created_at": "PLACEHOLDER_CREATED_AT (string)",
        "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
        "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
        "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
        "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
        "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
        "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
        "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
        "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
        "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
        "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
        "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
        "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
        "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
        "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
        "user": "PLACEHOLDER_USER (object)"
      }
    ],
    "total": "PLACEHOLDER_TOTAL (integer)",
    "page": "PLACEHOLDER_PAGE (integer)",
    "page_size": "PLACEHOLDER_PAGE_SIZE (integer)",
    "pages": "PLACEHOLDER_PAGES (integer)"
  }
}

Catatan khusus: Semua data pribadi dan objek dibatasi pada subjek JWT.

Catatan khusus: Respons berisi key yang rahasia; jangan publikasikan nilai nyata.

POST /api/v1/keys — Pembuatan kunci API

Akses: Token dasbor

POST/api/v1/keys

Kolom JSON / formulir

KolomJenisWajibValidasi / deskripsi
namestringyarequired
custom_keystringtidak; Nilai kunci buatan sendiri, opsional; dapat berupa null
ip_whitelistarraytidak; Daftar IP yang diizinkan
ip_blacklistarraytidak; Daftar IP yang diblokir
quotanumbertidak; Batas pengeluaran kunci dalam USD; dapat berupa null
expires_in_daysintegertidak; Masa berlaku dalam hari; dapat berupa null
rate_limit_5hnumbertidak; dapat berupa null
rate_limit_1dnumbertidak; dapat berupa null
rate_limit_7dnumbertidak; dapat berupa null
Templat isi permintaan
{
  "name": "PLACEHOLDER_NAME (string)",
  "custom_key": "PLACEHOLDER_CUSTOM_KEY (string)",
  "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
  "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
  "quota": "PLACEHOLDER_QUOTA (number)",
  "expires_in_days": "PLACEHOLDER_EXPIRES_IN_DAYS (integer)",
  "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
  "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
  "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)"
}

PLACEHOLDER mewakili input Anda dan tipenya. Ganti nilai-nilainya dan sisakan hanya kolom opsional yang diperlukan; jangan kirim penanda string sebagai pengganti angka, boolean, objek, atau array.

Skema permintaan: CreateAPIKeyRequest

Respons

Respons JSON berisi code, message, dan data. Isi data dijelaskan dalam skema di bawah.

Skema data respons: APIKey. Kolom dan tipe dijelaskan di halaman “Skema data”.

Skema respons, nilai hanya contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "user_id": "PLACEHOLDER_USER_ID (integer)",
    "key": "PLACEHOLDER_KEY (string)",
    "name": "PLACEHOLDER_NAME (string)",
    "status": "PLACEHOLDER_STATUS (string)",
    "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
    "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
    "quota": "PLACEHOLDER_QUOTA (number)",
    "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
    "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
    "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
    "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
    "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
    "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
    "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
    "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
    "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
    "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
    "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
    "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
    "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
    "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
    "user": "PLACEHOLDER_USER (object)"
  }
}

Catatan khusus: Semua data pribadi dan objek dibatasi pada subjek JWT.

Catatan khusus: Operasi mengubah keadaan atau melanjutkan autentikasi sekali pakai; contoh menjelaskan kontrak dan tidak dijalankan.

Catatan khusus: Idempotency-Key didukung; pengiriman ulang mengembalikan respons tersimpan dengan X-Idempotency-Replayed.

Catatan khusus: Respons berisi key yang rahasia; jangan publikasikan nilai nyata.

DELETE /api/v1/keys/:id — Penghapusan — kunci API

Akses: Token dasbor

DELETE/api/v1/keys/:id

Parameter jalur

KolomJenisWajibValidasi / deskripsi
idintegerya

Isi permintaan tidak diperlukan.

Respons

Respons JSON berisi code, message, dan data. Isi data dijelaskan dalam skema di bawah.

Skema respons, nilai hanya contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "VALUE_FROM_RESPONSE"
  }
}

Catatan khusus: Semua data pribadi dan objek dibatasi pada subjek JWT.

Catatan khusus: Operasi mengubah keadaan atau melanjutkan autentikasi sekali pakai; contoh menjelaskan kontrak dan tidak dijalankan.

Catatan khusus: Respons berisi key yang rahasia; jangan publikasikan nilai nyata.

GET /api/v1/keys/:id — Pengambilan berdasarkan ID — kunci API

Akses: Token dasbor

GET/api/v1/keys/:id
Pembacaan; ID diambil dari respons Anda sebelumnya
curl --fail-with-body "https://ailoot.ai/api/v1/keys/$ID" \
  -H "Authorization: Bearer $TOKEN"

Parameter jalur

KolomJenisWajibValidasi / deskripsi
idintegerya

Isi permintaan tidak diperlukan. Kirim parameter di atas dalam URL.

Respons

Respons JSON berisi code, message, dan data. Isi data dijelaskan dalam skema di bawah.

Skema data respons: APIKey. Kolom dan tipe dijelaskan di halaman “Skema data”.

Skema respons, nilai hanya contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "user_id": "PLACEHOLDER_USER_ID (integer)",
    "key": "PLACEHOLDER_KEY (string)",
    "name": "PLACEHOLDER_NAME (string)",
    "status": "PLACEHOLDER_STATUS (string)",
    "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
    "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
    "quota": "PLACEHOLDER_QUOTA (number)",
    "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
    "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
    "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
    "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
    "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
    "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
    "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
    "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
    "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
    "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
    "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
    "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
    "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
    "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
    "user": "PLACEHOLDER_USER (object)"
  }
}

Catatan khusus: Semua data pribadi dan objek dibatasi pada subjek JWT.

Catatan khusus: Respons berisi key yang rahasia; jangan publikasikan nilai nyata.

PUT /api/v1/keys/:id — Perubahan kunci API

Akses: Token dasbor

PUT/api/v1/keys/:id

Parameter jalur

KolomJenisWajibValidasi / deskripsi
idintegerya

Kolom JSON / formulir

KolomJenisWajibValidasi / deskripsi
namestringtidak
statusstringtidakomitempty,oneof=active inactive
ip_whitelistarraytidak; IP yang diizinkan: null tidak mengubah daftar, array kosong menghapus isinya; dapat berupa null
ip_blacklistarraytidak; IP yang diblokir: null tidak mengubah daftar, array kosong menghapus isinya; dapat berupa null
quotanumbertidak; Batas pengeluaran kunci dalam USD; 0 — tanpa batas; dapat berupa null
expires_atstringtidak; Waktu kedaluwarsa dalam format ISO 8601; dapat berupa null
reset_quotabooleantidak; Reset jumlah batas pengeluaran yang sudah digunakan; dapat berupa null
rate_limit_5hnumbertidak; dapat berupa null
rate_limit_1dnumbertidak; dapat berupa null
rate_limit_7dnumbertidak; dapat berupa null
reset_rate_limit_usagebooleantidak; Reset penggunaan batas per jendela waktu; dapat berupa null
Templat isi permintaan
{
  "name": "PLACEHOLDER_NAME (string)",
  "status": "PLACEHOLDER_STATUS (string)",
  "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
  "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
  "quota": "PLACEHOLDER_QUOTA (number)",
  "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
  "reset_quota": "PLACEHOLDER_RESET_QUOTA (boolean)",
  "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
  "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
  "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
  "reset_rate_limit_usage": "PLACEHOLDER_RESET_RATE_LIMIT_USAGE (boolean)"
}

PLACEHOLDER mewakili input Anda dan tipenya. Ganti nilai-nilainya dan sisakan hanya kolom opsional yang diperlukan; jangan kirim penanda string sebagai pengganti angka, boolean, objek, atau array.

Skema permintaan: UpdateAPIKeyRequest

Respons

Respons JSON berisi code, message, dan data. Isi data dijelaskan dalam skema di bawah.

Skema data respons: APIKey. Kolom dan tipe dijelaskan di halaman “Skema data”.

Skema respons, nilai hanya contoh
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "user_id": "PLACEHOLDER_USER_ID (integer)",
    "key": "PLACEHOLDER_KEY (string)",
    "name": "PLACEHOLDER_NAME (string)",
    "status": "PLACEHOLDER_STATUS (string)",
    "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
    "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
    "quota": "PLACEHOLDER_QUOTA (number)",
    "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
    "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
    "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
    "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
    "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
    "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
    "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
    "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
    "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
    "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
    "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
    "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
    "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
    "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
    "user": "PLACEHOLDER_USER (object)"
  }
}

Catatan khusus: Semua data pribadi dan objek dibatasi pada subjek JWT.

Catatan khusus: Operasi mengubah keadaan atau melanjutkan autentikasi sekali pakai; contoh menjelaskan kontrak dan tidak dijalankan.

Catatan khusus: Respons berisi key yang rahasia; jangan publikasikan nilai nyata.

Catatan khusus: Selama kunci masih memiliki permintaan yang belum selesai dengan saldo ditahan, batas pengeluarannya tidak boleh diturunkan atau direset. Kirim hanya kolom yang Anda ubah.

Masih ada pertanyaan? Kirim Request ID dan penjelasannya — kami akan membantu.Hubungi dukungan