Référence de l'API REST de la plateforme Quickchat AI : authentification, URL de base, limites de débit, pagination et gestion des erreurs.
Quickchat AI fournit une API REST pour accéder par programmation à la configuration de votre AI Agent, à sa Knowledge Base, à ses Conversations, à ses AI Actions, et bien plus.
Authentification
Section intitulée « Authentification »Tous les endpoints de l’API utilisent l’authentification par Bearer token. Incluez votre API token dans le header Authorization de chaque requête :
Authorization: Bearer <API_TOKEN>Les tokens sont créés dans le Dashboard Quickchat sous External Apps > API. Chaque token est un JWT qui contient votre scenario_id, aucun header d’identifiant supplémentaire n’est donc nécessaire.
- Validité du token : 52 semaines à compter de la création
- Les tokens peuvent être révoqués à tout moment depuis le Dashboard
- Chaque token est limité à un seul AI Agent (scénario)
- La création de tokens nécessite le forfait Business ou supérieur ; sur les forfaits inférieurs, l’option est désactivée et le endpoint retourne
402 Payment Required
Scopes des tokens
Section intitulée « Scopes des tokens »Les API tokens sont créés avec l’un des deux scopes :
| Scope | Niveau d’accès | Description |
|---|---|---|
read_all | Lecture seule | Peut lire toutes les ressources mais ne peut pas créer, mettre à jour ni supprimer |
write_all | Lecture + écriture | Accès complet à tous les endpoints, y compris les opérations d’écriture |
- Un scope est attribué aux tokens lors de leur création dans le Dashboard sous External Apps > API
- Le scope
write_allinclut automatiquement toutes les permissionsread_all - L’utilisation d’un token
read_allsur un endpoint d’écriture retourne403avec"Insufficient token scope. Required: write_all"
Scopes requis par groupe d’endpoints :
| Endpoint Group | Read Operations | Write Operations |
|---|---|---|
| Chatbot Settings | read_all | write_all |
| Knowledge Base Settings | read_all | write_all |
| Articles | read_all | write_all |
| Article Language URLs | read_all | write_all |
| Tags | read_all | — |
| File Upload | — | write_all |
| Import External Content | — | write_all |
| Intercom Knowledge Base | read_all | write_all |
| Widget Configuration | read_all | write_all |
| Conversations | read_all | — |
| Conversation Metadata | read_all | write_all |
| Handoff Configuration | read_all | write_all |
| Conversation Rating | read_all | write_all |
| AI Actions | read_all | write_all |
URL de base
Section intitulée « URL de base »| Endpoint Group | Base URL |
|---|---|
| Knowledge Base, AI Actions, File Upload, Import, Chatbot Settings, Widget, Handoff, Conversation Rating | https://app.quickchat.ai/v1/api/ |
| Conversations | https://app.quickchat.ai/v1/api_core/ |
| Realtime Chat | https://app.quickchat.ai/chat |
Limites de débit
Section intitulée « Limites de débit »Les limites de débit sont appliquées par token et par endpoint.
| Tier | Limit | Applies To |
|---|---|---|
| READ | 120 requests/min | Opérations GET et de liste |
| WRITE | 60 requests/min | POST, PATCH, PUT, DELETE |
| HEAVY | 20 requests/min | Uploads de fichiers, imports, scraping |
Lorsqu’une limite de débit est dépassée, l’API retourne HTTP 429 Too Many Requests.
Pagination
Section intitulée « Pagination »Les endpoints de liste prennent en charge la pagination via des query parameters :
| Parameter | Description |
|---|---|
limit integer | Nombre d’éléments par page |
offset integer | Nombre d’éléments à ignorer |
Les réponses paginées suivent cette structure :
{ "items": [], "offset": 0, "limit": 10, "count": 100}Gestion des erreurs
Section intitulée « Gestion des erreurs »Toutes les erreurs sont retournées en JSON au format suivant :
{ "errors": { "root": [ { "message": "Description of the error", "code": "ERROR_CODE" } ] }}| Status | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Saisie invalide ou champs requis manquants |
| 401 | PERMISSION_DENIED | Token invalide, expiré ou révoqué |
| 402 | PAYMENT_REQUIRED | Un abonnement actif est requis |
| 403 | PERMISSION_DENIED | Le token n’a pas le scope requis pour cette opération |
| 404 | NOT_FOUND | Ressource introuvable |
| 409 | CONFLICT | Opération en conflit (p. ex. modification concurrente) |
| 422 | VALIDATION_ERROR | Le corps de la requête n’a pas passé la validation du schéma |
| 429 | TOO_MANY_REQUESTS | Limite de débit dépassée |
| 500 | UNKNOWN | Erreur interne du serveur |
| 503 | SERVICE_UNAVAILABLE | Indisponibilité temporaire |