Felo API PlatformFelo API Platform

Aan de slag

Authenticatie

Authenticeer aanvragen met API-sleutels, volg beveiligingspraktijken en behandel authenticatiefouten.

Alle verzoeken aan de API's van Felo API Platform vereisen authenticatie met een API-sleutel. Deze handleiding legt uit hoe je je verzoeken authenticeert en hoe je veelvoorkomende authenticatieproblemen oplost.

Authenticatie met een API-sleutel

Felo gebruikt authenticatie met een API-sleutel voor alle v2-endpoints. Je API-sleutel identificeert je applicatie en geeft toegang tot de mogelijkheden van het platform.

Hoe het werkt

  1. Je haalt een API-sleutel op van de pagina API-sleutels van Felo API Platform
  2. Je stuurt de API-sleutel mee in de Authorization-header van elk API-verzoek
  3. Het platform valideert je API-sleutel en verwerkt je verzoek

Headerformaat

Stuur je API-sleutel mee in de Authorization-header volgens het Bearer-authenticatieschema:

Authorization: Bearer YOUR_API_KEY

Voorbeeldverzoek

curl -X POST https://openapi.felo.ai/v2/chat \
  -H "Authorization: Bearer sk_live_abc123xyz789" \
  -H "Content-Type: application/json" \
  -d '{"query": "What is machine learning?"}'

Je API-sleutel ophalen

Zo haal je je API-sleutel op:

  1. Open de pagina API-sleutels van Felo API Platform
  2. Log in met je Felo-account als daarom wordt gevraagd
  3. Voer een naam voor de sleutel in en klik op Create Key
  4. Kopieer de volledige sleutel zodra die verschijnt. De sleutel wordt maar één keer getoond
  5. Bewaar de sleutel veilig en gebruik hem als FELO_API_KEY

Beste praktijken voor beveiliging

1. Bewaar API-sleutels veilig

Doe dit niet: API-sleutels hardcoderen in je broncode:

# ❌ Bad - API Key exposed in code
api_key = "sk_live_abc123xyz789"

Doe dit wel: gebruik omgevingsvariabelen of een veilige configuratie:

# ✅ Good - API Key from environment
import os
api_key = os.environ.get('FELO_API_KEY')

2. Gebruik omgevingsvariabelen

Bewaar je API-sleutel in omgevingsvariabelen:

Linux/macOS:

export FELO_API_KEY="sk_live_abc123xyz789"

Windows (opdrachtprompt):

set FELO_API_KEY=sk_live_abc123xyz789

Windows (PowerShell):

$env:FELO_API_KEY="sk_live_abc123xyz789"

3. Roteer sleutels regelmatig

Genereer periodiek nieuwe API-sleutels en trek oude in om beveiligingsrisico's te beperken.

4. Gebruik verschillende sleutels voor verschillende omgevingen

Maak afzonderlijke API-sleutels voor ontwikkel-, staging- en productieomgevingen.

5. Stel sleutels nooit bloot in code aan de clientkant

API-sleutels horen alleen in code aan de serverkant te worden gebruikt. Zet ze nooit in:

  • Frontend-JavaScriptcode
  • Broncode van mobiele apps
  • Openbare repositories
  • Configuratiebestanden aan de clientkant

Authenticatiefouten

Zie Fouten, limieten en nieuwe pogingen voor het volledige foutformaat, de rate-limitheaders en het beleid voor nieuwe pogingen.

Veelvoorkomende foutcodes

HTTPCodeBetekenis
401UNAUTHORIZEDSleutel ontbreekt, is ongeldig, verlopen of ingetrokken
429RATE_LIMITEDTe veel verzoeken; zie de handleiding Fouten, limieten en nieuwe pogingen

Een geweigerd verzoek geeft de status van de sleutel terug in message:

{
  "status": 401,
  "code": "UNAUTHORIZED",
  "message": "API Key is required",
  "request_id": "..."
}

status is de HTTP-statuscode. Een ingetrokken sleutel meldt API Key has been revoked (keyPrefix=...). Baseer je logica op de HTTP-status en code, niet op de exacte formulering van message.

Problemen oplossen

Als authenticatie mislukt:

  1. Controleer of de header precies Authorization: Bearer YOUR_API_KEY is.
  2. Controleer of de sleutel niet is ingetrokken op de pagina API-sleutels.
  3. Controleer of de omgeving de sleutel gebruikt die je verwacht.
  4. Genereer een nieuwe sleutel als de oude is verwijderd of geroteerd. Een volledige sleutel wordt maar één keer getoond, bij het aanmaken.

Voor een checklist die begint bij de symptomen en zowel authenticatie als de rest van het platform behandelt, zie Problemen oplossen.

Voorbeeld: authenticatie debuggen

import requests

url = "https://openapi.felo.ai/v2/chat"
api_key = "YOUR_API_KEY"

# Correct format
headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers, json={"query": "test"})

if response.status_code == 401:
    error = response.json()
    print(f"Authentication failed: {error['code']}")
    print(f"Message: {error['message']}")
    print(f"Request ID: {error['request_id']}")
else:
    print("Authentication successful!")

Rate limiting

Rate limits worden per endpoint afgedwongen, niet globaal per API-sleutel. Momenteel worden ze alleen afgedwongen voor `/v2/chat`; gebruikers met een actief betaald Felo-abonnement zijn vrijgesteld. Voor andere /v2/**-endpoints worden geen rate limits afgedwongen.

Een 429-respons bevat X-RateLimit-*-headers en Retry-After. Lees de geldende limieten altijd uit de responsheaders, niet uit de documentatie.

Zie Fouten, limieten en nieuwe pogingen voor de volledige rate-limitdimensies, headers en het beleid voor nieuwe pogingen.

Hulp nodig?

Als je problemen met authenticatie ervaart:

  1. Lees deze handleiding aandachtig door
  2. Bekijk de handleiding Aan de slag
  3. Controleer je API-sleutel op de pagina API-sleutels
  4. Neem contact op met support via [email protected] en vermeld je request-ID

Volgende stappen