nAIxus Docs

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)

Authentification

Toutes les requêtes nécessitent :

HeaderValeurObligatoire
AuthorizationBearer <JWT>Oui (sauf mode dev)
X-Tenant-IDUUID du tenantToujours

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.

Structure du JWT

{
  "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.

Endpoints principaux

Flows

MéthodeEndpointDescription
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

Exécutions (Runs)

MéthodeEndpointDescription
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

Conversations

MéthodeEndpointDescription
POST/api/conversationsDémarrer une conversation
POST/api/conversations/{id}/messagesEnvoyer un message
GET/api/conversations/{id}/messagesHistorique des messages

Channels

MéthodeEndpointDescription
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

Tenants

MéthodeEndpointDescription
GET/api/tenantsLister les tenants de l'utilisateur
POST/api/tenantsCréer un tenant
GET/api/tenants/{id}Détails d'un tenant

Secrets & Credentials

MéthodeEndpointDescription
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

Templates

MéthodeEndpointDescription
GET/api/templatesLister les templates de flows
POST/api/templatesCréer un template
POST/api/templates/{id}/useInstancier un flow depuis un template

LLM & Configuration

MéthodeEndpointDescription
GET/api/llm/modelsLister les modèles LLM disponibles
POST/api/flows/generateGénérer un flow par IA

Utilitaires

MéthodeEndpointDescription
GET/healthHealth check
GET/api/runtime/infoInformations runtime

Streaming SSE

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énementQuand
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

Codes d'erreur

Code HTTPSignificationCause typique
400Bad RequestPayload invalide, champ manquant
401UnauthorizedJWT absent ou expiré
403ForbiddenTenant non autorisé pour l'utilisateur
404Not FoundRessource introuvable dans ce tenant
409ConflictDuplication (ex: nom de flow déjà pris)
422Unprocessable EntityValidation Pydantic échouée
429Too Many RequestsRate limit atteint
500Internal Server ErrorErreur serveur inattendue

Format d'erreur standard

{
  "detail": "Flow not found",
  "error_code": "FLOW_NOT_FOUND",
  "status_code": 404
}

Documentation interactive

En développement, FastAPI génère automatiquement une documentation interactive :

  • Swagger UI : http://localhost:8000/docs
  • ReDoc : http://localhost:8000/redoc

Pour aller plus loin

On this page