Documentation API
- Accueil
- Développer
- API
Texte et chat
Texte
Voix
Autre
Plateforme
D
L'API Zubnet vous donne un acc 408 mod — les d'IA pour la g
https://api.zubnet.com/v1
# Using curl curl https://api.zubnet.com/v1/chat/completions \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-5", "messages": [{"role": "user", "content": "Hello!"}] }'
# Using Python with OpenAI SDK 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-5", messages=[{"role": "user", "content": "Hello!"}] ) print(response.choices[0].message.content)
Toutes les requ
Authorization: Bearer YOUR_API_KEY
tes API n tres de votre compte. Gardez vos cl — s en s
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
Lister tous les mod
curl https://api.zubnet.com/v1/models \
-H "Authorization: Bearer $ZUBNET_API_KEY"
{
"object": "list",
"data": [
{
"id": "claude-sonnet-5",
"object": "model",
"created": 1699900000,
"owned_by": "anthropic"
},
{
"id": "deepseek-chat",
"object": "model",
"created": 1699900000,
"owned_by": "deepseek"
},
...
]
}
Cr
| tre | tre | Type |
|---|---|---|
modelrequis |
le | utiliser (ex. : "claude-sonnet-5", "deepseek-chat", "gemini-2.5-pro") |
messagesrequis |
string | Tableau d'objets message avec role et content |
temperatureoptionnel |
rature d' | Temp |
max_tokensoptionnel |
string | rer |
streamoptionnel |
string | Langage de programmation (ex. : "python", "javascript", "rust") |
top_poptionnel |
rature d' | Temp |
frequency_penaltyoptionnel |
rature d' | chantillonnage (0-2) |
presence_penaltyoptionnel |
rature d' | Nombre maximum de tokens |
stopoptionnel |
n | rer (1-128000) |
curl https://api.zubnet.com/v1/chat/completions \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-5", "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-5",
"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
}
}
Quand stream est vrai, la réponse est livrée sous forme d'événements envoyés par le serveur (SSE). Chaque événement a un type nommé et une charge utile JSON :
| Événement | Type |
|---|---|
token |
Un jeton/delta de texte du modèle |
reasoning-token |
Un jeton de réflexion étendue (pour les modèles prenant en charge le raisonnement) |
call |
Un appel d'outil/fonction avec un nom et des paramètres |
message |
Objet de message final complet (envoyé à la fin du streaming) |
error |
Message d'erreur si le streaming échoue |
// SSE event format event: token data: {"data": "Hello", "attributes": {}} event: token data: {"data": " world", "attributes": {}} event: message data: {"id": "msg-uuid", "content": "Hello world", ...}
Générer du code à partir d'une invite en langage naturel. Renvoie une réponse en streaming via Server-Sent Events (SSE).
| tre | tre | Type |
|---|---|---|
promptrequis |
le | Description en langage naturel du code à générer |
languagerequis |
le | Langage de programmation (par exemple, « python », « javascript », « rust ») |
temperatureoptionnel |
rature d' | Température d'échantillonnage (0-2) |
max_tokensoptionnel |
string | Nombre maximal de jetons à générer (1-128000) |
curl https://zubnet.com/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 v document nements
{
"object": "code_document",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "claude-sonnet-5",
"cost": 1,
"title": "Prime Number Checker",
"content": "def is_prime(n): ..."
}
G
| tre | tre | Type |
|---|---|---|
modelrequis |
le | faut : 1 |
promptrequis |
le | Taille de l'image (ex. : "1024x1024", "1792x1024") |
noptionnel |
string | "url" ou "b64_json". Par d |
sizeoptionnel |
le | Taille de l'image (par exemple, "1024x1024", "1792x1024") |
response_formatoptionnel |
le | 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://zubnet.com/files/abc123.png",
"revised_prompt": "A serene mountain lake..."
}
]
}
Certains modèles (FLUX, Runway, Luma, Kling, Leonardo, Vidu, Bria enhance/upscale) génèrent de façon asynchrone : ils acceptent le travail et le terminent quelques instants plus tard. Pour ceux-ci, l'endpoint répond 202 Accepted avec un identifiant de suivi à la place de l'image — une extension délibérée du contrat OpenAI, qui n'a pas de telle route :
{
"id": "01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66",
"status": "queued",
"poll": "/v1/images/01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66"
}
Interrogez une génération lancée de façon asynchrone. Renvoie queued, processing, completed ou failed; une fois terminée, l'URL de l'image apparaît dans la même forme data que la réponse synchrone. Limité à l'espace de travail de la clé API appelante — un id inexistant ou appartenant à un autre espace de travail répond le même 404.
{
"id": "01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66",
"status": "completed",
"created": 1699900000,
"data": [
{
"url": "https://zubnet.com/files/abc123.png"
}
]
}
Modifiez une image à partir d'un prompt texte — le contrat images.edit d'OpenAI, envoyé en multipart/form-data. Disponible sur les modèles qui acceptent une image en entrée (leur fiche modèle mentionne l'édition d'images) : gpt-image-2.5-sunburst, gpt-image-2.5-flare, gpt-image-2, p-image-edit, gen4_image, luma/photon-1 et d'autres. Tout autre modèle répond 400. Les modèles synchrones et asynchrones suivent les mêmes contrats 200 / 202 que les générations.
| Champ | tre | Type |
|---|---|---|
modelrequis |
le | Un modèle d'image qui accepte une image en entrée |
promptrequis |
le | Ce qu'il faut changer |
imagerequis |
string | L'image à modifier (PNG, JPEG ou WebP). Envoyez image[] pour en passer plusieurs lorsque le modèle le permet |
maskoptionnel |
string | PNG avec canal alpha, de la même taille que l'image ; les pixels transparents marquent ce qui est à repeindre. Modèles gpt-image uniquement |
sizeoptionnel |
le | Taille de sortie (p. ex. "1024x1024", "1536x1024") |
qualityoptionnel |
le | "low", "medium" ou "high" sur la famille gpt-image |
noptionnel |
string | Nombre de modifications à générer. Par défaut : 1 |
curl https://api.zubnet.com/v1/images/edits \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "model=gpt-image-2.5-sunburst" \ -F "prompt=Turn the sky into a starry night, keep everything else" \ -F "image=@photo.png"
{
"created": 1699900000,
"data": [
{
"url": "https://zubnet.com/files/def456.png",
"revised_prompt": "Turn the sky into a starry night, keep everything else"
}
]
}
G
| tre | tre | Type |
|---|---|---|
modelrequis |
le | les de synchronisation labiale. Max 25 Mo |
promptoptionnel |
le | Format d'image (ex. : "16:9", "9:16", "1:1") |
framesoptionnel |
integer | Dur |
videooptionnel |
string | Vidéo d'entrée pour vidéo-à-vidéo. Max 100 Mo (mp4, webm, mov) |
audiooptionnel |
string | Fichier audio pour les modèles de synchronisation labiale. Max 25 Mo |
aspect_ratiooptionnel |
le | Format d'image (ex. "16:9", "9:16", "1:1") |
durationoptionnel |
string | o en secondes |
negative_promptoptionnel |
le | Ce que la vidéo doit éviter (selon le modèle) |
resolutionoptionnel |
le | Résolution de sortie, ex. « 480p », « 720p », « 1080p », « 4k » (selon le modèle) |
qualityoptionnel |
le | Niveau qualité/vitesse si supporté (ex. « speed » ou « quality ») |
audiooptionnel |
le | « on »/« off » — audio natif synchronisé sur les modèles qui le supportent (Seedance 2.0, Kling, PixVerse, CogVideoX…) |
seedoptionnel |
string | Graine de reproductibilité si supportée |
styleoptionnel |
le | Préréglage de style sur les modèles supportés (ex. Vidu : « general »/« anime ») |
| Chaque modèle accepte aussi ses options spécifiques (fps, multi_clip, mode, loop, motion_mode, ratios…) — exactement les sélecteurs affichés pour ce modèle dans l’app. Les paramètres inconnus sont ignorés. | ||
curl https://zubnet.com/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://zubnet.com/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,“failed”, “. Interrogez le endpoint de la biblioth”, “rifier l'”tat d'avancement. progress R
{
"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"
}
sultats. Prend en charge plusieurs types d'analyse.
Soumettre une vid
| tre | tre | Type |
|---|---|---|
video_urlrequis |
le | Fichier audio. Max 25 Mo (mp3, mp4, wav, m4a, webm, ogg, flac) |
typeoptionnel |
le | Mode de s summary paration. Par d topics, chapters, ou highlights |
curl https://zubnet.com/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"
}
Cr
{
"status": "completed",
"result": {
"type": "summary",
"content": "The video shows a product demonstration..."
}
}
Cr
| tre | tre | Type |
|---|---|---|
modelrequis |
le | Mod |
promptoptionnel |
le | le d'embedding (ex. : "text-embedding-3-small") |
tagsoptionnel |
le | Texte |
instrumentaloptionnel |
string | nes) |
curl https://zubnet.com/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://zubnet.com/files/abc123.mp3"
}
},
{
"object": "composition",
"id": "550e8400-e29b-41d4-a716-446655440001",
// ... second variant
}
]
Cr
| tre | tre | Type |
|---|---|---|
modelrequis |
le | Nom de la base de connaissances |
promptrequis |
le | Description de la base de connaissances |
curl https://zubnet.com/api/ai/sound-effects \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "sound-effect-model", "prompt": "Thunder rumbling in the distance followed by heavy rain" }'
{
"object": "sound_effect",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "sound-effect-model",
"cost": 1,
"output_file": {
"url": "https://zubnet.com/files/abc123.mp3"
}
}
Lister toutes les bases de connaissances de votre espace de travail.
| tre | tre | Type |
|---|---|---|
modelrequis |
le | Modèle TTS (par ex., "tts-1", "tts-1-hd", "elevenlabs") |
inputrequis |
le | Texte à convertir en parole (max 5000 caractères) |
voicerequis |
le | ID de voix à utiliser (par ex., "alloy", "echo", "nova", ou un ID de voix personnalisé) |
response_formatoptionnel |
le | 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
Obtenir les d
| tre | tre | Type |
|---|---|---|
modelrequis |
le | Modèle de transcription (par ex., "whisper-1") |
filerequis |
string | Fichier audio à transcrire. Max 25 Mo (mp3, mp4, wav, webm, ogg, flac) |
languageoptionnel |
le | Code de langue (par 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..."
}
tails d'une base de connaissances sp
| tre | tre | Type |
|---|---|---|
filerequis |
string | Fichier audio. Max 25 Mo (mp3, mp4, wav, m4a, webm, ogg, flac) |
curl https://zubnet.com/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://zubnet.com/files/input.mp3"
},
"output_file": {
"url": "https://zubnet.com/files/isolated.mp3"
}
}
Séparez l'audio en pistes individuelles (voix, batterie, basse, guitare, piano, autre). Propulsé par ElevenLabs.
| tre | tre | Type |
|---|---|---|
filerequis |
string | Fichier audio. Max 25 Mo (mp3, mp4, wav, m4a, webm, ogg, flac) |
stem_variationoptionnel |
le | Mode de séparation. Par défaut : « six_stems_v1 » (voix, batterie, basse, guitare, piano, autre) |
curl https://zubnet.com/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://zubnet.com/files/song.mp3"
},
"output_file": {
"url": "https://zubnet.com/files/stems.zip"
}
}
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
voice paramètre du point de terminaison Text-to-Speech.
versement de fichiers, les URL et le texte brut.
| tre | tre | Type |
|---|---|---|
modelrequis |
le | T |
inputrequis |
n | 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 web et du texte brut, puis interrogez-les dans vos complétions de chat.
Créez une nouvelle base de connaissances.
| tre | tre | Type |
|---|---|---|
namerequis |
le | Nom de la base de connaissances |
descriptionoptionnel |
le | Description de la base de connaissances |
curl https://zubnet.com/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"
}
Listez toutes les bases de connaissances de votre Boutique MCP.
[
{
"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.
Supprimez une base de connaissances et tous ses documents.
Ingérez un document dans une base de connaissances. Prend en charge les téléversements de fichiers, les URL et le texte brut.
| tre | tre | Type |
|---|---|---|
fileoption 1 |
string | versement multipart (PDF, DOCX, TXT, MD — max 10 Mo) |
titlerequis |
le | Titre du document (requis pour les types URL et texte) |
typeoption 2/3 |
le | "url" ou "text" (pour l'ing |
urloption 2 |
le | rer (lorsque le type est "url") |
contentoption 3 |
le | Contenu texte brut |
curl https://zubnet.com/api/knowledge-bases/550e8400-.../documents \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "file=@report.pdf"
curl https://zubnet.com/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.com/developers.html" }'
curl https://zubnet.com/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.
R
| tre | tre | Type |
|---|---|---|
modelrequis |
le | Mod |
queryrequis |
le | utiliser |
documentsrequis |
string | La requ |
top_noptionnel |
string | Tableau de cha |
curl https://api.zubnet.com/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 Les r
es et g — rer votre contenu.
que par type de contenu.
| tre | tre | Type |
|---|---|---|
limitoptionnel |
string | ment) |
starting_afteroptionnel |
le | Tri et direction (ex. "created_at:desc") |
ending_beforeoptionnel |
le | Recherche plein texte (max 255 caract |
sortoptionnel |
le | res) |
queryoptionnel |
le | Filtrer par mod |
modeloptionnel |
le | Filtrer par modèle utilisé pour la génération |
{
"object": "list",
"data": [
{
"id": "550e8400-...",
"object": "video",
"model": "veo-3.1-generate-001",
"title": "Coral reef drone shot",
"state": 3,
"progress": 100,
"cost": 5,
"output_file": {
"url": "https://zubnet.com/files/abc123.mp4",
"size": 8421376,
"extension": "mp4"
},
"created_at": "2026-03-01T12:00:00Z"
},
...
]
}
R rations asynchrones.
| tat | Valeur | Type |
|---|---|---|
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://zubnet.com/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://zubnet.com/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 e sur un curseur. Utilisez l' starting_after du dernier
Mettre
| tre | tre | Type |
|---|---|---|
titleoptionnel |
le | Nom de l'agent (max 64) |
visibilityoptionnel |
string | ID du mod |
is_favoritedoptionnel |
string | le |
metaoptionnel |
string|null | Métadonnées personnalisées (genre, ambiance, tags, description, auteur, etc.) |
Supprimez un élément de la bibliothèque et ses fichiers associés.
Obtenir le nombre total d'éléments pour un type de contenu. Prend en charge les mêmes query et model filtres que le point de terminaison de liste.
Les assistants sont des préréglages de chat réutilisables avec un nom personnalisé, un modèle, une invite système et des paramètres. Utilisez-les pour créer des personas d'IA spécialisés pour différentes tâches.
Créez un nouvel assistant.
Listez tous les assistants de votre Boutique MCP.
Mettre à jour la configuration d'un assistant (nom, modèle, prompt système, paramètres).
Supprimer un assistant.
Parcourez et activez des serveurs MCP (Model Context Protocol) pour donner à vos agents des capacités d'outils étendues — de la recherche web et de l'accès aux données à l'exécution de code et aux intégrations tierces.
Parcourez le catalogue de serveurs MCP.
| tre | tre | Type |
|---|---|---|
categoryoptionnel |
le | Filtrer par catégorie (recherche, données, développeur, infrastructure, communication, commerce, créatif, productivité, social, utilitaires) |
queryoptionnel |
le | Rechercher par nom ou description |
{
"object": "list",
"data": [
{
"id": "550e8400-...",
"name": "GitHub",
"description": "Access GitHub repositories, issues, and pull requests",
"category": "developer",
"config_schema": [
{"name": "api_key", "type": "secret", "label": "API Key", "required": true}
],
"tools": ["list_repos", "create_issue", "search_code"],
"is_official": true
},
...
]
}
Activez un serveur MCP pour votre espace de travail. Fournissez les valeurs de configuration (clés API, etc.) telles que définies par le serveur config_schema.
| tre | tre | Type |
|---|---|---|
server_idrequis |
le | UUID du serveur MCP à activer |
configoptionnel |
string|null | Valeurs de configuration correspondant au config_schema du serveur |
curl https://zubnet.com/api/mcp-store/activations \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "server_id": "550e8400-e29b-41d4-a716-446655440000", "config": { "api_key": "ghp_xxxxxxxxxxxx" } }'
{
"id": "act-uuid-...",
"server_id": "550e8400-...",
"status": 1,
"config": {
"api_key": "••••••••"
},
"server": {
"name": "GitHub",
...
},
"created_at": "2026-03-01T12:00:00Z"
}
id est le activation_id que vous utilisez lors de la liaison des serveurs MCP aux agents.
Listez tous les serveurs MCP activés dans votre Boutique MCP.
Mettre à jour la configuration ou le statut d'une activation.
Désactivez un serveur MCP de votre boutique MCP.
Créez et gérez des agents IA autonomes qui opèrent sur différents 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éez un nouvel agent.
| tre | tre | Type |
|---|---|---|
namerequis |
le | Nom de l'agent (64 caractères maximum) |
modelrequis |
le | ID du modèle à utiliser (par ex. « claude-sonnet-5 », « deepseek-chat ») |
system_promptoptionnel |
le | Invite système personnalisée définissant le comportement et la personnalité de l'agent |
modeoptionnel |
le | "quick" ou "advanced". Par défaut : "quick" |
avataroptionnel |
le | URL de l'avatar (512 caractères maximum) |
curl https://zubnet.com/api/agents \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Support Bot", "model": "claude-sonnet-5", "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-5",
"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://zubnet.com/files/avatar.jpg"
},
"channels": []
}
Listez tous les agents de la Boutique MCP. Prend en charge la pagination et le filtrage.
| tre | tre | Type |
|---|---|---|
limitrequête |
string | Résultats par page. Par défaut : 25 |
cursorrequête |
le | Curseur de pagination |
sortrequête |
le | "name", "created_at", ou "last_active_at". Par défaut : "created_at" |
directionrequête |
le | "asc" ou "desc" |
statusrequête |
string | Filtrer par statut : 0 (inactif), 1 (actif), 2 (en pause) |
{
"object": "list",
"data": [
{
"id": "550e8400-...",
"name": "Support Bot",
"slug": "support-bot",
"model": "claude-sonnet-5",
"status": 1,
"mode": "advanced",
"cost": 12.50,
"last_active_at": 1709222400,
"created_at": 1709136000,
...
}
]
}
Obtenir tous les détails d'un agent spécifique, y compris ses canaux, ses serveurs MCP liés et ses bases de connaissances.
Mettre à jour un agent. Tous les champs sont optionnels — seuls les champs fournis sont modifiés.
| tre | tre | Type |
|---|---|---|
nameoptionnel |
le | Nom de l'agent (64 maximum) |
modeloptionnel |
le | ID du modèle |
system_promptoptionnel |
Prompt syst | me (null pour effacer) |
statusoptionnel |
string | 0 (inactif), 1 (actif) ou 2 (en pause) |
modeoptionnel |
le | "quick" ou "advanced" |
permissionsoptionnel |
string|null | Permissions de l'agent (voir ci-dessous) |
{
"permissions": {
"time_windows": [
{
"days": [1, 2, 3, 4, 5], // 0=Sun, 6=Sat
"timezone": "America/New_York",
"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
Lier une base de connaissances { "knowledge_base_id": "uuid" }
es par RAG. Corps :
D { "activation_id": "uuid" }
lier une base de connaissances d'un agent.
Lier un serveur MCP
| tre | tre | Type |
|---|---|---|
limitrequête |
string | Nombre de messages |
{
"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-5",
"created_at": 1709222401
}
]
}
Connectez des agents
Ajouter un canal de communication
| tre | tre | Type |
|---|---|---|
typerequis |
le | "telegram" ou "discord" |
tokenrequis |
le | Jeton du bot Telegram BotFather ou Discord Developer Portal (max 256) |
curl https://zubnet.com/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
Supprimer un canal d'un agent.
nements externes.
Cr
| tre | tre | Type |
|---|---|---|
namerequis |
le | Nom du déclencheur (max 128) |
typerequis |
le | "scheduled" ou "event" |
promptrequis |
le | Le prompt envoyé à l'agent lorsque le déclencheur se déclenche |
cron_expressionoptionnel |
le | Planification cron (par ex. "0 9 * * 1-5" pour les jours de semaine à 9h) |
timezoneoptionnel |
le | Fuseau horaire IANA pour l'évaluation cron. Par défaut : "UTC" |
channel_idoptionnel |
le | Canal auquel envoyer la sortie du déclencheur |
curl https://zubnet.com/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/New_York" }'
{
"id": "tr-uuid-...",
"name": "Daily Summary",
"type": "scheduled",
"status": 1,
"cron_expression": "0 18 * * 1-5",
"timezone": "America/New_York",
"prompt": "Summarize the key metrics for today...",
"channel_id": null,
"last_run_at": null,
"next_run_at": 1709236800,
"run_count": 0,
"created_at": 1709136000
}
Listez tous les déclencheurs d'un agent.
Mettre à jour un déclencheur. Tous les champs sont optionnels. Définir status à 0 pour désactiver ou 1 pour activer.
Supprimez un déclencheur.
Les Boutiques MCP sont l'unité organisationnelle de votre équipe. Chaque Boutique MCP dispose de son propre solde de crédits, de son abonnement, de ses clés API et de ses membres. Gérez les Boutiques MCP, invitez des membres de l'équipe et suivez l'utilisation.
Créez une nouvelle boutique MCP.
| tre | tre | Type |
|---|---|---|
namerequis |
le | clencheur (max 128) |
{
"id": "550e8400-...",
"name": "My Team",
"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'une boutique MCP. Nécessite la permission de gestion de la boutique MCP.
| tre | tre | Type |
|---|---|---|
nameoptionnel |
le | clencheur (max 128) |
api_spending_limitoptionnel |
rature d' | "scheduled" ou "event" |
{provider}_api_keyoptionnel |
le | Le prompt envoy openai_api_key, anthropic_api_key) |
clencheurs d'un agent.
Mettre
| tre | tre | Type |
|---|---|---|
emailrequis |
le | 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
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 Biblioth avec le type conversations.
Cr
{
"object": "conversation",
"id": "550e8400-...",
"title": null,
"cost": 0,
"messages": [],
"created_at": "2026-03-01T12:00:00Z"
}
Envoyer un message tions de Chat pour le format des
| tre | tre | Type |
|---|---|---|
modelrequis |
le | Mod |
contentoptionnel |
le | Texte du message |
assistant_idoptionnel |
le | ponse |
parent_idoptionnel |
le | Texte du message |
fileoptionnel |
string | UUID d'un assistant — utiliser pour ce message |
recordingoptionnel |
string | UUID d'un message parent (pour les conversations branch — max 10 Mo) |
curl https://zubnet.com/api/ai/conversations/550e8400-.../messages \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4.1", "content": "Explain quantum computing in simple terms" }'
multipart/form-data s via SSE. Utilisez Biblioth avec le type conversations.
G
Mettre
| tre | tre | Type |
|---|---|---|
first_nameoptionnel |
le | Pr |
last_nameoptionnel |
le | res) |
languageoptionnel |
le | Nom (max 50 caract |
preferencesoptionnel |
string|null | rences utilisateur |
G qu'une seule fois dans cette r — ponse
| tre | tre | Type |
|---|---|---|
current_passwordrequis |
le | Votre mot de passe actuel |
{
"id": "550e8400-...",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"api_key": "zub_live_a1b2c3d4e5f6..."
}
api_key La valeur
rez les abonnements.
Lister les plans d'abonnement disponibles.
| tre | tre | Type |
|---|---|---|
billing_cycleoptionnel |
le | Filtrer par cycle de facturation |
Lister les commandes de l'espace de travail actuel. Pagination par curseur.
| tre | tre | Type |
|---|---|---|
statusoptionnel |
le | Filtrer par statut de commande |
billing_cycleoptionnel |
le | Filtrer par cycle de facturation |
Lancer un paiement pour un plan d'abonnement ou un achat de cr
| tre | tre | Type |
|---|---|---|
idoptionnel |
le | UUID du plan (requis si pas de amount) |
amountoptionnel |
string | Montant d'achat de cr id) |
gatewayoptionnel |
le | Passerelle de paiement : stripe ou paypal |
Annuler l'abonnement de l'espace de travail actuel. N
que publique.
Soumettre un signalement de contenu. Chaque utilisateur ne peut signaler un
| tre | tre | Type |
|---|---|---|
item_idrequis |
le | UUID de l' |
reasonrequis |
string | signaler |
descriptionoptionnel |
le | Code de raison : 0 (spam), 1 (harc |
{
"id": "550e8400-e29b-41d4-a716-446655440000"
}
409 Conflict.
La surface complète dépasse les sections ci-dessus. Ces endpoints sont actifs et utilisent la même authentification :
POST /api/ai/three-d | Génération de modèles 3D (Tripo, Meshy…) |
POST /api/ai/tts · POST /api/ai/speeches | Synthèse vocale (surface native + préréglages) |
POST /api/ai/transcriptions | Transcription audio par lot (choix de modèle) |
GET /api/ai/transcriptions/realtime/token · POST /api/ai/transcriptions/realtime/save | Transcription micro en direct (jeton de session + sauvegarde) |
POST /api/ai/translations · GET /api/ai/translation-languages | Traduction de texte + langues supportées |
POST /api/ai/document-extractions | Extraction de texte de documents (OCR) |
GET /api/ai/video-understanding/{jobId} | Statut d’une analyse vidéo |
/api/library-stacks | Stacks de bibliothèque (collections) — CRUD complet |
/api/chatroom | Salons d’équipe (conversations IA partagées) |
/api/automation | Workflows d’automatisation (créer + exécuter) |
s.
| Image | Type |
|---|---|
400 |
Requ — te Invalide |
401 |
Param — tres invalides |
403 |
Non Autoris — Cl |
404 |
API invalide ou manquante — Interdit |
413 |
Cr — dits insuffisants ou mod |
429 |
le non disponible sur votre plan — Non Trouv |
500 |
Mod |
503 |
le ou ressource introuvable — Charge Trop Volumineuse |
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
}
Les limites de d
| te | Type |
|---|---|
X-RateLimit-Limit |
Requ |
X-RateLimit-Remaining |
tes autoris |
X-RateLimit-Reset |
es par minute |
initialisation ou contactez-nous pour augmenter vos limites.
Des questions sur l'API ? Consultez notre FAQ ou contactez-nous directement.