Documentação da API
- Início
- Desenvolver
- API
Texto
Mídia
Voz
Outros
Plataforma
Agentes
A API da Zubnet oferece acesso programático a 361 modelos de IA para geração de texto, imagem, vídeo, música, voz e código. É totalmente compatível com a especificação da API OpenAI — se você já usa a OpenAI, pode mudar para a Zubnet alterando sua URL base e chave de 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-4-20250514", "messages": [{"role": "user", "content": "Hello!"}] }'
# Usando Python com o SDK da 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)
Todas as requisições da API exigem autenticação via token Bearer no cabeçalho Authorization.
Authorization: Bearer YOUR_API_KEY
Você pode gerar chaves de API nas suas account settings. Mantenha suas chaves seguras — elas concedem acesso total à sua conta.
Você pode usar suas próprias chaves de API de provedores compatíveis. Adicione-as nas configurações do seu espaço de trabalho e elas serão usadas automaticamente para requisições a esses provedores — sem custo adicional. BYOK está disponível nos planos que o suportam.
Quando uma chave BYOK está configurada para um provedor, ela tem prioridade sobre a chave da plataforma. Nenhuma alteração é necessária nas suas requisições de API — a resolução da chave é totalmente transparente.
List all available models.
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"
},
...
]
}
Crie uma completion de chat. Este é o endpoint principal para geração de texto, compatível com o formato de chat completions da OpenAI.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | ID do modelo a usar (ex.: "claude-sonnet-4-20250514", "deepseek-chat", "gemini-2.5-pro") |
messagesrequired |
array | Array de objetos de mensagem com role and content |
temperatureoptional |
number | Sampling temperature (0-2). Default: 0.7 |
max_tokensoptional |
integer | Máximo de tokens a gerar (1-128000). Padrão: 4096 |
streamoptional |
boolean | Transmitir respostas via SSE. Padrão: true |
top_poptional |
number | Nucleus sampling parameter (0-1). Default: 1 |
frequency_penaltyoptional |
number | Penalidade de frequência (-2 a 2). Padrão: 0 |
presence_penaltyoptional |
number | Penalidade de presença (-2 a 2). Padrão: 0 |
stopoptional |
string/array | Stop sequences |
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 é o 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": "A capital da França é Paris."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 8,
"total_tokens": 33
}
}
Quando stream é true, a resposta é entregue como Server-Sent Events (SSE). Cada evento tem um tipo nomeado e um payload JSON:
| Evento | Descrição |
|---|---|
token |
Um token/delta de texto do modelo |
reasoning-token |
Um token de raciocínio estendido (para modelos que suportam reasoning) |
call |
Uma chamada de ferramenta/função com nome e parâmetros |
message |
Objeto de mensagem final completo (enviado quando o stream termina) |
error |
Error message if streaming fails |
// SSE event format event: token data: {"data": "Hello", "attributes": {}} event: token data: {"data": " world", "attributes": {}} event: message data: {"id": "msg-uuid", "content": "Hello world", ...}
Gere código a partir de um prompt em linguagem natural. Retorna uma resposta em streaming via Server-Sent Events (SSE).
| Parâmetro | Tipo | Descrição |
|---|---|---|
promptrequired |
string | Descrição em linguagem natural do código a gerar |
languagerequired |
string | Programming language (e.g., "python", "javascript", "rust") |
temperatureoptional |
number | Temperatura de amostragem (0-2) |
max_tokensoptional |
integer | Máximo de tokens a gerar (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 eventos com conteúdo incremental, seguidos por um document evento final com o código gerado completo.
{
"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): ..."
}
Gere imagens a partir de prompts de texto usando modelos do FLUX, Stable Diffusion, Ideogram e mais.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | Modelo de imagem a usar |
promptrequired |
string | Descrição textual da imagem a gerar |
noptional |
integer | Número de imagens a gerar. Padrão: 1 |
sizeoptional |
string | Image size (e.g., "1024x1024", "1792x1024") |
response_formatoptional |
string | "url" ou "b64_json". Padrão: "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.com/files/abc123.png",
"revised_prompt": "A serene mountain lake..."
}
]
}
Gere vídeos a partir de prompts de texto ou imagens. Suporta fluxos de texto para vídeo, imagem para vídeo e vídeo para vídeo.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | Modelo de vídeo a usar |
promptrequired* |
string | Descrição textual do vídeo. *Não obrigatório para modelos de lip-sync ou upscale |
framesoptional |
file[] | Imagens de entrada para imagem-para-vídeo. Máx. 10MB cada (jpg, png, webp) |
videooptional |
file | Vídeo de entrada para vídeo-para-vídeo. Máx. 100MB (mp4, webm, mov) |
audiooptional |
file | Arquivo de áudio para modelos de lip-sync. Máx. 25MB |
aspect_ratiooptional |
string | Aspect ratio (e.g., "16:9", "9:16", "1:1") |
durationoptional |
integer | Duração do vídeo em segundos |
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 field (“processing”, “completed”, “failed”) and a progress de porcentagem. Consulte o endpoint da biblioteca para verificar o status de conclusão.
{
"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"
}
Analise conteúdo de vídeo usando IA. Envie uma URL de vídeo para análise e consulte os resultados. Suporta vários tipos de análise.
Envie um vídeo para análise com IA. Retorna um ID de tarefa que pode ser consultado para resultados.
| Parâmetro | Tipo | Descrição |
|---|---|---|
video_urlrequired |
string | URL HTTPS pública do vídeo a analisar |
typeoptional |
string | Analysis type: summary (default), topics, chapters, or 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"
}
Verifique o status de uma tarefa de análise de vídeo.
{
"status": "completed",
"result": {
"type": "summary",
"content": "The video shows a product demonstration..."
}
}
Gere músicas originais a partir de descrições textuais, letras ou tags de estilo.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | Modelo de música a usar |
promptoptional |
string | Descrição da música ou letras a definir |
tagsoptional |
string | Tags de gênero e estilo (ex.: "lo-fi, chill, jazz") |
instrumentaloptional |
boolean | Gerar apenas instrumental (sem vocais). Padrão: 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://cdn.zubnet.com/files/abc123.mp3"
}
},
{
"object": "composition",
"id": "550e8400-e29b-41d4-a716-446655440001",
// ... second variant
}
]
Gere efeitos sonoros a partir de descrições textuais.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | Modelo de efeito sonoro a usar |
promptrequired |
string | Descrição do efeito sonoro a gerar |
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://cdn.zubnet.com/files/abc123.mp3"
}
}
Converta texto em áudio de fala natural usando vozes da ElevenLabs, Cartesia, Speechify e mais.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | TTS model (e.g., "tts-1", "tts-1-hd", "elevenlabs") |
inputrequired |
string | Texto para converter em fala (máx. 5000 caracteres) |
voicerequired |
string | ID da voz a usar (ex.: "alloy", "echo", "nova" ou um ID de voz personalizado) |
response_formatoptional |
string | Audio format: mp3, opus, aac, flac. Default: 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
Transcreva áudio para texto.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | Transcription model (e.g., "whisper-1") |
filerequired |
file | Arquivo de áudio para transcrever. Máx. 25MB (mp3, mp4, wav, webm, ogg, flac) |
languageoptional |
string | Language code (e.g., "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": "Olá, esta é uma gravação de teste..."
}
Extraia vocais limpos do áudio, removendo ruído de fundo e música. Powered by ElevenLabs.
| Parâmetro | Tipo | Descrição |
|---|---|---|
filerequired |
file | Audio file. Max 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://cdn.zubnet.com/files/input.mp3"
},
"output_file": {
"url": "https://cdn.zubnet.com/files/isolated.mp3"
}
}
Separe o áudio em faixas individuais (vocais, bateria, baixo, guitarra, piano, outros). Powered by ElevenLabs.
| Parâmetro | Tipo | Descrição |
|---|---|---|
filerequired |
file | Audio file. Max 25MB (mp3, mp4, wav, m4a, webm, ogg, flac) |
stem_variationoptional |
string | Separation mode. Default: "six_stems_v1" (vocals, drums, bass, guitar, piano, other) |
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://cdn.zubnet.com/files/song.mp3"
},
"output_file": {
"url": "https://cdn.zubnet.com/files/stems.zip"
}
}
Crie e gerencie vozes personalizadas para geração de texto para fala.
Crie uma voz personalizada fazendo upload de amostras de áudio.
Liste todas as vozes disponíveis no seu espaço de trabalho, incluindo vozes personalizadas que você criou.
Update a custom voice (name, settings).
Delete a custom voice.
voice parâmetro do endpoint de Texto para Fala.
Crie embeddings de texto para busca semântica e similaridade.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | Embedding model (e.g., "text-embedding-3-small") |
inputrequired |
string/array | Texto para gerar embedding (string ou 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" }'
Crie e gerencie bases de conhecimento para geração aumentada por recuperação (RAG). Faça upload de documentos (PDF, DOCX, TXT, Markdown) ou adicione URLs da web e texto bruto, e depois consulte-os nas suas completions de chat.
Create a new knowledge base.
| Parâmetro | Tipo | Descrição |
|---|---|---|
namerequired |
string | Nome da base de conhecimento |
descriptionoptional |
string | Descrição da base de conhecimento |
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"
}
Liste todas as bases de conhecimento no seu espaço de trabalho.
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My KB",
"description": "Optional description",
"status": "active"
},
...
]
Obtenha detalhes de uma base de conhecimento específica, incluindo seus documentos.
Delete a knowledge base and all its documents.
Ingira um documento em uma base de conhecimento. Suporta upload de arquivos, URLs e texto bruto.
| Parâmetro | Tipo | Descrição |
|---|---|---|
fileoption 1 |
file | Multipart file upload (PDF, DOCX, TXT, MD — max 10MB) |
titlerequired |
string | Título do documento (obrigatório para tipos URL e texto) |
typeoption 2/3 |
string | "url" ou "text" (para ingestão sem arquivo) |
urloption 2 |
string | URL para buscar e ingerir (quando o tipo é "url") |
contentoption 3 |
string | Conteúdo de texto bruto para ingerir (quando o tipo é "text") |
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..." }'
Liste todos os documentos em uma base de conhecimento.
Exclua um documento específico de uma base de conhecimento.
Leia o conteúdo de texto extraído de um documento específico.
Reordene uma lista de documentos por relevância a uma consulta. Útil para melhorar resultados de busca, pipelines RAG e sistemas de recomendação.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | Modelo de reranking a usar |
queryrequired |
string | A consulta de busca para classificar documentos |
documentsrequired |
array | Array de strings de documentos para reordenar |
top_noptional |
integer | Número de resultados principais a retornar. Padrão: 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 campo refere-se à posição de cada documento no array de entrada original.
A biblioteca é onde todo o conteúdo gerado fica — imagens, vídeos, composições, documentos de código, transcrições e mais. Use-a para listar itens, verificar o status de geração assíncrona, atualizar metadados e gerenciar seu conteúdo.
Liste itens da sua biblioteca por tipo de conteúdo.
| Parâmetro | Tipo | Descrição |
|---|---|---|
limitoptional |
integer | Results per page (max 100) |
starting_afteroptional |
string | Cursor para paginação para frente (UUID do item) |
ending_beforeoptional |
string | Cursor para paginação para trás (UUID do item) |
sortoptional |
string | Campo e direção de ordenação (ex.: "created_at:desc") |
queryoptional |
string | Full-text search (max 255 characters) |
modeloptional |
string | Filtrar por modelo usado para geração |
{
"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://cdn.zubnet.com/files/abc123.mp4",
"size": 8421376,
"extension": "mp4"
},
"created_at": "2026-03-01T12:00:00Z"
},
...
]
}
Obtenha um único item da biblioteca por ID. Este é o endpoint principal para polling async generation status.
| Estado | Valor | Descrição |
|---|---|---|
draft |
0 | Ainda não enviado |
queued |
1 | Aguardando processamento |
processing |
2 | Currently generating |
completed |
3 | Done — output_file está disponível |
failed |
4 | Generation failed |
# 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. Consultar conclusão 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 do último item em starting_after para obter a próxima página. Não há parâmetros de offset/página.
Update a library item's metadata.
| Parâmetro | Tipo | Descrição |
|---|---|---|
titleoptional |
string | Item title |
visibilityoptional |
integer | 0 (privado) ou 1 (público) |
is_favoritedoptional |
boolean | Adicionar ou remover dos favoritos |
metaoptional |
object | Custom metadata (genre, mood, tags, description, author, etc.) |
Delete a library item and its associated files.
Obtenha a contagem total de itens para um tipo de conteúdo. Suporta os mesmos query and model filtros do endpoint de listagem.
Assistentes são presets de chat reutilizáveis com nome personalizado, modelo, prompt de sistema e configurações. Use-os para criar personas de IA especializadas para diferentes tarefas.
Create a new assistant.
Liste todos os assistentes no seu espaço de trabalho.
Update an assistant's configuration (name, model, system prompt, settings).
Delete an assistant.
Navegue e ative servidores MCP (Model Context Protocol) para dar aos seus agentes capacidades estendidas de ferramentas — desde busca na web e acesso a dados até execução de código e integrações de terceiros.
Navegue pelo catálogo de servidores MCP.
| Parâmetro | Tipo | Descrição |
|---|---|---|
categoryoptional |
string | Filtrar por categoria (search, data, developer, infrastructure, communication, commerce, creative, productivity, social, utilities) |
queryoptional |
string | Buscar por nome ou descrição |
{
"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
},
...
]
}
Ative um servidor MCP para o seu espaço de trabalho. Forneça valores de configuração (chaves de API, etc.) conforme definido pelo config_schema.
| Parâmetro | Tipo | Descrição |
|---|---|---|
server_idrequired |
string | UUID do servidor MCP a ativar |
configoptional |
object | Valores de configuração correspondentes ao config_schema do 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 é o activation_id que você usa ao vincular servidores MCP a agentes.
Liste todos os servidores MCP ativados no seu espaço de trabalho.
Atualize a configuração ou status de uma ativação.
Desative um servidor MCP do seu espaço de trabalho.
Crie e gerencie agentes de IA autônomos que operam em canais de comunicação. Os agentes podem responder a mensagens no Telegram e Discord, executar com gatilhos agendados e aproveitar bases de conhecimento e servidores MCP para capacidades aprimoradas.
Create a new agent.
| Parâmetro | Tipo | Descrição |
|---|---|---|
namerequired |
string | Agent name (max 64 characters) |
modelrequired |
string | ID do modelo a usar (ex.: "claude-sonnet-4-20250514", "deepseek-chat") |
system_promptoptional |
string | Prompt de sistema personalizado definindo o comportamento e personalidade do agente |
modeoptional |
string | "quick" ou "advanced". Default: "quick" |
avataroptional |
string | Avatar URL (max 512 characters) |
curl https://zubnet.com/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": "Você é um agente de suporte amigável...",
"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.com/files/avatar.jpg"
},
"channels": []
}
Liste todos os agentes no espaço de trabalho. Suporta paginação e filtragem.
| Parâmetro | Tipo | Descrição |
|---|---|---|
limitquery |
integer | Results per page. Default: 25 |
cursorquery |
string | Pagination cursor |
sortquery |
string | "name", "created_at" ou "last_active_at". Padrão: "created_at" |
directionquery |
string | "asc" ou "desc" |
statusquery |
integer | Filtrar por status: 0 (inativo), 1 (ativo), 2 (pausado) |
{
"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,
...
}
]
}
Obtenha detalhes completos de um agente específico, incluindo seus canais, servidores MCP vinculados e bases de conhecimento.
Atualize um agente. Todos os campos são opcionais — apenas os campos fornecidos são alterados.
| Parâmetro | Tipo | Descrição |
|---|---|---|
nameoptional |
string | Agent name (max 64) |
modeloptional |
string | Model ID |
system_promptoptional |
string|null | Prompt de sistema (defina como null para limpar) |
statusoptional |
integer | 0 (inativo), 1 (ativo) ou 2 (pausado) |
modeoptional |
string | "quick" ou "advanced" |
permissionsoptional |
object | Agent permissions (see below) |
{
"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
}
}
}
Exclua um agente. Isso também remove todos os seus canais, gatilhos, mensagens e integrações.
Vincule uma base de conhecimento a um agente para respostas com RAG. Body: { "knowledge_base_id": "uuid" }
Desvincule uma base de conhecimento de um agente.
Vincule um servidor MCP a um agente para uso estendido de ferramentas. Body: { "activation_id": "uuid" }
Desvincule um servidor MCP de um agente.
Recupere o histórico de conversas de um agente.
| Parâmetro | Tipo | Descrição |
|---|---|---|
limitquery |
integer | Número de mensagens a retornar. Padrão: 25, má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": "Vá em Configurações > Segurança > Alterar Senha...",
"cost": 0.25,
"model": "claude-sonnet-4-20250514",
"created_at": 1709222401
}
]
}
Conecte agentes a plataformas de comunicação. Cada agente suporta um canal por tipo (um bot Telegram, um bot Discord).
Adicione um canal de comunicação a um agente.
| Parâmetro | Tipo | Descrição |
|---|---|---|
typerequired |
string | "telegram" ou "discord" |
tokenrequired |
string | Token do bot do Telegram BotFather ou Portal de Desenvolvedor Discord (máx. 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
}
Liste todos os canais conectados a um agente.
Remova um canal de um agente.
Automatize ações do agente com gatilhos. Gatilhos agendados usam expressões cron para executar em horários específicos; gatilhos de evento disparam em resposta a eventos externos.
Crie um gatilho automatizado para um agente.
| Parâmetro | Tipo | Descrição |
|---|---|---|
namerequired |
string | Trigger name (max 128) |
typerequired |
string | "scheduled" ou "event" |
promptrequired |
string | O prompt enviado ao agente quando o gatilho dispara |
cron_expressionoptional |
string | Agendamento cron (ex.: "0 9 * * 1-5" para dias úteis às 9h) |
timezoneoptional |
string | Fuso horário IANA para avaliação cron. Padrão: "UTC" |
channel_idoptional |
string | Canal para enviar a saída do gatilho |
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": "Resuma as métricas principais de hoje...",
"channel_id": null,
"last_run_at": null,
"next_run_at": 1709236800,
"run_count": 0,
"created_at": 1709136000
}
Liste todos os gatilhos de um agente.
Atualize um gatilho. Todos os campos são opcionais. Defina status como 0 para desabilitar ou 1 para habilitar.
Delete a trigger.
Espaços de trabalho são a unidade organizacional da sua equipe. Cada espaço de trabalho tem seu próprio saldo de créditos, assinatura, chaves de API e membros. Gerencie espaços de trabalho, convide membros da equipe e acompanhe o uso.
Create a new workspace.
| Parâmetro | Tipo | Descrição |
|---|---|---|
namerequired |
string | Workspace name (max 50 characters) |
{
"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"
}
Update a workspace's settings. Requires workspace manage permission.
| Parâmetro | Tipo | Descrição |
|---|---|---|
nameoptional |
string | Workspace name (max 50 characters) |
api_spending_limitoptional |
number | Limite mensal de gastos com API (null para ilimitado) |
{provider}_api_keyoptional |
string | Chave de API BYOK para um provedor (ex.: openai_api_key, anthropic_api_key) |
Delete a workspace. Requires workspace manage permission.
Convide um usuário para entrar no espaço de trabalho por e-mail. Máximo de 20 convites pendentes por espaço de trabalho.
| Parâmetro | Tipo | Descrição |
|---|---|---|
emailrequired |
string | Endereço de e-mail do usuário a convidar |
Cancel a pending invitation.
Remova um membro do espaço de trabalho, ou saia do espaço de trabalho usando seu próprio ID de usuário.
Liste estatísticas de uso agregadas do espaço de trabalho. Suporta paginação baseada em cursor.
Liste entradas de uso detalhadas (itens da biblioteca concluídos com custo > 0). Cada entrada inclui tipo, modelo, título, custo e timestamp.
Obtenha a contagem total de itens de uso.
Conversas agrupam mensagens de chat em sessões. Crie uma conversa primeiro e depois envie mensagens para ela. As conversas também podem ser gerenciadas através da Biblioteca API usando o conversations content type.
Crie uma nova conversa. Retorna o objeto de conversa com uma lista de mensagens vazia.
{
"object": "conversation",
"id": "550e8400-...",
"title": null,
"cost": 0,
"messages": [],
"created_at": "2026-03-01T12:00:00Z"
}
Envie uma mensagem para uma conversa e receba uma resposta de IA via Server-Sent Events (SSE). Veja a Chat Completions seção para detalhes do formato de eventos SSE.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelrequired |
string | Modelo a usar para a resposta |
contentoptional |
string | Message text |
assistant_idoptional |
string | UUID de um assistente a usar para esta mensagem |
parent_idoptional |
string | UUID de uma mensagem pai (para conversas ramificadas) |
fileoptional |
file | Attachment (images, documents, audio/video — max 25MB) |
recordingoptional |
file | Voice recording (mp3, wav, webm, ogg — max 10MB) |
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 ao fazer upload de arquivos. Para listar ou excluir conversas, use a Biblioteca API com tipo conversations.
Gerencie seu perfil de usuário e gere chaves de API programaticamente.
Atualize as informações do seu perfil.
| Parâmetro | Tipo | Descrição |
|---|---|---|
first_nameoptional |
string | First name (max 50 characters) |
last_nameoptional |
string | Last name (max 50 characters) |
languageoptional |
string | Preferred language code (e.g., "en", "fr") |
preferencesoptional |
object | User preference settings |
Gere uma nova chave de API. Requer confirmação de senha por segurança. A chave de API completa é retornada apenas uma vez nesta resposta — armazene-a com segurança.
| Parâmetro | Tipo | Descrição |
|---|---|---|
current_passwordrequired |
string | Sua senha atual da conta |
{
"id": "550e8400-...",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"api_key": "zub_live_a1b2c3d4e5f6..."
}
api_key é mostrado completo apenas nesta resposta. Chamadas de API subsequentes retornam uma versão mascarada. Trate-o como uma senha.
Browse available plans, view order history, initiate checkout, and manage subscriptions.
List available subscription plans.
| Parâmetro | Tipo | Descrição |
|---|---|---|
billing_cycleoptional |
string | Filtrar por ciclo de faturamento |
Liste pedidos do espaço de trabalho atual. Suporta paginação baseada em cursor.
| Parâmetro | Tipo | Descrição |
|---|---|---|
statusoptional |
string | Filtrar por status do pedido |
billing_cycleoptional |
string | Filtrar por ciclo de faturamento |
Inicie um checkout para um plano de assinatura ou compra de créditos. Requer permissão de gerenciamento do espaço de trabalho.
| Parâmetro | Tipo | Descrição |
|---|---|---|
idoptional |
string | UUID do plano para assinar (obrigatório se não houver amount) |
amountoptional |
integer | Valor de compra de créditos em centavos (mín. 1000, obrigatório se não houver id) |
gatewayoptional |
string | Payment gateway: stripe or paypal |
Cancele a assinatura atual do espaço de trabalho. Requer permissão de gerenciamento do espaço de trabalho.
Denuncie conteúdo inadequado ou que viole as políticas na biblioteca pública.
Envie uma denúncia de conteúdo. Cada usuário pode denunciar um determinado item apenas uma vez.
| Parâmetro | Tipo | Descrição |
|---|---|---|
item_idrequired |
string | UUID do item da biblioteca a denunciar |
reasonrequired |
integer | Reason code: 0 (spam), 1 (harassment), 2 (violence), 3 (sexual content), 4 (other) |
descriptionoptional |
string | Additional details (max 2000 characters) |
{
"id": "550e8400-e29b-41d4-a716-446655440000"
}
409 Conflict error.
A API usa códigos de status HTTP padrão e retorna mensagens de erro detalhadas.
| Código | Descrição |
|---|---|
400 |
Bad Request — Invalid parameters |
401 |
Não autorizado — Chave de API inválida ou ausente |
403 |
Proibido — Créditos insuficientes ou modelo não disponível no seu plano |
404 |
Não encontrado — Modelo ou recurso não encontrado |
413 |
Payload Too Large — File exceeds size limit |
429 |
Too Many Requests — Rate limit exceeded |
500 |
Internal Server Error |
503 |
Service Unavailable — Temporary overload |
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
}
Os limites de requisição variam por plano. Cabeçalhos são incluídos em cada resposta:
| Cabeçalho | Descrição |
|---|---|
X-RateLimit-Limit |
Requests allowed per minute |
X-RateLimit-Remaining |
Requisições restantes na janela atual |
X-RateLimit-Reset |
Timestamp Unix de quando o limite é reiniciado |
Se você atingir um limite de requisição, aguarde até o momento de reinicialização ou entre em contato conosco para aumentar seus limites.
Dúvidas sobre a API? Confira nosso FAQ ou entre em contato diretamente.