Se connecter

Présentation de l'API

Documentation complète de l'API pour l'intégration avec Cliqer

L'API client correspond au module complémentaire API : les forfaits Presenter, Studio HD et Studio 4K peuvent l'acheter, les forfaits Studio 8K et Enterprise l'incluent. Les clés API à longue durée de vie, destinées à un accès serveur à serveur sans intervention humaine aux endpoints REST, sont générées avec les forfaits Studio 8K et Enterprise, voir Authentification par clé API. Comparer les forfaits.

Documentation complète de l'API Cliqer, couvrant les endpoints REST et la communication en temps réel via WebSocket.

URL de base

https://cliqer.io/api

Tous les endpoints de l'API sont relatifs à l'URL de base du serveur Cliqer auquel vous vous connectez.

Exemples de code : dans les exemples curl/Python/Go, remplacez $BASE_URL par l'URL de votre instance Cliqer (par ex. https://cliqer.io). Pour les exemples WebSocket, remplacez $WS_URL par wss://cliqer.io. Les exemples TypeScript utilisent des chemins relatifs et fonctionnent sans modification.

Authentification

Cliqer authentifie les requêtes à l'aide d'un cookie de session httpOnly (session_token), émis par POST /api/auth/login. Les navigateurs l'envoient automatiquement ; les outils serveur à serveur le conservent dans un stockage de cookies. Les équipes Studio 8K et Enterprise peuvent également générer des clés API pour les requêtes REST serveur à serveur, envoyées sous la forme Authorization: Bearer cliqer_<key> (la gestion des clés nécessite le forfait Studio 8K ou Enterprise). Le WebSocket n'accepte pas les clés API : connectez-le avec un jeton de session.

# The session cookie is set by /api/auth/login and sent on every subsequent request
Cookie: session_token=YOUR_SESSION_TOKEN

# Or authenticate a server-to-server REST request with a team API key
Authorization: Bearer cliqer_<key>

Quelques endpoints ne nécessitent aucune session, comme POST /api/licenses/validate, qui est public.

Consultez Authentification pour la connexion, la rotation des sessions et les bonnes pratiques de sécurité.

Sections de l'API

Authentification

Connexion, rotation des sessions et bonnes pratiques de sécurité.

WebSocket en temps réel

Pilotez une salle depuis votre propre logiciel comme avec une télécommande de présentation : diapositives, minuteur, pointeur laser et messages à l'hôte.

Licences

Validation et activation des licences, et gestion des appareils.

Cycle de vie d'une requête

Réponses d'erreur

Tous les endpoints renvoient des réponses d'erreur standard :

StatutDescription
400Bad Request : paramètres manquants ou non valides
401Unauthorized : aucun cookie de session valide
403Forbidden : autorisations insuffisantes ou origine non autorisée
404Not Found : ressource introuvable
409Conflict : par ex. limite de postes atteinte lors de l'activation d'une licence
429Too Many Requests : limite de débit dépassée (voir Retry-After)
500Internal Server Error (erreur interne du serveur)

Format des réponses d'erreur :

{
  "statusCode": 400,
  "statusMessage": "Description of the error"
}

Limitation du débit

La plupart des endpoints sont soumis à une limitation du débit par adresse IP client, avec une fenêtre fixe de 60 secondes répartie sur trois niveaux. Lorsqu'une requête dépasse la limite, le serveur répond 429 Too Many Requests avec un en-tête Retry-After: 60. Il n'y a aucun blocage progressif/exponentiel, et aucun en-tête X-RateLimit-Remaining n'est renvoyé.

En-têteDescription
Retry-AfterNombre de secondes avant la réinitialisation de la fenêtre (60, envoyé uniquement avec un 429)

Niveaux de limitation du débit

NiveauRequêtes / 60 sS'applique à
Strict5POST /api/licenses/validate et les endpoints de connexion (POST /api/auth/login, inscription, réinitialisation du mot de passe, étapes de clé d'accès et de 2FA)
Standard30GET /api/licenses/status, POST /api/licenses/deactivate, GET /api/auth/me, POST /api/auth/logout
Souple60Endpoints de lecture à fort volume

Deux endpoints appliquent une seconde limite de niveau Strict, basée sur l'identifiant plutôt que sur l'adresse IP, afin qu'une même cible ne puisse pas être bombardée depuis de nombreuses adresses : POST /api/licenses/validate se base sur la license_key, et POST /api/auth/login sur l'adresse e-mail.

Le dépassement d'un niveau renvoie 429 pour le reste de la fenêtre de 60 secondes. Les limites de débit sont appliquées par le serveur lui-même, avant que l'endpoint n'effectue son traitement.