Documentation API
- Accueil
- Développer
- API
Texte
Médias
Voix
Autre
Plateforme
Agents
L'API Zubnet vous donne un accès programmatique à plus de 350 modèles d'IA pour la génération de texte, d'images, de vidéos, de musique, de voix et de code. Elle est entièrement compatible avec la spécification de l'API OpenAI — si vous utilisez déjà OpenAI, vous pouvez passer à Zubnet en changeant simplement votre URL de base et votre clé API.
https://api.zubnet.com/v1
# Avec curl curl https://api.zubnet.com/v1/chat/completions \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "Hello!"}] }'
# Avec Python et le SDK OpenAI from openai import OpenAI client = OpenAI( api_key="your-zubnet-api-key", base_url="https://api.zubnet.com/v1" ) response = client.chat.completions.create( model="claude-sonnet-4-20250514", messages=[{"role": "user", "content": "Hello!"}] ) print(response.choices[0].message.content)
Toutes les requêtes API nécessitent une authentification via un jeton Bearer dans l'en-tête Authorization.
Authorization: Bearer YOUR_API_KEY
Vous pouvez générer des clés API depuis les paramètres de votre compte. Gardez vos clés en sécurité — elles donnent un accès complet à votre compte.
Vous pouvez également utiliser vos propres clés API de fournisseurs comme Anthropic, Google et plus de 40 autres. Ajoutez-les dans les paramètres de votre espace de travail et elles seront utilisées automatiquement pour les requêtes vers ces fournisseurs — sans aucune majoration.
Lister tous les modèles disponibles.
curl https://api.zubnet.com/v1/models \
-H "Authorization: Bearer $ZUBNET_API_KEY"
{
"object": "list",
"data": [
{
"id": "claude-sonnet-4-20250514",
"object": "model",
"created": 1699900000,
"owned_by": "anthropic"
},
{
"id": "deepseek-chat",
"object": "model",
"created": 1699900000,
"owned_by": "deepseek"
},
...
]
}
Créer une complétion de chat. C'est le endpoint principal pour la génération de texte, compatible avec le format des complétions de chat OpenAI.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Identifiant du modèle à utiliser (ex. : "claude-sonnet-4-20250514", "deepseek-chat", "gemini-2.5-pro") |
messagesrequis |
array | Tableau d'objets message avec role et content |
temperatureoptionnel |
number | Température d'échantillonnage (0-2). Par défaut : 0.7 |
max_tokensoptionnel |
integer | Nombre maximum de tokens à générer (1-128000). Par défaut : 4096 |
streamoptionnel |
boolean | Diffuser les réponses via SSE. Par défaut : true |
top_poptionnel |
number | Paramètre d'échantillonnage nucleus (0-1). Par défaut : 1 |
frequency_penaltyoptionnel |
number | Pénalité de fréquence (-2 à 2). Par défaut : 0 |
presence_penaltyoptionnel |
number | Pénalité de présence (-2 à 2). Par défaut : 0 |
stopoptionnel |
string/array | Séquences d'arrêt |
curl https://api.zubnet.com/v1/chat/completions \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What is the capital of France?"} ], "temperature": 0.7, "max_tokens": 150 }'
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1699900000,
"model": "claude-sonnet-4-20250514",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The capital of France is Paris."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 8,
"total_tokens": 33
}
}
Générer du code à partir d'une description en langage naturel. Retourne une réponse en streaming via Server-Sent Events (SSE).
| Paramètre | Type | Description |
|---|---|---|
promptrequis |
string | Description en langage naturel du code à générer |
languagerequis |
string | Langage de programmation (ex. : "python", "javascript", "rust") |
temperatureoptionnel |
number | Température d'échantillonnage (0-2) |
max_tokensoptionnel |
integer | Nombre maximum de tokens à générer (1-128000) |
curl https://app.zubnet.ai/api/ai/completions/code \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "prompt": "A function that checks if a number is prime", "language": "python" }'
chunk avec du contenu incrémentiel, suivis d'un événement final document contenant le code complet généré.
{
"object": "code_document",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "claude-sonnet-4-20250514",
"cost": 1,
"title": "Prime Number Checker",
"content": "def is_prime(n): ..."
}
Générer des images à partir de descriptions textuelles en utilisant des modèles de FLUX, Stable Diffusion, Ideogram et d'autres.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Modèle d'image à utiliser |
promptrequis |
string | Description textuelle de l'image à générer |
noptionnel |
integer | Nombre d'images à générer. Par défaut : 1 |
sizeoptionnel |
string | Taille de l'image (ex. : "1024x1024", "1792x1024") |
response_formatoptionnel |
string | "url" ou "b64_json". Par défaut : "url" |
curl https://api.zubnet.com/v1/images/generations \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-pro-1.1-ultra", "prompt": "A serene mountain lake at sunset, photorealistic", "n": 1, "size": "1024x1024" }'
{
"created": 1699900000,
"data": [
{
"url": "https://cdn.zubnet.ai/files/abc123.png",
"revised_prompt": "A serene mountain lake..."
}
]
}
Générer des vidéos à partir de descriptions textuelles ou d'images. Supporte les workflows texte-vers-vidéo, image-vers-vidéo et vidéo-vers-vidéo.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Modèle vidéo à utiliser |
promptrequis* |
string | Description textuelle de la vidéo. *Non requis pour les modèles de synchronisation labiale ou de mise à l'échelle |
framesoptionnel |
file[] | Images d'entrée pour image-vers-vidéo. Max 10 Mo chacune (jpg, png, webp) |
videooptionnel |
file | Vidéo d'entrée pour vidéo-vers-vidéo. Max 100 Mo (mp4, webm, mov) |
audiooptionnel |
file | Fichier audio pour les modèles de synchronisation labiale. Max 25 Mo |
aspect_ratiooptionnel |
string | Format d'image (ex. : "16:9", "9:16", "1:1") |
durationoptionnel |
integer | Durée de la vidéo en secondes |
curl https://app.zubnet.ai/api/ai/videos \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "veo-3.1-generate-001", "prompt": "A drone shot flying over a coral reef at golden hour", "aspect_ratio": "16:9", "duration": 8 }'
curl https://app.zubnet.ai/api/ai/videos \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "model=kling-v2-5-turbo" \ -F "prompt=Camera slowly zooms in" \ -F "frames=@my-image.png"
state (« processing », « completed », « failed ») et un pourcentage de progress. Interrogez le endpoint de la bibliothèque pour vérifier l'état d'avancement.
{
"object": "video",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "veo-3.1-generate-001",
"state": "processing",
"progress": 0,
"cost": 5,
"output_file": null,
"created_at": "2026-02-25T12:00:00Z"
}
Analysez le contenu vidéo avec l'IA. Soumettez une URL vidéo pour analyse et interrogez les résultats. Prend en charge plusieurs types d'analyse.
Soumettre une vidéo pour analyse par IA. Retourne un identifiant de tâche que vous pouvez interroger pour obtenir les résultats.
| Paramètre | Type | Description |
|---|---|---|
video_urlrequis |
string | URL HTTPS publique de la vidéo à analyser |
typeoptionnel |
string | Type d'analyse : summary (défaut), topics, chapters ou highlights |
curl https://app.zubnet.ai/api/ai/video-understanding \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "video_url": "https://example.com/video.mp4", "type": "summary" }'
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued"
}
Vérifier le statut d'une tâche d'analyse vidéo.
{
"status": "completed",
"result": {
"type": "summary",
"content": "La vidéo montre une démonstration de produit..."
}
}
Générer de la musique originale à partir de descriptions textuelles, de paroles ou de tags de style.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Modèle musical à utiliser |
promptoptionnel |
string | Description de la musique ou paroles à mettre en musique |
tagsoptionnel |
string | Tags de genre et de style (ex. : "lo-fi, chill, jazz") |
instrumentaloptionnel |
boolean | Générer uniquement un instrumental (sans voix). Par défaut : false |
curl https://app.zubnet.ai/api/ai/compositions \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "suno/v5", "prompt": "An upbeat synthwave track about coding at 3am", "tags": "synthwave, electronic, upbeat", "instrumental": true }'
[
{
"object": "composition",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "suno/v5",
"title": "Midnight Code",
"tags": "synthwave, electronic, upbeat",
"cost": 2,
"output_file": {
"url": "https://cdn.zubnet.ai/files/abc123.mp3"
}
},
{
"object": "composition",
"id": "550e8400-e29b-41d4-a716-446655440001",
// ... seconde variante
}
]
Générer des effets sonores à partir de descriptions textuelles.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Modèle d'effets sonores à utiliser |
promptrequis |
string | Description de l'effet sonore à générer |
curl https://app.zubnet.ai/api/ai/sound-effects \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "sound-effect-model", "prompt": "Tonnerre grondant au loin suivi de pluie forte" }'
{
"object": "sound_effect",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "sound-effect-model",
"cost": 1,
"output_file": {
"url": "https://cdn.zubnet.ai/files/abc123.mp3"
}
}
Convertir du texte en audio vocal au son naturel en utilisant des voix d'ElevenLabs, Cartesia, Speechify et d'autres.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Modèle TTS (ex. : "tts-1", "tts-1-hd", "elevenlabs") |
inputrequis |
string | Texte à convertir en voix (max 5000 caractères) |
voicerequis |
string | Identifiant de la voix (ex. : "alloy", "echo", "nova" ou un identifiant de voix personnalisée) |
response_formatoptionnel |
string | Format audio : mp3, opus, aac, flac. Par défaut : mp3 |
curl https://api.zubnet.com/v1/audio/speech \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1-hd", "input": "Welcome to Zubnet, the future of AI.", "voice": "nova" }' --output speech.mp3
Transcrire de l'audio en texte.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Modèle de transcription (ex. : "whisper-1") |
filerequis |
file | Fichier audio à transcrire. Max 25 Mo (mp3, mp4, wav, webm, ogg, flac) |
languageoptionnel |
string | Code de langue (ex. : "en", "fr", "es") |
curl https://api.zubnet.com/v1/audio/transcriptions \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "model=whisper-1" \ -F "file=@recording.mp3"
{
"object": "transcription",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "whisper-1",
"content": "Hello, this is a test recording..."
}
Extraire des voix claires d'un fichier audio en supprimant le bruit de fond et la musique. Propulsé par ElevenLabs.
| Paramètre | Type | Description |
|---|---|---|
filerequis |
file | Fichier audio. Max 25 Mo (mp3, mp4, wav, m4a, webm, ogg, flac) |
curl https://app.zubnet.ai/api/ai/isolated-voices \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "file=@noisy-recording.mp3"
{
"object": "isolated_voice",
"id": "550e8400-e29b-41d4-a716-446655440000",
"cost": 1,
"input_file": {
"url": "https://cdn.zubnet.ai/files/input.mp3"
},
"output_file": {
"url": "https://cdn.zubnet.ai/files/isolated.mp3"
}
}
Séparer l'audio en pistes individuelles (voix, batterie, basse, guitare, piano, autre). Propulsé par ElevenLabs.
| Paramètre | Type | Description |
|---|---|---|
filerequis |
file | Fichier audio. Max 25 Mo (mp3, mp4, wav, m4a, webm, ogg, flac) |
stem_variationoptionnel |
string | Mode de séparation. Par défaut : "six_stems_v1" (voix, batterie, basse, guitare, piano, autre) |
curl https://app.zubnet.ai/api/ai/stem-separations \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "file=@song.mp3"
{
"object": "stem_separation",
"id": "550e8400-e29b-41d4-a716-446655440000",
"cost": 1,
"input_file": {
"url": "https://cdn.zubnet.ai/files/song.mp3"
},
"output_file": {
"url": "https://cdn.zubnet.ai/files/stems.zip"
}
}
Créez et gérez des voix personnalisées pour la synthèse vocale.
Créer une voix personnalisée.
Lister toutes les voix disponibles dans votre espace de travail.
Mettre à jour une voix personnalisée.
Supprimer une voix personnalisée.
voice de l'endpoint Synthèse Vocale.
Créer des embeddings de texte pour la recherche sémantique et la similarité.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Modèle d'embedding (ex. : "text-embedding-3-small") |
inputrequis |
string/array | Texte à vectoriser (chaîne ou tableau de chaînes) |
curl https://api.zubnet.com/v1/embeddings \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "text-embedding-3-small", "input": "The quick brown fox jumps over the lazy dog" }'
Créez et gérez des bases de connaissances pour la génération augmentée par récupération (RAG). Téléversez des documents (PDF, DOCX, TXT, Markdown) ou ajoutez des URL et du texte brut, puis interrogez-les dans vos complétions de chat.
Créer une nouvelle base de connaissances.
| Paramètre | Type | Description |
|---|---|---|
namerequis |
string | Nom de la base de connaissances |
descriptionoptionnel |
string | Description de la base de connaissances |
curl https://app.zubnet.ai/api/knowledge-bases \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "My KB", "description": "Optional description" }'
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My KB",
"description": "Optional description",
"status": "active"
}
Lister toutes les bases de connaissances de votre espace de travail.
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My KB",
"description": "Optional description",
"status": "active"
},
...
]
Obtenir les détails d'une base de connaissances spécifique, y compris ses documents.
Supprimer une base de connaissances et tous ses documents.
Ingérer un document dans une base de connaissances. Prend en charge le téléversement de fichiers, les URL et le texte brut.
| Paramètre | Type | Description |
|---|---|---|
fileoption 1 |
file | Téléversement multipart (PDF, DOCX, TXT, MD — max 10 Mo) |
titlerequis |
string | Titre du document (requis pour les types URL et texte) |
typeoption 2/3 |
string | "url" ou "text" (pour l'ingération sans fichier) |
urloption 2 |
string | URL à récupérer et ingérer (lorsque le type est "url") |
contentoption 3 |
string | Contenu texte brut à ingérer (lorsque le type est "text") |
curl https://app.zubnet.ai/api/knowledge-bases/550e8400-.../documents \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "file=@report.pdf"
curl https://app.zubnet.ai/api/knowledge-bases/550e8400-.../documents \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "title": "Zubnet Docs", "type": "url", "url": "https://zubnet.ai/developers.html" }'
curl https://app.zubnet.ai/api/knowledge-bases/550e8400-.../documents \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "title": "Company Policy", "type": "text", "content": "All employees must complete security training annually..." }'
Lister tous les documents d'une base de connaissances.
Supprimer un document spécifique d'une base de connaissances.
Lire le contenu textuel extrait d'un document spécifique.
Réordonner une liste de documents par pertinence par rapport à une requête. Utile pour améliorer les résultats de recherche, les pipelines RAG et les systèmes de recommandation.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Modèle de reranking à utiliser |
queryrequis |
string | La requête de recherche pour classer les documents |
documentsrequis |
array | Tableau de chaînes de documents à réordonner |
top_noptionnel |
integer | Nombre de résultats à retourner. Par défaut : tous |
curl https://api.zubnet.ai/v1/reranking \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "rerank-v4.0-pro", "query": "How do I reset my password?", "documents": [ "To reset your password, go to Settings > Security > Change Password.", "Our pricing plans start at $9/month for individuals.", "Password requirements: minimum 8 characters, one uppercase letter.", "Contact support at help@example.com for account issues." ], "top_n": 3 }'
{
"object": "list",
"results": [
{
"index": 0,
"relevance_score": 0.953
},
{
"index": 2,
"relevance_score": 0.714
},
{
"index": 3,
"relevance_score": 0.389
}
],
"model": "rerank-v4.0-pro"
}
index fait référence à la position de chaque document dans le tableau d'entrée original.
La bibliothèque contient tout le contenu généré — images, vidéos, compositions, documents de code, transcriptions et plus. Utilisez-la pour lister les éléments, vérifier le statut des générations asynchrones, mettre à jour les métadonnées et gérer votre contenu.
Lister les éléments de votre bibliothèque par type de contenu.
| Paramètre | Type | Description |
|---|---|---|
limitoptionnel |
integer | Résultats par page (max 100) |
starting_afteroptionnel |
string | Curseur de pagination (UUID de l'élément) |
sortoptionnel |
string | Tri et direction (ex. "created_at:desc") |
queryoptionnel |
string | Recherche plein texte (max 255 caractères) |
modeloptionnel |
string | Filtrer par modèle utilisé |
Récupérer un élément par ID. C'est l'endpoint principal pour vérifier le statut des générations asynchrones.
| État | Valeur | Description |
|---|---|---|
draft | 0 | Non soumis |
queued | 1 | En attente |
processing | 2 | En cours |
completed | 3 | Terminé — output_file disponible |
failed | 4 | Échec |
# 1. Start async generation curl -X POST https://app.zubnet.ai/api/ai/videos \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model": "veo-3.1-generate-001", "prompt": "A coral reef"}' # Returns: {"id": "550e8400-...", "state": 1, ...} # 2. Poll for completion curl https://app.zubnet.ai/api/library/videos/550e8400-... \ -H "Authorization: Bearer $ZUBNET_API_KEY" # Returns: {"state": 2, "progress": 45, ...} (still processing) # Returns: {"state": 3, "progress": 100, "output_file": {"url": "..."}} (done!)
id du dernier élément dans starting_after pour la page suivante.
Mettre à jour les métadonnées d'un élément.
Supprimer un élément et ses fichiers associés.
Obtenir le nombre total d'éléments pour un type de contenu.
Les assistants sont des préréglages de chat réutilisables avec un nom, un modèle, un prompt système et des paramètres personnalisés.
Créer un nouvel assistant.
Lister tous les assistants de votre espace de travail.
Mettre à jour la configuration d'un assistant.
Supprimer un assistant.
Parcourez et activez des serveurs MCP (Model Context Protocol) pour donner à vos agents des capacités d'outils étendues.
Parcourir le catalogue de serveurs MCP.
Activer un serveur MCP pour votre espace de travail.
id retourné est l'activation_id utilisé pour lier des serveurs MCP aux agents.
Lister tous les serveurs MCP activés dans votre espace de travail.
Mettre à jour la configuration ou le statut d'une activation.
Désactiver un serveur MCP de votre espace de travail.
Créez et gérez des agents IA autonomes qui opèrent sur des canaux de communication. Les agents peuvent répondre aux messages sur Telegram et Discord, s'exécuter selon des déclencheurs programmés et exploiter des bases de connaissances et des serveurs MCP pour des capacités étendues.
Créer un nouvel agent.
| Paramètre | Type | Description |
|---|---|---|
namerequis |
string | Nom de l'agent (max 64 caractères) |
modelrequis |
string | ID du modèle (ex. "claude-sonnet-4-20250514", "deepseek-chat") |
system_promptoptionnel |
string | Prompt système définissant le comportement et la personnalité de l'agent |
modeoptionnel |
string | "quick" ou "advanced". Par défaut : "quick" |
avataroptionnel |
string | URL de l'avatar (max 512 caractères) |
curl https://app.zubnet.ai/api/agents \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Support Bot", "model": "claude-sonnet-4-20250514", "system_prompt": "You are a friendly support agent. Answer questions clearly and concisely.", "mode": "advanced" }'
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Support Bot",
"slug": "support-bot",
"avatar": null,
"model": "claude-sonnet-4-20250514",
"system_prompt": "You are a friendly support agent...",
"status": 1,
"mode": "advanced",
"permissions": {
"time_windows": [],
"frequency_cap": {
"max_messages_per_hour": 60,
"max_messages_per_day": 500
},
"channel_preferences": {},
"allowed_actions": {
"can_use_tools": true,
"can_access_kb": true,
"max_tool_calls_per_message": 5
}
},
"cost": 0,
"last_active_at": null,
"created_at": 1709136000,
"updated_at": null,
"user": {
"id": "a1b2c3d4-...",
"first_name": "Jane",
"last_name": "Doe",
"avatar": "https://cdn.zubnet.ai/files/avatar.jpg"
},
"channels": []
}
Lister tous les agents de l'espace de travail. Prend en charge la pagination et le filtrage.
| Paramètre | Type | Description |
|---|---|---|
limitquery |
integer | Résultats par page. Par défaut : 25 |
cursorquery |
string | Curseur de pagination |
sortquery |
string | "name", "created_at" ou "last_active_at". Par défaut : "created_at" |
directionquery |
string | "asc" ou "desc" |
statusquery |
integer | Filtrer par statut : 0 (inactif), 1 (actif), 2 (en pause) |
{
"object": "list",
"data": [
{
"id": "550e8400-...",
"name": "Support Bot",
"slug": "support-bot",
"model": "claude-sonnet-4-20250514",
"status": 1,
"mode": "advanced",
"cost": 12.50,
"last_active_at": 1709222400,
"created_at": 1709136000,
...
}
]
}
Obtenir les détails complets d'un agent, incluant ses canaux, serveurs MCP et bases de connaissances liés.
Mettre à jour un agent. Tous les champs sont optionnels — seuls les champs fournis sont modifiés.
| Paramètre | Type | Description |
|---|---|---|
nameoptionnel |
string | Nom de l'agent (max 64) |
modeloptionnel |
string | ID du modèle |
system_promptoptionnel |
string|null | Prompt système (null pour effacer) |
statusoptionnel |
integer | 0 (inactif), 1 (actif) ou 2 (en pause) |
modeoptionnel |
string | "quick" ou "advanced" |
permissionsoptionnel |
object | Permissions de l'agent (voir ci-dessous) |
{
"permissions": {
"time_windows": [
{
"days": [1, 2, 3, 4, 5], // 0=Dim, 6=Sam
"timezone": "America/Montreal",
"start_hour": 9, // 0-23
"end_hour": 17 // 1-24
}
],
"frequency_cap": {
"max_messages_per_hour": 60, // 1-1000
"max_messages_per_day": 500 // 1-10000
},
"channel_preferences": {
"default_channel": "telegram",
"proactive_channels": ["telegram", "discord"]
},
"allowed_actions": {
"can_use_tools": true,
"can_access_kb": true,
"max_tool_calls_per_message": 5 // 0-50
}
}
}
Supprimer un agent. Cela supprime aussi tous ses canaux, déclencheurs, messages et intégrations.
Lier une base de connaissances à un agent pour des réponses alimentées par RAG. Corps : { "knowledge_base_id": "uuid" }
Délier une base de connaissances d'un agent.
Lier un serveur MCP à un agent pour des outils étendus. Corps : { "activation_id": "uuid" }
Délier un serveur MCP d'un agent.
Récupérer l'historique des conversations d'un agent.
| Paramètre | Type | Description |
|---|---|---|
limitquery |
integer | Nombre de messages à retourner. Par défaut : 25, max : 100 |
{
"object": "list",
"data": [
{
"id": "msg-uuid-...",
"direction": "inbound",
"content": "How do I reset my password?",
"external_user_name": "john_doe",
"cost": 0,
"model": null,
"created_at": 1709222400
},
{
"id": "msg-uuid-...",
"direction": "outbound",
"content": "Go to Settings > Security > Change Password...",
"cost": 0.25,
"model": "claude-sonnet-4-20250514",
"created_at": 1709222401
}
]
}
Connectez des agents à des plateformes de communication. Chaque agent supporte un canal par type (un bot Telegram, un bot Discord).
Ajouter un canal de communication à un agent.
| Paramètre | Type | Description |
|---|---|---|
typerequis |
string | "telegram" ou "discord" |
tokenrequis |
string | Jeton du bot Telegram BotFather ou Discord Developer Portal (max 256) |
curl https://app.zubnet.ai/api/agents/550e8400-.../channels \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "telegram", "token": "7123456789:AAH..." }'
{
"id": "ch-uuid-...",
"type": "telegram",
"status": 1,
"metadata": {},
"last_error": null,
"last_message_at": null,
"created_at": 1709136000
}
Lister tous les canaux connectés à un agent.
Supprimer un canal d'un agent.
Automatisez les actions des agents avec des déclencheurs. Les déclencheurs programmés utilisent des expressions cron pour s'exécuter à des heures spécifiques ; les déclencheurs d'événement se déclenchent en réponse à des événements externes.
Créer un déclencheur automatisé pour un agent.
| Paramètre | Type | Description |
|---|---|---|
namerequis |
string | Nom du déclencheur (max 128) |
typerequis |
string | "scheduled" ou "event" |
promptrequis |
string | Le prompt envoyé à l'agent lorsque le déclencheur s'active |
cron_expressionoptionnel |
string | Expression cron (ex. "0 9 * * 1-5" pour les jours de semaine à 9h) |
timezoneoptionnel |
string | Fuseau horaire IANA pour l'évaluation cron. Par défaut : "UTC" |
channel_idoptionnel |
string | Canal vers lequel envoyer la sortie du déclencheur |
curl https://app.zubnet.ai/api/agents/550e8400-.../triggers \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Daily Summary", "type": "scheduled", "prompt": "Summarize the key metrics for today and send them to the team.", "cron_expression": "0 18 * * 1-5", "timezone": "America/Montreal" }'
{
"id": "tr-uuid-...",
"name": "Daily Summary",
"type": "scheduled",
"status": 1,
"cron_expression": "0 18 * * 1-5",
"timezone": "America/Montreal",
"prompt": "Summarize the key metrics for today...",
"channel_id": null,
"last_run_at": null,
"next_run_at": 1709236800,
"run_count": 0,
"created_at": 1709136000
}
Lister tous les déclencheurs d'un agent.
Mettre à jour un déclencheur. Tous les champs sont optionnels. Mettez status à 0 pour désactiver ou 1 pour activer.
Supprimer un déclencheur.
Les espaces de travail sont l'unité organisationnelle de votre équipe. Chaque espace a son propre solde de crédits, abonnement, clés API et membres. Gérez les espaces, invitez des membres et suivez l'utilisation.
Créer un nouvel espace de travail.
| Paramètre | Type | Description |
|---|---|---|
namerequis |
string | Nom de l'espace de travail (max 50 caractères) |
{
"id": "550e8400-...",
"name": "Mon Équipe",
"subscription": null,
"api_spending_limit": null,
"api_spending_current": 0,
"owner": { "id": "...", "email": "..." },
"created_at": "2026-03-01T12:00:00Z"
}
Mettre à jour les paramètres d'un espace de travail. Nécessite la permission de gestion.
| Paramètre | Type | Description |
|---|---|---|
nameoptionnel |
string | Nom de l'espace (max 50 caractères) |
api_spending_limitoptionnel |
number | Plafond de dépenses API mensuel (null pour illimité) |
{provider}_api_keyoptionnel |
string | Clé API BYOK pour un fournisseur (ex. openai_api_key, anthropic_api_key) |
Supprimer un espace de travail. Nécessite la permission de gestion.
Inviter un utilisateur à rejoindre l'espace par courriel. Maximum 20 invitations en attente par espace.
| Paramètre | Type | Description |
|---|---|---|
emailrequis |
string | Adresse courriel de l'utilisateur à inviter |
Annuler une invitation en attente.
Retirer un membre de l'espace, ou quitter l'espace en utilisant votre propre identifiant utilisateur.
Lister les statistiques d'utilisation agrégées. Pagination par curseur.
Lister les entrées d'utilisation détaillées (items complétés avec coût > 0). Chaque entrée inclut le type, le modèle, le titre, le coût et l'horodatage.
Obtenir le nombre total d'items d'utilisation.
Les conversations regroupent les messages de chat en sessions. Créez d'abord une conversation, puis envoyez-y des messages. Les conversations peuvent aussi être gérées via l'API Bibliothèque avec le type conversations.
Créer une nouvelle conversation. Retourne l'objet conversation avec une liste de messages vide.
{
"object": "conversation",
"id": "550e8400-...",
"title": null,
"cost": 0,
"messages": [],
"created_at": "2026-03-01T12:00:00Z"
}
Envoyer un message à une conversation et recevoir une réponse IA via Server-Sent Events (SSE). Voir la section Complétions de Chat pour le format des événements SSE.
| Paramètre | Type | Description |
|---|---|---|
modelrequis |
string | Modèle à utiliser pour la réponse |
contentoptionnel |
string | Texte du message |
assistant_idoptionnel |
string | UUID d'un assistant à utiliser pour ce message |
parent_idoptionnel |
string | UUID d'un message parent (pour les conversations branchées) |
fileoptionnel |
file | Pièce jointe (images, documents, audio/vidéo — max 25 Mo) |
recordingoptionnel |
file | Enregistrement vocal (mp3, wav, webm, ogg — max 10 Mo) |
curl https://app.zubnet.ai/api/ai/conversations/550e8400-.../messages \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4.1", "content": "Expliquez l informatique quantique en termes simples" }'
multipart/form-data pour téléverser des fichiers. Pour lister ou supprimer des conversations, utilisez l'API Bibliothèque avec le type conversations.
Gérez votre profil utilisateur et générez des clés API par programmation.
Mettre à jour vos informations de profil.
| Paramètre | Type | Description |
|---|---|---|
first_nameoptionnel |
string | Prénom (max 50 caractères) |
last_nameoptionnel |
string | Nom (max 50 caractères) |
languageoptionnel |
string | Code de langue préféré (ex. « en », « fr ») |
preferencesoptionnel |
object | Paramètres de préférences utilisateur |
Générer une nouvelle clé API. Nécessite la confirmation du mot de passe. La clé complète n'est affichée qu'une seule fois dans cette réponse — conservez-la en lieu sûr.
| Paramètre | Type | Description |
|---|---|---|
current_passwordrequis |
string | Votre mot de passe actuel |
{
"id": "550e8400-...",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"api_key": "zub_live_a1b2c3d4e5f6..."
}
api_key n'est affichée en entier que dans cette réponse. Les appels subséquents retournent une version masquée. Traitez-la comme un mot de passe.
Parcourez les plans disponibles, consultez l'historique des commandes, lancez un paiement et gérez les abonnements.
Lister les plans d'abonnement disponibles.
| Paramètre | Type | Description |
|---|---|---|
billing_cycleoptionnel |
string | Filtrer par cycle de facturation |
Lister les commandes de l'espace de travail actuel. Pagination par curseur.
| Paramètre | Type | Description |
|---|---|---|
statusoptionnel |
string | Filtrer par statut de commande |
billing_cycleoptionnel |
string | Filtrer par cycle de facturation |
Lancer un paiement pour un plan d'abonnement ou un achat de crédits. Nécessite la permission de gestion de l'espace.
| Paramètre | Type | Description |
|---|---|---|
idoptionnel |
string | UUID du plan (requis si pas de amount) |
amountoptionnel |
integer | Montant d'achat de crédits en centimes (min 1000, requis si pas de id) |
gatewayoptionnel |
string | Passerelle de paiement : stripe ou paypal |
Annuler l'abonnement de l'espace de travail actuel. Nécessite la permission de gestion.
Signaler du contenu inapproprié ou enfreignant les règles dans la bibliothèque publique.
Soumettre un signalement de contenu. Chaque utilisateur ne peut signaler un élément donné qu'une seule fois.
| Paramètre | Type | Description |
|---|---|---|
item_idrequis |
string | UUID de l'élément de bibliothèque à signaler |
reasonrequis |
integer | Code de raison : 0 (spam), 1 (harcèlement), 2 (violence), 3 (contenu sexuel), 4 (autre) |
descriptionoptionnel |
string | Détails supplémentaires (max 2000 caractères) |
{
"id": "550e8400-e29b-41d4-a716-446655440000"
}
409 Conflict.
L'API utilise les codes de statut HTTP standards et retourne des messages d'erreur détaillés.
| Code | Description |
|---|---|
400 |
Requête Invalide — Paramètres invalides |
401 |
Non Autorisé — Clé API invalide ou manquante |
403 |
Interdit — Crédits insuffisants ou modèle non disponible sur votre plan |
404 |
Non Trouvé — Modèle ou ressource introuvable |
413 |
Charge Trop Volumineuse — Le fichier dépasse la limite de taille |
429 |
Trop de Requêtes — Limite de débit dépassée |
500 |
Erreur Interne du Serveur |
503 |
Service Indisponible — Surcharge temporaire |
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
}
Les limites de débit varient selon le plan. Des en-têtes sont inclus dans chaque réponse :
| En-tête | Description |
|---|---|
X-RateLimit-Limit |
Requêtes autorisées par minute |
X-RateLimit-Remaining |
Requêtes restantes dans la fenêtre actuelle |
X-RateLimit-Reset |
Horodatage Unix de la réinitialisation de la limite |
Si vous atteignez une limite de débit, attendez la réinitialisation ou contactez-nous pour augmenter vos limites.
Des questions sur l'API ? Consultez notre FAQ ou contactez-nous directement.