Authentification
Authentifier vos appels à l'API Inkr avec une clé sk_test ou sk_live, gérer les environnements, comprendre les rate limits.
Format des clés
Toutes les clés ont le format sk_<env>_<32 caractères alphanumériques> :
| Format | Environnement | Facturation | Volume |
|---|---|---|---|
sk_test_xxx | Sandbox | Non | Rate limit 100/min |
sk_live_xxx | Production | Oui (PPU 0,20€ → 0,15€) | Rate limit 1000/min |
Les clés test et live sont isolées : les submissions, templates, webhooks créés dans l'un n'apparaissent pas dans l'autre.
Envoyer une requête authentifiée
Toutes les requêtes nécessitent le header Authorization: Bearer <clé> :
curl https://api.getinkr.eu/v1/submissions \
-H "Authorization: Bearer sk_test_xxx..."Une requête sans header retourne :
{
"error": {
"type": "authentication_error",
"code": "missing_api_key",
"message": "No API key provided. Set the Authorization header with a Bearer sk_... key."
}
}Une clé au format invalide, inexistante ou révoquée retourne le même statut 401 avec le code invalid_api_key.
Tous les endpoints /v1/** exigent une clé, y compris GET /v1/health. Un 401 sur health sans header est donc le comportement attendu, pas une panne. C'est d'ailleurs le moyen le plus simple de vérifier qu'une clé est valide et de savoir dans quel environnement elle opère (champ environment de la réponse).
Générer et révoquer une clé
Depuis le dashboard developers.getinkr.eu/dev/api-keys :
- Créer : la clé complète s'affiche une seule fois à la création. Stockez-la immédiatement dans un gestionnaire de secrets (Doppler, 1Password, AWS Secrets Manager, Vercel env vars).
- Révoquer : depuis la liste, cliquez sur la corbeille. La clé devient immédiatement invalide pour toutes les requêtes futures (les requêtes en cours peuvent terminer).
Inkr ne supporte pas le re-affichage d'une clé. Si vous perdez une clé, révoquez-la et créez-en une nouvelle.
Rotation
Inkr ne force pas la rotation. Bonne pratique : tourner les clés tous les 6 à 12 mois ou immédiatement en cas de compromission suspectée.
Workflow recommandé :
- Créer une nouvelle clé en parallèle.
- Déployer la nouvelle clé dans vos secrets prod.
- Vérifier que vos requêtes utilisent bien la nouvelle.
- Révoquer l'ancienne depuis le dashboard.
Rate limits
Chaque clé est rate-limitée par minute glissante :
sk_test_xxx: 100 requêtes / minute par clé.sk_live_xxx: 1000 requêtes / minute par clé.
Au-delà, la réponse est 429 Too Many Requests :
{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "You have exceeded the 1000 requests per minute limit for live keys."
}
}Le header Retry-After indique en secondes le délai avant retry.
Chaque réponse authentifiée porte en plus les headers standard suivants :
| Header | Contenu |
|---|---|
X-RateLimit-Limit | Plafond de la fenêtre (100 ou 1000). |
X-RateLimit-Remaining | Requêtes restantes dans la fenêtre. |
X-RateLimit-Reset | Timestamp UNIX en secondes de la réinitialisation. |
Stockage côté Inkr
Inkr stocke les clés en argon2id avec un coût ≥ 12 + pepper applicatif. Aucun moyen de récupérer une clé en clair côté Inkr. En cas de compromission de la DB Inkr, les clés ne sont pas exposables même par l'équipe Inkr.