Authentification
L'API s'authentifie avec une clé API d'équipe transmise en tant que jeton porteur (bearer token). Chaque clé est limitée à une seule équipe et à un seul environnement.
Clés d'API
Générez des clés dans Équipes → Clés API. Une clé n'est affichée en entier qu'une seule fois — seul un hachage SHA-256 est conservé de notre côté. Transmettez-la en tant que jeton porteur dans l'en-tête indiqué ci-dessous :
curl https://api.seeitlive.io/v1/sessions \
-H "Authorization: Bearer sil_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Environnements
Chaque clé appartient à l'un des deux environnements, identifié par son préfixe :
| Préfixe | Environnement | Usage |
|---|---|---|
sil_live_ | Production | Sessions clients réelles. |
sil_test_ | Bac à sable | Développement et tests. |
Les sessions créées avec une clé héritent de l'environnement et de l'équipe de cette clé.
Sécuriser une clé
Chaque clé peut être restreinte afin qu'une clé divulguée soit inutilisable depuis un autre endroit :
- Sources autorisées — Restreignez une clé par IP, plage CIDR ou nom d'hôte — un par ligne. Les noms d'hôte sont résolus par DNS et comparés à l'IP de l'appelant. Ajoutez une étiquette en ligne après
#ou;, par ex.1.2.3.4/24 # serveur 1. - Expiration — Donnez à une clé une date d'expiration. Une fois celle-ci passée, les requêtes utilisant cette clé sont rejetées.
- Révoquer — Désactivez une clé instantanément — les requêtes en cours commencent à échouer immédiatement.
Signature des requêtes
La signature est optionnelle et s'ajoute à l'authentification par clé — l'en-tête Authorization: Bearer reste obligatoire sur chaque requête. Activez-la, faites-la tourner ou désactivez-la pour une clé depuis Équipe → Clés API → la clé → Sécurité ; l'activation ou la rotation révèle le secret de signature une seule fois, alors enregistrez-le immédiatement.
Une fois activée, signez chaque requête en calculant HMAC_SHA256(signingSecret, "TIMESTAMP.METHOD.PATH.sha256hex(body)"), encodé en hexadécimal, où :
| Variable | Description |
|---|---|
TIMESTAMP | L'horodatage unix en secondes — la même valeur envoyée dans l'en-tête X-SeeItLive-Timestamp. |
METHOD | La méthode HTTP, en majuscules (par ex. POST). |
PATH | Le chemin de la requête relatif à la racine de version de l'API — ce que vous ajoutez à l'URL de base, par ex. /sessions ou /keys?teamId=x. Pas l'URL complète, et sans le préfixe /api/v1. Incluez la chaîne de requête. |
sha256hex(body) | SHA-256 en hexadécimal minuscule des octets exacts du corps de la requête ; le hachage d'une chaîne vide en l'absence de corps. |
Envoyez la signature et l'horodatage en tant qu'en-têtes sur chaque requête signée :
| En-tête | Valeur |
|---|---|
X-SeeItLive-Signature | sha256= suivi de la signature encodée en hexadécimal. |
X-SeeItLive-Timestamp | Le même horodatage unix (en secondes) utilisé dans la signature. |
SIGNING_SECRET=your-signing-secret # shown once when you enable signing
TS=$(date +%s)
BODY='{"channel":"demo"}'
BODY_HASH=$(printf '%s' "$BODY" | openssl dgst -sha256 | sed 's/^.* //')
SIG=$(printf '%s' "$TS.POST./sessions.$BODY_HASH" | openssl dgst -sha256 -hmac "$SIGNING_SECRET" | sed 's/^.* //')
curl https://api.seeitlive.io/v1/sessions \
-H "Authorization: Bearer sil_live_xxxxxxxx" \
-H "X-SeeItLive-Timestamp: $TS" \
-H "X-SeeItLive-Signature: sha256=$SIG" \
-H "Content-Type: application/json" \
-d "$BODY"Limites de débit
L'API autorise 100 requêtes par minute et par clé. Les points de terminaison de création de session et d'envoi d'invitation ont des limites plus strictes. Dépasser une limite renvoie 429 — consultez la référence des erreurs complète pour tous les codes de statut renvoyés par l'API.
| Statut | Signification |
|---|---|
401 | Clé manquante ou invalide. |
403 | Clé non autorisée depuis cette IP ou cette origine, ou permission manquante. |
402 | Limite du forfait atteinte (sessions, sièges) — mise à niveau requise. |
400 | Erreur de validation. |
429 | Limite de débit dépassée. |