Référence API Endpoints REST du Core API, authentification, schémas de requête/réponse et codes d'erreur.
Le Core API (FastAPI) expose les endpoints pour gérer les flows, channels, exécutions, tenants et intégrations.
Base URL : http://localhost:8000 (développement)
Toutes les requêtes nécessitent :
Header Valeur Obligatoire AuthorizationBearer <JWT>Oui (sauf mode dev) X-Tenant-IDUUID du tenant Toujours
En mode développement (ENVIRONMENT=development), si aucun JWT n'est fourni, un utilisateur admin démo est créé automatiquement. Le header X-Tenant-ID reste obligatoire.
{
"sub" : "user-uuid" ,
"email" : "user@example.com" ,
"username" : "jdoe" ,
"organization_id" : "tenant-uuid" ,
"tenant_ids" : [ "tenant-uuid-1" , "tenant-uuid-2" ]
}
Le claim organization_id (format Keycloak) ou tenant_ids (format multi-tenant) détermine les tenants accessibles. Le X-Tenant-ID demandé doit être dans cette liste.
Méthode Endpoint Description GET/api/flowsLister les flows du tenant POST/api/flowsCréer un flow GET/api/flows/{id}Récupérer un flow PUT/api/flows/{id}Mettre à jour un flow DELETE/api/flows/{id}Supprimer un flow POST/api/flows/{id}/publishPublier un flow
Méthode Endpoint Description POST/api/flows/{id}/runsLancer une exécution GET/api/flows/{id}/runsLister les exécutions GET/api/runs/{id}Récupérer une exécution GET/api/runs/{id}/eventsSSE — Événements temps réel d'une exécution
Méthode Endpoint Description POST/api/conversationsDémarrer une conversation POST/api/conversations/{id}/messagesEnvoyer un message GET/api/conversations/{id}/messagesHistorique des messages
Méthode Endpoint Description GET/api/channelsLister les channels POST/api/channelsCréer un channel PUT/api/channels/{id}Mettre à jour un channel DELETE/api/channels/{id}Supprimer un channel POST/api/channels/{id}/bindingsLier un flow à un channel
Méthode Endpoint Description GET/api/tenantsLister les tenants de l'utilisateur POST/api/tenantsCréer un tenant GET/api/tenants/{id}Détails d'un tenant
Méthode Endpoint Description GET/api/secretsLister les secrets (noms uniquement) POST/api/secretsCréer un secret DELETE/api/secrets/{id}Supprimer un secret GET/api/credentialsLister les credentials
Méthode Endpoint Description GET/api/templatesLister les templates de flows POST/api/templatesCréer un template POST/api/templates/{id}/useInstancier un flow depuis un template
Méthode Endpoint Description GET/api/llm/modelsLister les modèles LLM disponibles POST/api/flows/generateGénérer un flow par IA
Méthode Endpoint Description GET/healthHealth check GET/api/runtime/infoInformations runtime
L'endpoint /api/runs/{id}/events retourne un flux Server-Sent Events :
event: node_started
data: {"node_id": "abc", "node_type": "agent", "timestamp": "..."}
event: node_output
data: {"node_id": "abc", "output": "Bonjour, comment...", "streaming": true}
event: node_completed
data: {"node_id": "abc", "duration_ms": 1234}
event: run_completed
data: {"run_id": "xyz", "status": "success", "total_duration_ms": 5678}
Types d'événements :
Événement Quand node_startedUn node commence son exécution node_outputSortie partielle (streaming LLM) ou complète node_completedUn node a terminé node_errorUn node a échoué run_completedL'exécution complète est terminée human_input_requiredLe flow attend une saisie humaine
Code HTTP Signification Cause typique 400Bad Request Payload invalide, champ manquant 401Unauthorized JWT absent ou expiré 403Forbidden Tenant non autorisé pour l'utilisateur 404Not Found Ressource introuvable dans ce tenant 409Conflict Duplication (ex: nom de flow déjà pris) 422Unprocessable Entity Validation Pydantic échouée 429Too Many Requests Rate limit atteint 500Internal Server Error Erreur serveur inattendue
{
"detail" : "Flow not found" ,
"error_code" : "FLOW_NOT_FOUND" ,
"status_code" : 404
}
En développement, FastAPI génère automatiquement une documentation interactive :
Swagger UI : http://localhost:8000/docs
ReDoc : http://localhost:8000/redoc