Authentification
L'API Apertur utilise des clés API pour l'authentification. Les clés sont associées à un projet.
Format des clés API
Les clés API suivent le format :
aptr_{env}_{random}| Partie | Valeur | Description |
|---|---|---|
| aptr | Préfixe fixe | Identifie une clé Apertur |
| random | 32 caractères hexadécimaux | Secret généré de manière cryptographique |
Exemple :
aptr_live_z9y8x7w6v5u4t3s2r1q0p9o8n7m6l5k4
Envoi de la clé API
Incluez votre clé API dans l'en-tête Authorization de chaque requête en utilisant le schéma Bearer :
Authorization: Bearer aptr_live_xxxx
Les clés API doivent rester secrètes. Ne les exposez jamais dans du JavaScript côté client et ne les enregistrez pas dans un système de contrôle de version. Utilisez des variables d'environnement sur votre serveur.
curl https://api.apertur.ca/v1/upload-sessions \ -H "Authorization: Bearer aptr_live_xxxx"
Signature des requêtes
Pour une protection supplémentaire contre la falsification et le rejeu, activez la signature HMAC des requêtes sur une clé API depuis ses paramètres dans le tableau de bord. Une fois activée, chaque requête doit aussi porter une signature valide — la signature est un facteur supplémentaire, la clé Bearer reste donc obligatoire à chaque requête.
Envoyez la signature et l'horodatage dans les en-têtes X-Aptr-Signature et X-Aptr-Timestamp, calculés avec HMAC-SHA256 sur l'horodatage, la méthode, le chemin et le hachage du corps :
X-Aptr-Signature: sha256=<hex> X-Aptr-Timestamp: <unix seconds>
Signez le chemin complet de la requête tel qu'envoyé, y compris le préfixe /api/v1 et toute chaîne de requête — par exemple /api/v1/upload-sessions. La méthode est en majuscules, l'horodatage est en secondes Unix, et le hachage du corps est l'empreinte SHA-256 en hexadécimal minuscule des octets exacts du corps (l'empreinte d'une chaîne vide en l'absence de corps).
HMAC_SHA256(signingSecret, `${timestamp}.${method}.${path}.${sha256hex(body)}`)Les requêtes de plus de 5 minutes sont rejetées.
Secret de signature
Activez, faites pivoter ou désactivez la signature d'une clé depuis ses paramètres dans le tableau de bord. L'activation ou la rotation renvoie le signing secret une seule fois — copiez-le immédiatement, car il ne peut plus être récupéré ensuite.
SIGNING_SECRET=your-signing-secret # shown once when you enable signing
TS=$(date +%s)
BODY='{"destination_ids":["dst_xxxx"]}'
BODY_HASH=$(printf '%s' "$BODY" | openssl dgst -sha256 | sed 's/^.* //')
SIG=$(printf '%s' "$TS.POST./api/v1/upload-sessions.$BODY_HASH" | openssl dgst -sha256 -hmac "$SIGNING_SECRET" | sed 's/^.* //')
curl https://api.aptr.ca/api/v1/upload-sessions \
-H "Authorization: Bearer aptr_live_xxxxxxxx" \
-H "X-Aptr-Timestamp: $TS" \
-H "X-Aptr-Signature: sha256=$SIG" \
-H "Content-Type: application/json" \
-d "$BODY"Limites de débit
L'API applique des limites de débit par clé API. Les limites sont retournées dans les en-têtes de réponse :
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 97 X-RateLimit-Reset: 1711627200
| Point de terminaison | Limite | Fenêtre |
|---|---|---|
| POST /api/v1/sessions | 100 requêtes | par minute |
| GET /api/v1/sessions | 300 requêtes | par minute |
| Tous les autres points de terminaison | 200 requêtes | par minute |
Lorsqu'une limite de débit est dépassée, l'API retourne 429 Too Many Requests. Consultez la page Erreurs pour plus de détails.