Documentación API
- Inicio
- Desarrollar
- API
Texto
Medios
Voz
Otro
Plataforma
Agentes
La API de Zubnet te da acceso programático a 408 modelos de IA para generación de texto, imágenes, video, música, voz y código. Es completamente compatible con la especificación de la API de OpenAI — si ya estás usando OpenAI, puedes cambiar a Zubnet modificando tu URL base y clave API.
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)
Todas las solicitudes a la API requieren autenticación mediante un token Bearer en el encabezado Authorization.
Authorization: Bearer YOUR_API_KEY
Puedes generar claves API desde la configuración de tu cuenta. Mantén tus claves seguras — otorgan acceso completo a tu cuenta.
También puedes usar tus propias claves API de proveedores como Anthropic, Google y más de 40 otros. Agrégalas en la configuración de tu workspace y se usarán automáticamente para solicitudes a esos proveedores — sin ningún recargo.
Cuando se configura una clave BYOK para un proveedor, esta tiene prioridad sobre la clave de la plataforma. No se necesitan cambios en tus solicitudes API — la resolución de la clave es completamente transparente.
Lista todos los modelos disponibles.
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"
},
...
]
}
Crea una completación de chat. Este es el endpoint principal para generación de texto, compatible con el formato de completaciones de chat de OpenAI.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | ID del modelo a usar (ej., "claude-sonnet-5", "deepseek-chat", "gemini-2.5-pro") |
messagesrequerido |
string | Array de objetos de mensaje con role y content |
temperatureopcional |
L | Temperatura de muestreo (0-2). Por defecto: 0.7 |
max_tokensopcional |
string | Máximo de tokens a generar (1-128000). Por defecto: 4096 |
streamopcional |
booleano | Transmitir respuestas vía SSE. Por defecto: true |
top_popcional |
L | Parámetro de muestreo nucleus (0-1). Por defecto: 1 |
frequency_penaltyopcional |
L | Penalización de frecuencia (-2 a 2). Por defecto: 0 |
presence_penaltyopcional |
L | Penalización de presencia (-2 a 2). Por defecto: 0 |
stopopcional |
string/array | Secuencias de parada |
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
}
}
Cuando stream es true, la respuesta se entrega como Server-Sent Events (SSE). Cada evento tiene un tipo con nombre y una carga útil JSON:
| Evento | Descripción |
|---|---|
token |
Un token/delta de texto del modelo |
reasoning-token |
Un token de pensamiento extendido (para modelos que admiten razonamiento) |
call |
Una llamada a herramienta/función con nombre y parámetros |
message |
Objeto de mensaje final completo (enviado cuando finaliza la transmisión) |
error |
Mensaje de error si falla la transmisión |
// SSE event format event: token data: {"data": "Hello", "attributes": {}} event: token data: {"data": " world", "attributes": {}} event: message data: {"id": "msg-uuid", "content": "Hello world", ...}
Genera código a partir de un prompt en lenguaje natural. Devuelve una respuesta en streaming vía Server-Sent Events (SSE).
| Parámetro | Tipo | Descripción |
|---|---|---|
promptrequerido |
Descripci | Descripción en lenguaje natural del código a generar |
languagerequerido |
Descripci | Lenguaje de programación (ej., "python", "javascript", "rust") |
temperatureopcional |
L | Temperatura de muestreo (0-2) |
max_tokensopcional |
string | Máximo de tokens a generar (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 con contenido incremental, seguidos de un evento document final con el código generado completo.
{
"object": "code_document",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "claude-sonnet-5",
"cost": 1,
"title": "Prime Number Checker",
"content": "def is_prime(n): ..."
}
Genera imágenes a partir de prompts de texto usando modelos de FLUX, Stable Diffusion, Ideogram y más.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Modelo de imagen a usar |
promptrequerido |
Descripci | Descripción de texto de la imagen a generar |
nopcional |
string | Número de imágenes a generar. Por defecto: 1 |
sizeopcional |
Descripci | Tamaño de imagen (ej., "1024x1024", "1792x1024") |
response_formatopcional |
Descripci | "url" o "b64_json". Por defecto: "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..."
}
]
}
Algunos modelos (FLUX, Runway, Luma, Kling, Leonardo, Vidu, Bria enhance/upscale) generan de forma asíncrona: aceptan el trabajo y lo completan momentos después. Para ellos, el endpoint responde 202 Accepted con un identificador de sondeo en lugar de la imagen — una extensión deliberada del contrato de OpenAI, que no tiene esta ruta:
{
"id": "01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66",
"status": "queued",
"poll": "/v1/images/01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66"
}
Consulta una generación iniciada de forma asíncrona. Informa queued, processing, completed o failed; una vez completada, la URL de la imagen aparece con la misma forma data que la respuesta síncrona. Limitado al espacio de trabajo de la clave API que llama — un id que no existe o que pertenece a otro espacio de trabajo responde el mismo 404.
{
"id": "01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66",
"status": "completed",
"created": 1699900000,
"data": [
{
"url": "https://zubnet.com/files/abc123.png"
}
]
}
Edita una imagen con un prompt de texto — el contrato images.edit de OpenAI, enviado como multipart/form-data. Disponible en los modelos que aceptan una imagen de entrada (su ficha de modelo indica edición de imágenes): gpt-image-2.5-sunburst, gpt-image-2.5-flare, gpt-image-2, p-image-edit, gen4_image, luma/photon-1 y otros. Cualquier otro modelo responde 400. Los modelos síncronos y asíncronos siguen los mismos contratos 200 / 202 que las generaciones.
| Campo | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Un modelo de imagen que acepta una imagen de entrada |
promptrequerido |
Descripci | Qué cambiar |
imagerequerido |
string | La imagen a editar (PNG, JPEG o WebP). Envía image[] para pasar varias donde el modelo lo permita |
maskopcional |
string | PNG con canal alfa, del mismo tamaño que la imagen; los píxeles transparentes marcan lo que se repinta. Solo modelos gpt-image |
sizeopcional |
Descripci | Tamaño de salida (p. ej., "1024x1024", "1536x1024") |
qualityopcional |
Descripci | "low", "medium" o "high" en la familia gpt-image |
nopcional |
string | Número de ediciones a generar. Por defecto: 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"
}
]
}
Genera videos a partir de prompts de texto o imágenes. Soporta flujos de trabajo de texto a video, imagen a video y video a video.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Modelo de video a usar |
promptrequerido* |
Descripci | Descripción de texto del video. *No requerido para modelos de lip-sync o upscale |
framesopcional |
file[] | Imágenes de entrada para imagen a video. Máx 10MB cada una (jpg, png, webp) |
videoopcional |
string | Video de entrada para video a video. Máx 100MB (mp4, webm, mov) |
audioopcional |
string | Archivo de audio para modelos de lip-sync. Máx 25MB |
aspect_ratioopcional |
Descripci | Relación de aspecto (ej., "16:9", "9:16", "1:1") |
durationopcional |
string | Duración del video en segundos |
negative_promptopcional |
Descripci | Qué evitar en el video (según el modelo) |
resolutionopcional |
Descripci | Resolución de salida, p. ej. "480p", "720p", "1080p", "4k" (según el modelo) |
qualityopcional |
Descripci | Nivel calidad/velocidad si se admite (p. ej. "speed" o "quality") |
audioopcional |
Descripci | "on"/"off" — audio nativo sincronizado en los modelos compatibles (Seedance 2.0, Kling, PixVerse, CogVideoX…) |
seedopcional |
string | Semilla de reproducibilidad si se admite |
styleopcional |
Descripci | Preajuste de estilo en modelos compatibles (p. ej. Vidu: "general"/"anime") |
| Cada modelo acepta además sus opciones específicas (fps, multi_clip, mode, loop, motion_mode, ratios…) — exactamente los selectores que muestra la app para ese modelo. Los parámetros desconocidos se ignoran. | ||
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 (“procesamiento”, “completado”, “fallido”) y un porcentaje de progress. Consulta el endpoint de la biblioteca para verificar el estado de finalización.
{
"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"
}
lisis.
Enviar un video para an
| Parámetro | Tipo | Descripción |
|---|---|---|
video_urlrequerido |
Descripci | URL HTTPS p |
typeopcional |
Descripci | lisis: summary (predeterminado), topics, chapterso 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"
}
Verificar el estado de una tarea de an
{
"status": "completed",
"result": {
"type": "summary",
"content": "The video shows a product demonstration..."
}
}
Genera música original a partir de descripciones de texto, letras o etiquetas de estilo.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Modelo de música a usar |
promptopcional |
Descripci | Descripción de la música o letras a musicalizar |
tagsopcional |
Descripci | Etiquetas de género y estilo (ej., "lo-fi, chill, jazz") |
instrumentalopcional |
booleano | Generar solo instrumental (sin voces). Por defecto: false |
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
}
]
Generar efectos de sonido a partir de descripciones de texto.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Modelo de efectos de sonido |
promptrequerido |
Descripci | n del efecto de sonido a generar |
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"
}
}
Convierte texto en audio de voz con sonido natural usando voces de ElevenLabs, Cartesia, Speechify y más.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Modelo TTS (ej., "tts-1", "tts-1-hd", "elevenlabs") |
inputrequerido |
Descripci | Texto a convertir en voz (máx 5000 caracteres) |
voicerequerido |
Descripci | ID de voz a usar (ej., "alloy", "echo", "nova", o un ID de voz personalizado) |
response_formatopcional |
Descripci | Formato de audio: mp3, opus, aac, flac. Por defecto: 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
Transcribe audio a texto.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Modelo de transcripción (ej., "whisper-1") |
filerequerido |
string | Archivo de audio a transcribir. Máx 25MB (mp3, mp4, wav, webm, ogg, flac) |
languageopcional |
Descripci | Código de idioma (ej., "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..."
}
Extrae voces limpias del audio, eliminando ruido de fondo y música. Desarrollado por ElevenLabs.
| Parámetro | Tipo | Descripción |
|---|---|---|
filerequerido |
string | Archivo de audio. Máx 25MB (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"
}
}
Separa el audio en pistas individuales (voces, batería, bajo, guitarra, piano, otros). Desarrollado por ElevenLabs.
| Parámetro | Tipo | Descripción |
|---|---|---|
filerequerido |
string | Archivo de audio. Máx 25MB (mp3, mp4, wav, m4a, webm, ogg, flac) |
stem_variationopcional |
Descripci | Modo de separación. Por defecto: "six_stems_v1" (voces, batería, bajo, guitarra, piano, otros) |
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"
}
}
Cree y gestione voces personalizadas para la s
Crear una voz personalizada.
Listar todas las voces disponibles en su espacio de trabajo.
Actualizar una voz personalizada.
Eliminar una voz personalizada.
voice del endpoint Texto a Voz.
Crea embeddings de texto para búsqueda semántica y similitud.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Modelo de embedding (ej., "text-embedding-3-small") |
inputrequerido |
string/array | Texto a convertir en embedding (string o array de strings) |
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" }'
Crea y gestiona bases de conocimiento para la generaci
Crear una nueva base de conocimiento.
| Parámetro | Tipo | Descripción |
|---|---|---|
namerequerido |
Descripci | Nombre de la base de conocimiento |
descriptionopcional |
Descripci | n de la base de conocimiento |
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"
}
Listar todas las bases de conocimiento en tu espacio de trabajo.
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My KB",
"description": "Optional description",
"status": "active"
},
...
]
Obtener los detalles de una base de conocimiento espec
Eliminar una base de conocimiento y todos sus documentos.
Ingerir un documento en una base de conocimiento. Soporta carga de archivos, URLs y texto sin formato.
| Parámetro | Tipo | Descripción |
|---|---|---|
filerequerido |
string | Nombre del agente (m — x. 64 caracteres) |
titlerequerido |
Descripci | ID del modelo (ej. "claude-sonnet-5", "deepseek-chat") |
typeopcional |
Descripci | Prompt de sistema que define el comportamiento y personalidad del agente |
urlopcional |
Descripci | "quick" o "advanced". Por defecto: "quick" |
contentopcional |
Descripci | URL del avatar (m |
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..." }'
Listar todos los agentes del espacio de trabajo. Soporta paginaci
n y filtrado.
Lee el contenido de texto extraído de un documento específico.
Reordena una lista de documentos por relevancia a una consulta. Útil para mejorar resultados de búsqueda, canalizaciones RAG y sistemas de recomendación.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Resultados por p |
queryrequerido |
Descripci | gina. Por defecto: 25 |
documentsrequerido |
string | Arreglo de cadenas de documentos para reordenar |
top_nopcional |
string | Número de resultados principales a devolver. Predeterminado: todos |
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 El campo se refiere a la posición de cada documento en la matriz de entrada original.
La biblioteca es donde vive todo el contenido generado — imágenes, videos, composiciones, documentos de código, transcripciones y más. Úsalo para listar elementos, verificar el estado de generación asíncrona, actualizar metadatos y gestionar tu contenido.
Lista elementos en tu biblioteca por tipo de contenido.
| Parámetro | Tipo | Descripción |
|---|---|---|
limitopcional |
string | Resultados por página (máx. 100) |
starting_afteropcional |
Descripci | Cursor para paginación hacia adelante (UUID del elemento) |
ending_beforeopcional |
Descripci | Cursor para paginación hacia atrás (UUID del elemento) |
sortopcional |
Descripci | Campo de ordenamiento y dirección (p. ej., "created_at:desc") |
queryopcional |
Descripci | Búsqueda de texto completo (máx. 255 caracteres) |
modelopcional |
Descripci | Filtrar por modelo utilizado para la generación |
{
"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"
},
...
]
}
Obtiene un solo elemento de la biblioteca por ID. Este es el endpoint principal para consulta del estado de generación asíncrona.
| Estado | Valor | Descripción |
|---|---|---|
draft |
0 | Aún no enviado |
queued |
1 | Esperando ser procesado |
processing |
2 | Generando actualmente |
completed |
3 | Listo — output_file está disponible |
failed |
4 | La generación falló |
# 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 del último elemento en starting_after para obtener la siguiente página. No hay parámetros de offset/página.
Actualiza los metadatos de un elemento de la biblioteca.
| Parámetro | Tipo | Descripción |
|---|---|---|
titleopcional |
Descripci | Título del elemento |
visibilityopcional |
string | 0 (privado) o 1 (público) |
is_favoritedopcional |
booleano | Agregar o quitar de favoritos |
metaopcional |
objeto | Metadatos personalizados (género, estado de ánimo, etiquetas, descripción, autor, etc.) |
Elimina un elemento de la biblioteca y sus archivos asociados.
Obtiene el recuento total de elementos para un tipo de contenido. Admite los mismos query y model filtros como el endpoint de lista.
Los asistentes son configuraciones de chat reutilizables con un nombre personalizado, modelo, mensaje de sistema y ajustes. Úsalos para crear personas de IA especializadas para diferentes tareas.
Crea un nuevo asistente.
Lista todos los asistentes en tu conversación.
Actualiza la configuración de un asistente (nombre, modelo, prompt del sistema, ajustes).
Elimina un asistente.
Explora y activa servidores MCP (Model Context Protocol) para darles a tus agentes capacidades de herramientas extendidas — desde la búsqueda web y el acceso a datos hasta la ejecución de código y las integraciones de terceros.
Explora el catálogo de servidores MCP.
| Parámetro | Tipo | Descripción |
|---|---|---|
categoryopcional |
Descripci | Filtrar por categoría (búsqueda, datos, desarrollador, infraestructura, comunicación, comercio, creatividad, productividad, social, utilidades) |
queryopcional |
Descripci | Buscar por nombre o descripción |
{
"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
},
...
]
}
Activa un servidor MCP para tu conversación. Proporciona los valores de configuración (claves API, etc.) según lo definido por el servidor's config_schema.
| Parámetro | Tipo | Descripción |
|---|---|---|
server_idrequerido |
Descripci | UUID del servidor MCP a activar |
configopcional |
objeto | Valores de configuración que coinciden con el config_schema del servidor |
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 es el activation_id que usas al vincular servidores MCP con agentes.
Lista todos los servidores MCP activados en tu conversación.
Actualiza la configuración o el estado de una activación.
Desactiva un servidor MCP de tu conversación.
Crea y gestiona agentes de IA autónomos que operan en distintos canales de comunicación. Los agentes pueden responder mensajes en Telegram y Discord, ejecutarse mediante disparadores programados y aprovechar bases de conocimiento y servidores MCP para funciones ampliadas.
Crea un nuevo agente.
| Parámetro | Tipo | Descripción |
|---|---|---|
namerequerido |
Descripci | Nombre del agente (máx. 64 caracteres) |
modelrequerido |
Descripci | ID del modelo a usar (por ejemplo, "claude-sonnet-5", "deepseek-chat") |
system_promptopcional |
Descripci | Prompt de sistema personalizado que define el comportamiento y la personalidad del agente |
modeopcional |
Descripci | "quick" o "advanced". Por defecto: "quick" |
avataropcional |
Descripci | URL del avatar (máx. 512 caracteres) |
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": []
}
Lista todos los agentes en la conversación. Admite paginación y filtrado.
| Parámetro | Tipo | Descripción |
|---|---|---|
limitconsulta |
string | Resultados por página. Predeterminado: 25 |
cursorconsulta |
Descripci | n |
sortconsulta |
Descripci | "name", "created_at" o "last_active_at". Por defecto: "created_at" |
directionconsulta |
Descripci | "asc" o "desc" |
statusconsulta |
string | Filtrar por estado: 0 (inactivo), 1 (activo), 2 (pausado) |
{
"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,
...
}
]
}
Obtener los detalles completos de un agente, incluyendo sus canales, servidores MCP y bases de conocimiento vinculados.
Actualizar un agente. Todos los campos son opcionales — solo se modifican los campos proporcionados.
| Parámetro | Tipo | Descripción |
|---|---|---|
nameopcional |
Descripci | x. 64) |
modelopcional |
Descripci | ID del modelo |
system_promptopcional |
string|null | Prompt de sistema (null para borrar) |
statusopcional |
string | 0 (inactivo), 1 (activo) o 2 (pausado) |
modeopcional |
Descripci | "quick" o "advanced" |
permissionsopcional |
objeto | Permisos del agente (ver abajo) |
{
"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
}
}
}
Eliminar un agente. Esto tambi
Vincular una base de conocimiento a un agente para respuestas con RAG. Cuerpo: { "knowledge_base_id": "uuid" }
Desvincular una base de conocimiento de un agente.
Vincular un servidor MCP a un agente para herramientas extendidas. Cuerpo: { "activation_id": "uuid" }
Desvincular un servidor MCP de un agente.
Recuperar el historial de conversaciones de un agente.
| Parámetro | Tipo | Descripción |
|---|---|---|
limitconsulta |
string | x.: 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-5",
"created_at": 1709222401
}
]
}
n. Cada agente soporta un canal por tipo (un bot de Telegram, un bot de Discord).
Agregar un canal de comunicaci
| Parámetro | Tipo | Descripción |
|---|---|---|
typerequerido |
Descripci | "telegram" o "discord" |
tokenrequerido |
Descripci | Token del bot de Telegram BotFather o Discord Developer Portal (m |
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
}
Listar todos los canales conectados a un agente.
Eliminar un canal de un agente.
Automatice las acciones de los agentes con disparadores. Los disparadores programados usan expresiones cron para ejecutarse en horarios espec
Crear un disparador automatizado para un agente.
| Parámetro | Tipo | Descripción |
|---|---|---|
namerequerido |
Descripci | x. 128) |
typerequerido |
Descripci | "scheduled" o "event" |
promptrequerido |
Descripci | El prompt enviado al agente cuando se activa el disparador |
cron_expressionopcional |
Descripci | Expresi |
timezoneopcional |
Descripci | n cron. Por defecto: "UTC" |
channel_idopcional |
Descripci | Canal al cual enviar la salida del disparador |
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
}
Listar todos los disparadores de un agente.
Actualizar un disparador. Todos los campos son opcionales. Establezca status a 0 para desactivar o 1 para activar.
Eliminar un disparador.
n, claves API y miembros. Gestione espacios, invite miembros y realice seguimiento del uso.
Crear un nuevo espacio de trabajo.
| Parámetro | Tipo | Descripción |
|---|---|---|
namerequerido |
Descripci | x. 50 caracteres) |
{
"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"
}
Actualizar la configuraci
| Parámetro | Tipo | Descripción |
|---|---|---|
nameopcional |
Descripci | x. 50 caracteres) |
api_spending_limitopcional |
L | mite de gasto API mensual (null para ilimitado) |
{provider}_api_keyopcional |
Descripci | Clave API BYOK para un proveedor (ej. openai_api_key, anthropic_api_key) |
Eliminar un espacio de trabajo. Requiere permiso de gesti
Invitar a un usuario a unirse al espacio por correo electr
| Parámetro | Tipo | Descripción |
|---|---|---|
emailrequerido |
Descripci | Direcci |
Cancelar una invitaci
n pendiente.
Eliminar un miembro del espacio, o abandonar el espacio usando su propio ID de usuario.
Listar estad > sticas de uso agregadas. Paginaci
Obtener el total de elementos de uso.
s de la API de Biblioteca usando el tipo conversations.
Crear una nueva conversaci
{
"object": "conversation",
"id": "550e8400-...",
"title": null,
"cost": 0,
"messages": [],
"created_at": "2026-03-01T12:00:00Z"
}
Enviar un mensaje a una conversaci Completaciones de Chat para detalles del formato SSE.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelrequerido |
Descripci | Modelo a utilizar para la respuesta |
contentopcional |
Descripci | Texto del mensaje |
assistant_idopcional |
Descripci | UUID de un asistente a utilizar para este mensaje |
parent_idopcional |
Descripci | UUID de un mensaje padre (para conversaciones ramificadas) |
fileopcional |
string | Archivo adjunto (im — genes, documentos, audio/video |
recordingopcional |
string | Grabaci — x. 64 caracteres) |
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 al subir archivos. Para listar o eliminar conversaciones, use la API de Biblioteca con tipo conversations.
Gestione su perfil de usuario y genere claves API program
Actualiza la información de tu perfil.
| Parámetro | Tipo | Descripción |
|---|---|---|
first_nameopcional |
Descripci | Nombre (máx. 50 caracteres) |
last_nameopcional |
Descripci | Apellido (máx. 50 caracteres) |
languageopcional |
Descripci | Código de idioma preferido (p. ej., "en", "fr") |
preferencesopcional |
objeto | Configuración de preferencias del usuario |
Genera una nueva clave API. Requiere confirmación de contraseña por seguridad. Se devuelve la clave API completa solo una vez Actualizar su informaci — n de perfil.
| Parámetro | Tipo | Descripción |
|---|---|---|
current_passwordrequerido |
Descripci | Tu contraseña actual de la cuenta |
{
"id": "550e8400-...",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"api_key": "zub_live_a1b2c3d4e5f6..."
}
api_key el valor se muestra completo solo en esta respuesta. Las siguientes llamadas a la API devuelven una versión enmascarada. Trátalo como una contraseña.
Explora los planes disponibles, visualiza el historial de pedidos, inicia el pago y administra suscripciones.
Lista los planes de suscripción disponibles.
| Parámetro | Tipo | Descripción |
|---|---|---|
billing_cycleopcional |
Descripci | Filtrar por ciclo de facturación |
Lista los pedidos de la conversación actual. Admite paginación basada en cursor.
| Parámetro | Tipo | Descripción |
|---|---|---|
statusopcional |
Descripci | Filtrar por estado del pedido |
billing_cycleopcional |
Descripci | Filtrar por ciclo de facturación |
Inicia un proceso de pago para un plan de suscripción o compra de créditos. Requiere permiso de gestión de conversación.
| Parámetro | Tipo | Descripción |
|---|---|---|
idopcional |
Descripci | Nombre (m amount) |
amountopcional |
string | Apellido (m id) |
gatewayopcional |
Descripci | C stripe o paypal |
Generar una nueva clave API. Requiere confirmaci
Explore los planes disponibles, consulte el historial de pedidos, inicie un pago y gestione suscripciones.
Listar los planes de suscripci
| Parámetro | Tipo | Descripción |
|---|---|---|
item_idrequerido |
Descripci | Filtrar por estado del pedido |
reasonrequerido |
string | Filtrar por ciclo de facturaci |
descriptionopcional |
Descripci | x. 2000 caracteres) |
{
"id": "550e8400-e29b-41d4-a716-446655440000"
}
409 Conflict.
La superficie completa va más allá de las secciones anteriores. Estos endpoints están activos y usan la misma autenticación:
POST /api/ai/three-d | Generación de modelos 3D (Tripo, Meshy…) |
POST /api/ai/tts · POST /api/ai/speeches | Texto a voz (superficie nativa + preajustes) |
POST /api/ai/transcriptions | Transcripción de audio por lotes (selector de modelo) |
GET /api/ai/transcriptions/realtime/token · POST /api/ai/transcriptions/realtime/save | Transcripción en vivo del micrófono (token de sesión + guardado) |
POST /api/ai/translations · GET /api/ai/translation-languages | Traducción de texto + idiomas admitidos |
POST /api/ai/document-extractions | Extracción de texto de documentos (OCR) |
GET /api/ai/video-understanding/{jobId} | Estado del análisis de video |
/api/library-stacks | Stacks de biblioteca (colecciones) — CRUD completo |
/api/chatroom | Salas de equipo (conversaciones de IA compartidas) |
/api/automation | Flujos de automatización (crear + ejecutar) |
La API usa códigos de estado HTTP estándar y devuelve mensajes de error detallados.
| Código | Descripción |
|---|---|
400 |
Solicitud Incorrecta — Parámetros inválidos |
401 |
No Autorizado — Clave API inválida o faltante |
403 |
Prohibido — Créditos insuficientes o modelo no disponible en tu plan |
404 |
No Encontrado — Modelo o recurso no encontrado |
413 |
Carga Demasiado Grande — El archivo excede el límite de tamaño |
429 |
Demasiadas Solicitudes — Límite de solicitudes excedido |
500 |
Error Interno del Servidor |
503 |
Servicio No Disponible — Sobrecarga temporal |
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
}
Los límites de solicitud varían según el plan. Los encabezados se incluyen en cada respuesta:
| Encabezado | Descripción |
|---|---|
X-RateLimit-Limit |
Solicitudes permitidas por minuto |
X-RateLimit-Remaining |
Solicitudes restantes en la ventana actual |
X-RateLimit-Reset |
Marca de tiempo Unix cuando se restablece el límite |
Si alcanzas un límite de solicitudes, espera hasta el momento de restablecimiento o contáctanos para aumentar tus límites.
Preguntas sobre la API? Consulta nuestras FAQ o contáctanos directamente.