Referensi API

Autentikasi

Cara membuat dan menggunakan kunci API untuk autentikasi dengan API FloopFloop.

Terakhir diperbarui:

Autentikasi API Key

Semua permintaan API harus menyertakan API key Anda di header Authorizationmenggunakan skema Bearer token:

Authorization: Bearer flp_your_api_key_here

Membuat API Key

Navigasikan ke Account → API Keys di dasbor FloopFloop Anda untuk membuat dan mengelola API key.

  • Setiap akun dapat memiliki hingga 5 API key aktif
  • Key hanya ditampilkan satu kali saat pembuatan — simpan dengan aman
  • Key dapat dicabut kapan saja dari dasbor
  • Semua key diawali dengan prefiks flp_

Keamanan Key

  • Jangan pernah membagikan API key Anda atau menyimpannya di version control
  • Gunakan variabel lingkungan untuk menyimpan key di aplikasi Anda
  • Rotasi key secara berkala dan cabut key yang tidak digunakan
  • Setiap key memiliki bucket batas laju tersendiri

Batas Laju

Endpoint API memiliki batas laju berikut per API key:

OperationLimitWindow
Operasi baca (GET)120 permintaan1 menit
Operasi tulis (POST/PATCH/DELETE)30 permintaan1 menit
Deploy/Rollback5 permintaan1 jam
Pembuatan/Kloning proyek10 permintaan1 jam

Informasi batas laju disertakan dalam header respons:X-RateLimit-Remaining dan X-RateLimit-Reset.

Verifikasi Autentikasi

GET /api/v1/user/me

Gunakan endpoint ini untuk mengonfirmasi bahwa API key Anda valid. Endpoint ini mengembalikan profil pengguna yang terautentikasi dan merupakan panggilan standar “uji autentikasi” yang digunakan oleh setiap SDK resmi dan oleh floop whoami di CLI.

curl https://floopfloop.com/api/v1/user/me \
  -H "Authorization: Bearer flp_your_api_key_here"

Respons (200):

{
  "data": {
    "id": "user_abc123",
    "email": "you@example.com",
    "name": "Your Name",
    "role": "user",
    "source": "api_key"
  }
}
  • role"user" untuk akun biasa, "admin" untuk staf platform.
  • source — cara permintaan diautentikasi. "api_key" untuk kredensial terprogram, "cli_token" untuk alur CLI yang diotorisasi perangkat.

Respons 401 UNAUTHORIZED berarti key tidak ada, sudah dicabut, atau salah format. Respons 403 FORBIDDEN berarti akun ada tetapi tidak memiliki paket Business yang diperlukan untuk akses API (lihat Persyaratan di API Overview).

Manajemen API Key Secara Terprogram

Sebagian besar pengguna membuat key dari dasbor, tetapi permukaan yang sama tersedia melalui API untuk skenario orkestrasi — merotasi key dari CI job, mencantumkan key untuk mengaudit penggunaan, atau mencabut key yang bocor tanpa perlu membuka UI. Hal ini mencerminkan apa yang dilakukan floop keys list/create/removedi CLI.

Daftar API Key

GET /api/v1/api-keys

Mengembalikan metadata untuk setiap key aktif (belum dicabut) pada akun. Materi key teks biasa tidak pernah dikembalikan — hanya keyPrefix (8 karakter hex pertama dari key, diawali dengan flp_).

{
  "data": {
    "keys": [
      {
        "id": "key_abc",
        "name": "ci-deploy",
        "keyPrefix": "flp_a1b2c3d4",
        "scopes": null,
        "lastUsedAt": "2026-04-24T18:30:00Z",
        "createdAt": "2026-04-01T12:00:00Z"
      }
    ]
  }
}

Buat API Key

POST /api/v1/api-keys
{
  "name": "ci-deploy"    // required, 1-100 chars
}

Respons (201):

{
  "data": {
    "id": "key_xyz",
    "rawKey": "flp_a1b2c3d4…full-40-hex…",
    "keyPrefix": "flp_a1b2c3d4"
  }
}

rawKey hanya ditampilkan satu kali— pembacaan berikutnya hanya mengembalikan keyPrefix. Simpan segera. Setiap akun dibatasi hingga 5 key aktif; jika batas tercapai, permintaan mengembalikan409 LIMIT_EXCEEDED— cabut key yang tidak digunakan terlebih dahulu.

Membuat key memerlukan paket Business. Permintaan dari akun non-Business mengembalikan 403 FORBIDDEN dengan pesan “Creating API keys requires the Business plan”. Admin platform melewati gerbang ini.

Cabut API Key

DELETE /api/v1/api-keys/{keyId}

Masukkan id key (misalnyakey_xyz) sebagai parameter path. Key langsung dinonaktifkan — permintaan yang sedang berjalan di worker mungkin selesai, tetapi tidak ada permintaan baru yang akan terautentikasi.

Respons (200):

{ "data": { "success": true } }
  • Pencabutan diri sendiri diblokir. Memanggil DELETE dengan key yang sama dengan yang membuat permintaan mengembalikan400 VALIDATION_ERROR— ini mencegah CLI memutus koneksinya sendiri di tengah panggilan. Gunakan key lain, atau cabut dari dasbor.
  • Key yang tidak dikenal atau sudah dicabut mengembalikan404 NOT_FOUND.

SDK resmi menerima id atau nama key di helperapiKeys.remove()mereka, menyelesaikan nama → id di sisi klien melalui panggilan list. API itu sendiri hanya menerima id.

Key yang dicabut tidak dapat dipulihkan; buat yang baru untuk menggantikannya. Pencabutan dicatat di log audit yang ditampilkan di Account → API Keys.