# Authenticatie

> Authenticeer je API-verzoeken met API-sleutels

- Pagina: https://tbit.app/nl/docs/api/authentication
- Basis-URL: `https://rest-api.tbit.app/v1`
- Authenticatie: header `X-API-Key` met je sleutel bij elk verzoek (de voorbeelden lezen hem uit de omgevingsvariabele `TBIT_API_KEY`)

## Overzicht

De TBit API gebruikt API-sleutels voor authenticatie. Zet je API-sleutel bij elk verzoek in de header X-API-Key.

## Je API-sleutel ophalen

Ga in het TBit-dashboard naar Instellingen > API om je API-sleutel te zien. Elke agent heeft een eigen, unieke API-sleutel.

## Gebruik

Zet de header X-API-Key in elk verzoek:

`GET /v1/activities`

```bash
curl "https://rest-api.tbit.app/v1/activities" \
  -H "X-API-Key: $TBIT_API_KEY"
```

## Best practices voor beveiliging

- Zet je API-sleutel nooit in client-side code of in openbare repositories
- Bewaar je API-sleutel in omgevingsvariabelen
- Roteer je API-sleutel als je vermoedt dat hij gelekt is
- Gebruik alleen HTTPS voor API-verzoeken

## Publiceerbaar gebruik voor catalogus-endpoints

Uitzondering: voor de lees-endpoints van de catalogus (producten, categorieën, winkelwagens) werkt de API-sleutel als een publiceerbare sleutel: hij identificeert je account en meet het gebruik, en de catalogusgegevens zijn openbaar. Je kunt hem voor die endpoints veilig in browsercode gebruiken, net als een publiceerbare sleutel van Stripe.

## Authenticatiefouten

| Status | Code | Beschrijving |
| --- | --- | --- |
| `401` | `UNAUTHORIZED` | API-sleutel ontbreekt of is ongeldig |
| `429` | `RATE_LIMITED` | Rate limit overschreden (100 req/min) |
