Vue d'ensemble
L'API CX-Engine est une API REST qui retourne des réponses JSON. Elle est divisée en deux couches distinctes qui reflètent l'architecture multi-tenant de la plateforme :
- API centrale — opérations au niveau du compte (inscription, connexion, gestion des espaces de travail, invitations)
- API workspace — opérations au niveau du tenant (clients, contacts, utilisateurs, clés d'intégration, etc.)
URLs de base
| Couche | URL de base |
|---|---|
| API centrale | https://{domaine-central}/api |
| API workspace | https://{sous-domaine}.{domaine-central}/api |
Le sous-domaine du workspace est attribué lors de la création de l'espace de travail (ex. monentreprise.cx-engine.app).
Authentification
Tous les endpoints authentifiés requièrent un token Bearer dans l'en-tête Authorization :
Authorization: Bearer {token}
Les tokens sont obtenus via l'endpoint /api/login (voir Authentification). Les tokens sont scopés : un token central ne fonctionne qu'avec l'API centrale, un token workspace ne fonctionne qu'avec l'API de ce workspace.
Pour basculer entre un token central et un token workspace, utilisez l'endpoint POST /api/switch-to.
Format des requêtes
Les endpoints d'écriture authentifiés (POST, PUT) attendent un corps JSON :
Content-Type: application/json
Format des réponses
Toutes les réponses sont des objets JSON. Les réponses réussies contiennent généralement directement les données demandées. Les réponses d'erreur suivent cette structure :
{
"message": "Description lisible de l'erreur.",
"error": "code_machine_readable"
}
Les erreurs de validation incluent un tableau hint avec les messages par champ :
{
"response": "bad request: please check body parameters.",
"hint": ["The name field is required."]
}
Codes HTTP
| Code | Signification |
|---|---|
200 |
OK — requête réussie |
201 |
Créé — ressource créée ou mise à jour |
400 |
Mauvaise requête — requête malformée ou échec de validation |
401 |
Non autorisé — token manquant ou invalide |
403 |
Interdit — authentifié mais non autorisé |
404 |
Non trouvé — la ressource n'existe pas |
422 |
Non traitable — erreur de validation sémantique |
500 |
Erreur interne du serveur |
Pagination
Les endpoints de liste qui supportent la pagination retournent une réponse paginée standard :
{
"data": [...],
"current_page": 1,
"last_page": 4,
"per_page": 20,
"total": 72
}
Passez ?per_page=N pour contrôler la taille de page et ?page=N pour naviguer entre les pages.