API-Referentie

Authenticatie

Hoe je API-sleutels aanmaakt en gebruikt om te authenticeren met de FloopFloop API.

Laatst bijgewerkt:

API-sleutelauthenticatie

Alle API-verzoeken moeten je API-sleutel bevatten in de Authorization-header via het Bearer-tokenschema:

Authorization: Bearer flp_your_api_key_here

API-sleutels aanmaken

Ga naar Account → API Keys in je FloopFloop-dashboard om API-sleutels aan te maken en te beheren.

  • Elk account kan maximaal 5 actieve API-sleutels hebben
  • Sleutels worden slechts eenmalig getoond bij aanmaak — sla ze veilig op
  • Sleutels kunnen op elk moment worden ingetrokken vanuit het dashboard
  • Alle sleutels beginnen met het voorvoegsel flp_

Sleutelbeveiliging

  • Deel je API-sleutels nooit en commit ze niet naar versiebeheer
  • Gebruik omgevingsvariabelen om sleutels op te slaan in je applicaties
  • Roteer sleutels regelmatig en trek ongebruikte sleutels in
  • Elke sleutel heeft zijn eigen rate-limit-bucket

Rate limits

API-endpoints hebben de volgende rate limits per API-sleutel:

OperationLimitWindow
Leesbewerkingen (GET)120 verzoeken1 minuut
Schrijfbewerkingen (POST/PATCH/DELETE)30 verzoeken1 minuut
Deploy/Rollback5 verzoeken1 uur
Project aanmaken/Klonen10 verzoeken1 uur

Rate-limit-informatie is opgenomen in de responsheaders:X-RateLimit-Remaining en X-RateLimit-Reset.

Authenticatie verifiëren

GET /api/v1/user/me

Gebruik dit endpoint om te bevestigen dat je API-sleutel geldig is. Het geeft het profiel van de geauthenticeerde gebruiker terug en is de standaard “test je auth”-aanroep die door elke officiële SDK en door floop whoami in de CLI wordt gebruikt.

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

Response (200):

{
  "data": {
    "id": "user_abc123",
    "email": "you@example.com",
    "name": "Your Name",
    "role": "user",
    "source": "api_key"
  }
}
  • role"user" voor normale accounts, "admin" voor platformmedewerkers.
  • source — hoe het verzoek is geauthenticeerd. "api_key" voor programmatische credentials, "cli_token" voor de via apparaat geautoriseerde CLI-flow.

Een 401 UNAUTHORIZED hier betekent dat de sleutel ontbreekt, ingetrokken is, of onjuist gevormd is. Een 403 FORBIDDEN betekent dat het account bestaat maar het Business-plan mist dat API-toegang verleent (zie Vereisten in het API-overzicht).

Programmatisch API-sleutelbeheer

De meeste gebruikers maken sleutels aan via het dashboard, maar hetzelfde oppervlak is ook beschikbaar via de API voor orkestratiescenario's — een sleutel roteren vanuit een CI-taak, sleutels opvragen voor auditdoeleinden, of een gelekte sleutel intrekken zonder een UI-rondreis. Dit spiegelt wat floop keys list/create/remove doet in de CLI.

API-sleutels opvragen

GET /api/v1/api-keys

Geeft metadata terug voor elke actieve (niet-ingetrokken) sleutel op het account. Plaintext-sleutelmateriaal wordt nooit teruggegeven — alleen het keyPrefix (de eerste 8 hex-tekens van de sleutel, voorafgegaan door 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"
      }
    ]
  }
}

API-sleutel aanmaken

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

Response (201):

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

De rawKey wordt slechts eenmalig getoond— latere opvragingen geven alleen het keyPrefix terug. Sla hem direct op. Elk account is beperkt tot 5 actieve sleutels; als je de limiet bereikt, geeft het verzoek409 LIMIT_EXCEEDEDterug — trek eerst een ongebruikte sleutel in.

Voor het aanmaken van een sleutel is het Business-plan vereist. Een verzoek van een niet-Business-account geeft 403 FORBIDDEN terug met de melding “Creating API keys requires the Business plan”. Platformbeheerders omzeilen deze beperking.

API-sleutel intrekken

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

Geef de id van de sleutel (bijv.key_xyz) op als padparameter. De sleutel wordt onmiddellijk ongeldig gemaakt — lopende verzoeken die al bij een worker zijn, kunnen nog worden afgerond, maar nieuwe verzoeken worden niet meer geauthenticeerd.

Response (200):

{ "data": { "success": true } }
  • Zelf-intrekking is geblokkeerd. Een DELETE-aanroep met dezelfde sleutel als die het verzoek doet, geeft400 VALIDATION_ERRORterug — dit voorkomt dat de CLI zichzelf afsluit tijdens een aanroep. Gebruik een andere sleutel, of trek in via het dashboard.
  • Onbekende of al-ingetrokken sleutels geven404 NOT_FOUND terug.

De officiële SDK's accepteren zowel een id als een sleutelnaam in hunapiKeys.remove()-helpers, waarbij naam → id client-side wordt omgezet via een lijstaanroep. De API zelf accepteert alleen het id.

Een ingetrokken sleutel kan niet worden hersteld; maak een nieuwe aan om hem te vervangen. Intrekking wordt geregistreerd in het auditlogboek dat zichtbaar is op Account → API Keys.