Inkr API

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> :

FormatEnvironnementFacturationVolume
sk_test_xxxSandboxNonRate limit 100/min
sk_live_xxxProductionOui (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é :

  1. Créer une nouvelle clé en parallèle.
  2. Déployer la nouvelle clé dans vos secrets prod.
  3. Vérifier que vos requêtes utilisent bien la nouvelle.
  4. 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 :

HeaderContenu
X-RateLimit-LimitPlafond de la fenêtre (100 ou 1000).
X-RateLimit-RemainingRequêtes restantes dans la fenêtre.
X-RateLimit-ResetTimestamp 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.