Documentação da API

Introdução

A API da Zubnet oferece acesso programático a 408 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.

URL Base

https://api.zubnet.com/v1

Início Rápido

# 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)

Autenticação

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 configurações da conta. Mantenha suas chaves seguras — elas concedem acesso total à sua conta.

Usando Suas Próprias Chaves de Provedor (BYOK)

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.

Provedores BYOK Compatíveis

Anthropic Google Gemini DeepSeek Mistral Cohere AI21 Nvidia Alibaba Moonshot MiniMax Sambanova Zhipu ElevenLabs Speechify Hume Cartesia Resemble StabilityAI Black Forest Labs Ideogram HiDream PixVerse Vidu Kling Suno ByteDance

Modelos

GET /v1/models

Lista todos os modelos disponíveis.

curl https://api.zubnet.com/v1/models \
  -H "Authorization: Bearer $ZUBNET_API_KEY"
Resposta
{
  "object": "list",
  "data": [
    {
      "id": "claude-sonnet-5",
      "object": "model",
      "created": 1699900000,
      "owned_by": "anthropic"
    },
    {
      "id": "deepseek-chat",
      "object": "model",
      "created": 1699900000,
      "owned_by": "deepseek"
    },
    ...
  ]
}

Completions de Chat

POST /v1/chat/completions

Crie uma completion de chat. Este é o endpoint principal para geração de texto, compatível com o formato de chat completions da OpenAI.

Corpo da Requisição

Parâmetro Tipo Descrição
modelobrigatório string ID do modelo a usar (ex.: "claude-sonnet-5", "deepseek-chat", "gemini-2.5-pro")
messagesobrigatório array Array de objetos de mensagem com role e content
temperatureopcional número Temperatura de amostragem (0-2). Padrão: 0.7
max_tokensopcional número inteiro Máximo de tokens a gerar (1-128000). Padrão: 4096
streamopcional booleano Transmitir respostas via SSE. Padrão: true
top_popcional número Parâmetro de amostragem por núcleo (0-1). Padrão: 1
frequency_penaltyopcional número Penalidade de frequência (-2 a 2). Padrão: 0
presence_penaltyopcional número Penalidade de presença (-2 a 2). Padrão: 0
stopopcional string/array Sequências de parada

Exemplo de Requisição

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
  }'
Resposta
{
  "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
  }
}

Streaming

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 Mensagem de erro caso o streaming falhe
// SSE event format
event: token
data: {"data": "Hello", "attributes": {}}

event: token
data: {"data": " world", "attributes": {}}

event: message
data: {"id": "msg-uuid", "content": "Hello world", ...}

Geração de Código

POST /api/ai/completions/code

Gere código a partir de um prompt em linguagem natural. Retorna uma resposta em streaming via Server-Sent Events (SSE).

Corpo da Requisição

Parâmetro Tipo Descrição
promptobrigatório string Descrição em linguagem natural do código a gerar
languageobrigatório string Linguagem de programação (ex.: "python", "javascript", "rust")
temperatureopcional número Temperatura de amostragem (0-2)
max_tokensopcional número inteiro Máximo de tokens a gerar (1-128000)

Exemplo de Requisição

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"
  }'
Este endpoint transmite via SSE. Você receberá chunk eventos com conteúdo incremental, seguidos por um document evento final com o código gerado completo.
Objeto de Resposta Final
{
  "object": "code_document",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "claude-sonnet-5",
  "cost": 1,
  "title": "Prime Number Checker",
  "content": "def is_prime(n): ..."
}

Geração de Imagens

POST /v1/images/generations

Gere imagens a partir de prompts de texto usando modelos do FLUX, Stable Diffusion, Ideogram e mais.

Modelos Disponíveis

seedream-5.0-pro flux-pro-1.1-ultra gemini-2.5-flash-image grok-imagine-image qwen-image-2.0 ideogram-3.0 glm-image recraftv4

Corpo da Requisição

Parâmetro Tipo Descrição
modelobrigatório string Modelo de imagem a usar
promptobrigatório string Descrição textual da imagem a gerar
nopcional número inteiro Número de imagens a gerar. Padrão: 1
sizeopcional string Tamanho da imagem (ex.: "1024x1024", "1792x1024")
response_formatopcional string "url" ou "b64_json". Padrão: "url"

Exemplo de Requisição

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"
  }'
Resposta
{
  "created": 1699900000,
  "data": [
    {
      "url": "https://zubnet.com/files/abc123.png",
      "revised_prompt": "A serene mountain lake..."
    }
  ]
}

Modelos assíncronos — 202 Accepted

Alguns modelos (FLUX, Runway, Luma, Kling, Leonardo, Vidu, Bria enhance/upscale) geram de forma assíncrona: aceitam o trabalho e o concluem instantes depois. Para eles, o endpoint responde 202 Accepted com um identificador de consulta em vez da imagem — uma extensão deliberada do contrato da OpenAI, que não tem essa rota:

Resposta — 202 Accepted
{
  "id": "01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66",
  "status": "queued",
  "poll": "/v1/images/01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66"
}
GET /v1/images/{id}

Consulte uma geração iniciada de forma assíncrona. Informa queued, processing, completed ou failed; quando concluída, a URL da imagem aparece no mesmo formato data da resposta síncrona. Restrito ao workspace da chave de API chamadora — um id que não existe ou pertence a outro workspace responde o mesmo 404.

Response — concluída
{
  "id": "01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66",
  "status": "completed",
  "created": 1699900000,
  "data": [
    {
      "url": "https://zubnet.com/files/abc123.png"
    }
  ]
}
POST /v1/images/edits

Edite uma imagem com um prompt de texto — o contrato images.edit da OpenAI, enviado como multipart/form-data. Disponível nos modelos que aceitam uma imagem de entrada (a ficha do modelo lista edição de imagens): gpt-image-2.5-sunburst, gpt-image-2.5-flare, gpt-image-2, p-image-edit, gen4_image, luma/photon-1 e outros. Qualquer outro modelo responde 400. Modelos síncronos e assíncronos seguem os mesmos contratos 200 / 202 das gerações.

Campos do formulário

Campo Tipo Descrição
modelobrigatório string Um modelo de imagem que aceita uma imagem de entrada
promptobrigatório string O que alterar
imageobrigatório arquivo A imagem a editar (PNG, JPEG ou WebP). Envie image[] para passar várias onde o modelo permitir
maskopcional arquivo PNG com canal alfa, do mesmo tamanho da imagem; os pixels transparentes marcam o que será repintado. Apenas modelos gpt-image
sizeopcional string Tamanho de saída (ex.: "1024x1024", "1536x1024")
qualityopcional string "low", "medium" ou "high" na família gpt-image
nopcional número inteiro Número de edições a gerar. Padrão: 1

Exemplo de Requisição

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"
Resposta
{
  "created": 1699900000,
  "data": [
    {
      "url": "https://zubnet.com/files/def456.png",
      "revised_prompt": "Turn the sky into a starry night, keep everything else"
    }
  ]
}

Geração de Vídeo

POST /api/ai/videos

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.

Modelos Disponíveis

sora-2 seedance-2.0 kling-v3-pro veo-3.1-generate-001 grok-imagine-video-1.5 minimax/hailuo-2.3 pixverse-v6 vidu-q3-pro

Corpo da Requisição

Parâmetro Tipo Descrição
modelobrigatório string Modelo de vídeo a usar
promptobrigatório* string Descrição textual do vídeo. *Não obrigatório para modelos de lip-sync ou upscale
framesopcional file[] Imagens de entrada para imagem-para-vídeo. Máx. 10MB cada (jpg, png, webp)
videoopcional arquivo Vídeo de entrada para vídeo-para-vídeo. Máx. 100MB (mp4, webm, mov)
audioopcional arquivo Arquivo de áudio para modelos de lip-sync. Máx. 25MB
aspect_ratioopcional string Proporção (ex.: "16:9", "9:16", "1:1")
durationopcional número inteiro Duração do vídeo em segundos
negative_promptopcional string O que evitar no vídeo (conforme o modelo)
resolutionopcional string Resolução de saída, ex.: "480p", "720p", "1080p", "4k" (conforme o modelo)
qualityopcional string Nível qualidade/velocidade quando suportado (ex.: "speed" ou "quality")
audioopcional string "on"/"off" — áudio nativo sincronizado nos modelos compatíveis (Seedance 2.0, Kling, PixVerse, CogVideoX…)
seedopcional número inteiro Semente de reprodutibilidade quando suportada
styleopcional string Predefinição de estilo em modelos compatíveis (ex.: Vidu: "general"/"anime")
Cada modelo aceita também suas opções específicas (fps, multi_clip, mode, loop, motion_mode, proporções…) — exatamente os seletores exibidos para o modelo no app. Parâmetros desconhecidos são ignorados.

Exemplo: Texto para Vídeo

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
  }'

Exemplo: Imagem para Vídeo

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"
A geração de vídeo é assíncrona. A resposta inclui um state campo (“processando”, “concluído”, “falhou”) e uma progress de porcentagem. Consulte o endpoint da biblioteca para verificar o status de conclusão.
Resposta
{
  "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"
}

Compreensão de Vídeo

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.

POST /api/ai/video-understanding

Envie um vídeo para análise com IA. Retorna um ID de tarefa que pode ser consultado para resultados.

Corpo da Requisição

Parâmetro Tipo Descrição
video_urlobrigatório string URL HTTPS pública do vídeo a analisar
typeopcional string Tipo de análise: summary (padrão), topics, chapters, ou highlights

Exemplo de Requisição

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"
  }'
Resposta
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued"
}
GET /api/ai/video-understanding/{jobId}

Verifique o status de uma tarefa de análise de vídeo.

Resposta (concluída)
{
  "status": "completed",
  "result": {
    "type": "summary",
    "content": "The video shows a product demonstration..."
  }
}
As URLs de vídeo devem ser links HTTPS acessíveis publicamente. URLs privadas/internas são rejeitadas por segurança. Os resultados são armazenados em cache por 1 hora.

Composição Musical

POST /api/ai/compositions

Gere músicas originais a partir de descrições textuais, letras ou tags de estilo.

Modelos Disponíveis

suno/v5 lyria-3-clip-preview minimax/music-2.0 stable-audio-2

Corpo da Requisição

Parâmetro Tipo Descrição
modelobrigatório string Modelo de música a usar
promptopcional string Descrição da música ou letras a definir
tagsopcional string Tags de gênero e estilo (ex.: "lo-fi, chill, jazz")
instrumentalopcional booleano Gerar apenas instrumental (sem vocais). Padrão: false

Exemplo de Requisição

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
  }'
Os modelos Suno normalmente retornam 2 variantes de composição por requisição. Lyria retorna um único clipe de 30 segundos a 48kHz.
Resposta
[
  {
    "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
  }
]

Efeitos Sonoros

POST /api/ai/sound-effects

Gere efeitos sonoros a partir de descrições textuais.

Corpo da Requisição

Parâmetro Tipo Descrição
modelobrigatório string Modelo de efeito sonoro a usar
promptobrigatório string Descrição do efeito sonoro a gerar

Exemplo de Requisição

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"
  }'
Resposta
{
  "object": "sound_effect",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "sound-effect-model",
  "cost": 1,
  "output_file": {
    "url": "https://zubnet.com/files/abc123.mp3"
  }
}

Texto para Fala

POST /v1/audio/speech

Converta texto em áudio de fala natural usando vozes da ElevenLabs, Cartesia, Speechify e mais.

Parâmetro Tipo Descrição
modelobrigatório string Modelo de TTS (ex.: "tts-1", "tts-1-hd", "elevenlabs")
inputobrigatório string Texto para converter em fala (máx. 5000 caracteres)
voiceobrigatório string ID da voz a usar (ex.: "alloy", "echo", "nova" ou um ID de voz personalizado)
response_formatopcional string Formato de áudio: mp3, opus, aac, flac. Padrão: mp3

Exemplo de Requisição

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

Transcrição

POST /v1/audio/transcriptions

Transcreva áudio para texto.

Parâmetro Tipo Descrição
modelobrigatório string Modelo de transcrição (ex.: "whisper-1")
fileobrigatório arquivo Arquivo de áudio para transcrever. Máx. 25MB (mp3, mp4, wav, webm, ogg, flac)
languageopcional string Código do idioma (ex.: "en", "fr", "es")

Exemplo de Requisição

curl https://api.zubnet.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "model=whisper-1" \
  -F "file=@recording.mp3"
Resposta
{
  "object": "transcription",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "whisper-1",
  "content": "Hello, this is a test recording..."
}

Isolamento de Voz

POST /api/ai/isolated-voices

Extraia vocais limpos do áudio, removendo ruído de fundo e música. Powered by ElevenLabs.

Parâmetro Tipo Descrição
fileobrigatório arquivo Arquivo de áudio. Máx. 25MB (mp3, mp4, wav, m4a, webm, ogg, flac)

Exemplo de Requisição

curl https://zubnet.com/api/ai/isolated-voices \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "file=@noisy-recording.mp3"
Resposta
{
  "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ção de Faixas

POST /api/ai/stem-separations

Separe o áudio em faixas individuais (vocais, bateria, baixo, guitarra, piano, outros). Powered by ElevenLabs.

Parâmetro Tipo Descrição
fileobrigatório arquivo Arquivo de áudio. Máx. 25MB (mp3, mp4, wav, m4a, webm, ogg, flac)
stem_variationopcional string Modo de separação. Padrão: "six_stems_v1" (vocais, bateria, baixo, guitarra, piano, outros)

Exemplo de Requisição

curl https://zubnet.com/api/ai/stem-separations \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "file=@song.mp3"
Resposta
{
  "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"
  }
}

Vozes

Crie e gerencie vozes personalizadas para geração de texto para fala.

POST /api/voices

Crie uma voz personalizada fazendo upload de amostras de áudio.

GET /api/voices

Liste todas as vozes disponíveis no seu espaço de trabalho, incluindo vozes personalizadas que você criou.

PUT /api/voices/{id}

Atualize uma voz personalizada (nome, configurações).

DELETE /api/voices/{id}

Excluir uma voz personalizada.

IDs de vozes personalizadas podem ser usados no voice parâmetro do endpoint de Texto para Fala.

Embeddings

POST /v1/embeddings

Crie embeddings de texto para busca semântica e similaridade.

Parâmetro Tipo Descrição
modelobrigatório string Modelo de embedding (ex.: "text-embedding-3-small")
inputobrigatório string/array Texto para gerar embedding (string ou array de strings)

Exemplo de Requisição

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"
  }'

Bases de Conhecimento

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.

POST /api/knowledge-bases

Crie uma nova base de conhecimento.

Corpo da Requisição

Parâmetro Tipo Descrição
nameobrigatório string Nome da base de conhecimento
descriptionopcional string Descrição da base de conhecimento

Exemplo: Criar uma 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"
  }'
Resposta
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "My KB",
  "description": "Optional description",
  "status": "active"
}
GET /api/knowledge-bases

Liste todas as bases de conhecimento no seu espaço de trabalho.

Resposta
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "My KB",
    "description": "Optional description",
    "status": "active"
  },
  ...
]
GET /api/knowledge-bases/{id}

Obtenha detalhes de uma base de conhecimento específica, incluindo seus documentos.

DELETE /api/knowledge-bases/{id}

Excluir uma base de conhecimento e todos os seus documentos.

POST /api/knowledge-bases/{id}/documents

Ingira um documento em uma base de conhecimento. Suporta upload de arquivos, URLs e texto bruto.

Corpo da Requisição

Parâmetro Tipo Descrição
fileopção 1 arquivo Upload de arquivo multipart (PDF, DOCX, TXT, MD — máx. 10MB)
titleobrigatório string Título do documento (obrigatório para tipos URL e texto)
typeopção 2/3 string "url" ou "text" (para ingestão sem arquivo)
urlopção 2 string URL para buscar e ingerir (quando o tipo é "url")
contentopção 3 string Conteúdo de texto bruto para ingerir (quando o tipo é "text")

Exemplo: Ingerir um Arquivo

curl https://zubnet.com/api/knowledge-bases/550e8400-.../documents \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "file=@report.pdf"

Exemplo: Ingerir uma URL

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"
  }'

Exemplo: Ingerir Texto Bruto

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..."
  }'
GET /api/knowledge-bases/{id}/documents

Liste todos os documentos em uma base de conhecimento.

DELETE /api/knowledge-bases/{id}/documents/{docId}

Exclua um documento específico de uma base de conhecimento.

GET /api/knowledge-bases/{id}/documents/{docId}/content

Leia o conteúdo de texto extraído de um documento específico.

Reranking

POST /v1/reranking

Reordene uma lista de documentos por relevância a uma consulta. Útil para melhorar resultados de busca, pipelines RAG e sistemas de recomendação.

Modelos Disponíveis

rerank-2.5 rerank-2.5-lite jina-reranker-v3 jina-reranker-m0

Corpo da Requisição

Parâmetro Tipo Descrição
modelobrigatório string Modelo de reranking a usar
queryobrigatório string A consulta de busca para classificar documentos
documentsobrigatório array Array de strings de documentos para reordenar
top_nopcional número inteiro Número de resultados principais a retornar. Padrão: todos

Exemplo de Requisição

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
  }'
Resposta
{
  "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"
}
Os resultados são ordenados por pontuação de relevância em ordem decrescente. O index campo refere-se à posição de cada documento no array de entrada original.

Biblioteca

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.

GET /api/library/{type}

Liste itens da sua biblioteca por tipo de conteúdo.

Tipos de Conteúdo

images videos compositions sound-effects documents code-documents speeches transcriptions isolated-voices stem-separations conversations

Parâmetros de Consulta

Parâmetro Tipo Descrição
limitopcional número inteiro Resultados por página (máx. 100)
starting_afteropcional string Cursor para paginação para frente (UUID do item)
ending_beforeopcional string Cursor para paginação para trás (UUID do item)
sortopcional string Campo e direção de ordenação (ex.: "created_at:desc")
queryopcional string Busca de texto completo (máx. 255 caracteres)
modelopcional string Filtrar por modelo usado para geração
Resposta
{
  "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"
    },
    ...
  ]
}
GET /api/library/{type}/{id}

Obtenha um único item da biblioteca por ID. Este é o endpoint principal para consultando status de geração assíncrona.

Estados de Geração

Estado Valor Descrição
draft 0 Ainda não enviado
queued 1 Aguardando processamento
processing 2 Gerando no momento
completed 3 Concluído — output_file está disponível
failed 4 Falha na geração

Padrão de Consulta

# 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!)
A paginação é baseada em cursor. Use o id do último item em starting_after para obter a próxima página. Não há parâmetros de offset/página.
POST /api/library/{type}/{id}

Atualize os metadados de um item da biblioteca.

Parâmetro Tipo Descrição
titleopcional string Título do item
visibilityopcional número inteiro 0 (privado) ou 1 (público)
is_favoritedopcional booleano Adicionar ou remover dos favoritos
metaopcional objeto Metadados personalizados (gênero, humor, tags, descrição, autor, etc.)
DELETE /api/library/{type}/{id}

Excluir um item da biblioteca e seus arquivos associados.

GET /api/library/{type}/count

Obtenha a contagem total de itens para um tipo de conteúdo. Suporta os mesmos query e model filtros do endpoint de listagem.

Assistentes

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.

POST /api/assistants

Crie um novo assistente.

GET /api/assistants

Liste todos os assistentes no seu espaço de trabalho.

PUT /api/assistants/{id}

Atualize a configuração de um assistente (nome, modelo, prompt do sistema, configurações).

DELETE /api/assistants/{id}

Excluir um assistente.

Loja MCP

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.

GET /api/mcp-store/servers

Navegue pelo catálogo de servidores MCP.

Parâmetros de Consulta

Parâmetro Tipo Descrição
categoryopcional string Filtrar por categoria (search, data, developer, infrastructure, communication, commerce, creative, productivity, social, utilities)
queryopcional string Buscar por nome ou descrição
Resposta
{
  "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
    },
    ...
  ]
}
POST /api/mcp-store/activations

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.

Corpo da Requisição

Parâmetro Tipo Descrição
server_idobrigatório string UUID do servidor MCP a ativar
configopcional objeto Valores de configuração correspondentes ao config_schema do servidor

Exemplo de Requisição

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"
    }
  }'
Resposta (201 Created)
{
  "id": "act-uuid-...",
  "server_id": "550e8400-...",
  "status": 1,
  "config": {
    "api_key": "••••••••"
  },
  "server": {
    "name": "GitHub",
    ...
  },
  "created_at": "2026-03-01T12:00:00Z"
}
Campos secretos na configuração são mascarados nas respostas da API. Cada espaço de trabalho pode ativar um determinado servidor apenas uma vez. O id é o activation_id que você usa ao vincular servidores MCP a agentes.
GET /api/mcp-store/activations

Liste todos os servidores MCP ativados no seu espaço de trabalho.

PUT /api/mcp-store/activations/{id}

Atualize a configuração ou status de uma ativação.

DELETE /api/mcp-store/activations/{id}

Desative um servidor MCP do seu espaço de trabalho.

Agentes

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.

POST /api/agents

Crie um novo agente.

Corpo da Requisição

Parâmetro Tipo Descrição
nameobrigatório string Nome do agente (máx. 64 caracteres)
modelobrigatório string ID do modelo a usar (ex.: "claude-sonnet-5", "deepseek-chat")
system_promptopcional string Prompt de sistema personalizado definindo o comportamento e personalidade do agente
modeopcional string "quick" ou "advanced". Default: "quick"
avataropcional string URL do avatar (máx. 512 caracteres)

Exemplo de Requisição

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"
  }'
Resposta (201 Created)
{
  "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": []
}
GET /api/agents

Liste todos os agentes no espaço de trabalho. Suporta paginação e filtragem.

Parâmetro Tipo Descrição
limitconsulta número inteiro Resultados por página. Padrão: 25
cursorconsulta string Cursor de paginação
sortconsulta string "name", "created_at" ou "last_active_at". Padrão: "created_at"
directionconsulta string "asc" ou "desc"
statusconsulta número inteiro Filtrar por status: 0 (inativo), 1 (ativo), 2 (pausado)
Resposta
{
  "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,
      ...
    }
  ]
}
GET /api/agents/{id}

Obtenha detalhes completos de um agente específico, incluindo seus canais, servidores MCP vinculados e bases de conhecimento.

PUT /api/agents/{id}

Atualize um agente. Todos os campos são opcionais — apenas os campos fornecidos são alterados.

Corpo da Requisição

Parâmetro Tipo Descrição
nameopcional string Nome do agente (máx. 64)
modelopcional string ID do Modelo
system_promptopcional string|null Prompt de sistema (defina como null para limpar)
statusopcional número inteiro 0 (inativo), 1 (ativo) ou 2 (pausado)
modeopcional string "quick" ou "advanced"
permissionsopcional objeto Permissões do agente (veja abaixo)

Objeto de Permissões

{
  "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
    }
  }
}
DELETE /api/agents/{id}

Exclua um agente. Isso também remove todos os seus canais, gatilhos, mensagens e integrações.

Integrações

POST /api/agents/{id}/knowledge-bases

Vincule uma base de conhecimento a um agente para respostas com RAG. Body: { "knowledge_base_id": "uuid" }

DELETE /api/agents/{id}/knowledge-bases/{kid}

Desvincule uma base de conhecimento de um agente.

POST /api/agents/{id}/mcp-servers

Vincule um servidor MCP a um agente para uso estendido de ferramentas. Body: { "activation_id": "uuid" }

DELETE /api/agents/{id}/mcp-servers/{activationId}

Desvincule um servidor MCP de um agente.

GET /api/agents/{id}/messages

Recupere o histórico de conversas de um agente.

Parâmetro Tipo Descrição
limitconsulta número inteiro Número de mensagens a retornar. Padrão: 25, máx.: 100
Resposta
{
  "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
    }
  ]
}
Os agentes requerem que o recurso Agentes esteja habilitado no seu plano. Os limites do plano se aplicam ao número de agentes, canais por agente e gatilhos por agente.

Canais do Agente

Conecte agentes a plataformas de comunicação. Cada agente suporta um canal por tipo (um bot Telegram, um bot Discord).

POST /api/agents/{id}/channels

Adicione um canal de comunicação a um agente.

Corpo da Requisição

Parâmetro Tipo Descrição
typeobrigatório string "telegram" ou "discord"
tokenobrigatório string Token do bot do Telegram BotFather ou Portal de Desenvolvedor Discord (máx. 256)

Exemplo de Requisição

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..."
  }'
Resposta (201 Created)
{
  "id": "ch-uuid-...",
  "type": "telegram",
  "status": 1,
  "metadata": {},
  "last_error": null,
  "last_message_at": null,
  "created_at": 1709136000
}
Os tokens de bot são validados com a API da plataforma antes da ativação e criptografados em repouso. Para Telegram, um webhook é configurado automaticamente. Status do canal: 0 = inativo, 1 = ativo, 2 = erro.
GET /api/agents/{id}/channels

Liste todos os canais conectados a um agente.

DELETE /api/agents/{id}/channels/{channelId}

Remova um canal de um agente.

Gatilhos do 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.

POST /api/agents/{id}/triggers

Crie um gatilho automatizado para um agente.

Corpo da Requisição

Parâmetro Tipo Descrição
nameobrigatório string Nome do gatilho (máx. 128)
typeobrigatório string "scheduled" ou "event"
promptobrigatório string O prompt enviado ao agente quando o gatilho dispara
cron_expressionopcional string Agendamento cron (ex.: "0 9 * * 1-5" para dias úteis às 9h)
timezoneopcional string Fuso horário IANA para avaliação cron. Padrão: "UTC"
channel_idopcional string Canal para enviar a saída do gatilho

Exemplo: Gatilho de Resumo Diário

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"
  }'
Resposta (201 Created)
{
  "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
}
GET /api/agents/{id}/triggers

Liste todos os gatilhos de um agente.

PUT /api/agents/{id}/triggers/{triggerId}

Atualize um gatilho. Todos os campos são opcionais. Defina status como 0 para desabilitar ou 1 para habilitar.

DELETE /api/agents/{id}/triggers/{triggerId}

Excluir um gatilho.

Gatilhos agendados são executados de forma assíncrona via fila de mensagens. Cada execução verifica se o agente está ativo e se o espaço de trabalho tem créditos suficientes antes do processamento.

Espaços de Trabalho

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.

POST /api/workspaces

Crie um novo espaço de trabalho.

Parâmetro Tipo Descrição
nameobrigatório string Nome do espaço de trabalho (máx. 50 caracteres)
Resposta (201 Created)
{
  "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"
}
POST /api/workspaces/{id}

Atualize as configurações de um espaço de trabalho. Requer permissão de gerenciamento do espaço de trabalho.

Parâmetro Tipo Descrição
nameopcional string Nome do espaço de trabalho (máx. 50 caracteres)
api_spending_limitopcional número Limite mensal de gastos com API (null para ilimitado)
{provider}_api_keyopcional string Chave de API BYOK para um provedor (ex.: openai_api_key, anthropic_api_key)
DELETE /api/workspaces/{id}

Excluir um espaço de trabalho. Requer permissão de gerenciamento do espaço de trabalho.

POST /api/workspaces/{id}/invitations

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
emailobrigatório string Endereço de e-mail do usuário a convidar
DELETE /api/workspaces/{id}/invitations/{invitationId}

Cancele um convite pendente.

DELETE /api/workspaces/{id}/users/{userId}

Remova um membro do espaço de trabalho, ou saia do espaço de trabalho usando seu próprio ID de usuário.

GET /api/workspaces/{id}/logs/usage

Liste estatísticas de uso agregadas do espaço de trabalho. Suporta paginação baseada em cursor.

GET /api/workspaces/{id}/logs/usage/items

Liste entradas de uso detalhadas (itens da biblioteca concluídos com custo > 0). Cada entrada inclui tipo, modelo, título, custo e timestamp.

GET /api/workspaces/{id}/logs/usage/items/count

Obtenha a contagem total de itens de uso.

Endpoints de gerenciamento de uso e espaço de trabalho exigem workspace gerenciar permissão (proprietário ou administrador do espaço de trabalho).

Conversas

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 tipo de conteúdo.

POST /api/ai/conversations

Crie uma nova conversa. Retorna o objeto de conversa com uma lista de mensagens vazia.

Resposta
{
  "object": "conversation",
  "id": "550e8400-...",
  "title": null,
  "cost": 0,
  "messages": [],
  "created_at": "2026-03-01T12:00:00Z"
}
POST /api/ai/conversations/{id}/messages

Envie uma mensagem para uma conversa e receba uma resposta de IA via Server-Sent Events (SSE). Veja a Completions de Chat seção para detalhes do formato de eventos SSE.

Corpo da Requisição

Parâmetro Tipo Descrição
modelobrigatório string Modelo a usar para a resposta
contentopcional string Texto da mensagem
assistant_idopcional string UUID de um assistente a usar para esta mensagem
parent_idopcional string UUID de uma mensagem pai (para conversas ramificadas)
fileopcional arquivo Anexo (imagens, documentos, áudio/vídeo — máx. 25MB)
recordingopcional arquivo Gravação de voz (mp3, wav, webm, ogg — máx. 10MB)

Exemplo de Requisição

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"
  }'
As mensagens são transmitidas via SSE. Use multipart/form-data ao fazer upload de arquivos. Para listar ou excluir conversas, use a Biblioteca API com tipo conversations.

Conta

Gerencie seu perfil de usuário e gere chaves de API programaticamente.

PUT /api/account

Atualize as informações do seu perfil.

Parâmetro Tipo Descrição
first_nameopcional string Primeiro nome (máx. 50 caracteres)
last_nameopcional string Sobrenome (máx. 50 caracteres)
languageopcional string Código do idioma preferido (ex.: "en", "fr")
preferencesopcional objeto Configurações de preferências do usuário
POST /api/account/rest-api-keys

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_passwordobrigatório string Sua senha atual da conta
Resposta
{
  "id": "550e8400-...",
  "first_name": "Jane",
  "last_name": "Doe",
  "email": "jane@example.com",
  "api_key": "zub_live_a1b2c3d4e5f6..."
}
O api_key é mostrado completo apenas nesta resposta. Chamadas de API subsequentes retornam uma versão mascarada. Trate-o como uma senha.

Faturamento

Explore os planos disponíveis, veja o histórico de pedidos, inicie o checkout e gerencie assinaturas.

GET /api/billing/plans

Lista os planos de assinatura disponíveis.

Parâmetro Tipo Descrição
billing_cycleopcional string Filtrar por ciclo de faturamento
GET /api/billing/orders

Liste pedidos do espaço de trabalho atual. Suporta paginação baseada em cursor.

Parâmetro Tipo Descrição
statusopcional string Filtrar por status do pedido
billing_cycleopcional string Filtrar por ciclo de faturamento
POST /api/billing/checkout

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
idopcional string UUID do plano para assinar (obrigatório se não houver amount)
amountopcional número inteiro Valor de compra de créditos em centavos (mín. 1000, obrigatório se não houver id)
gatewayopcional string Gateway de pagamento: stripe ou paypal
DELETE /api/billing/subscription

Cancele a assinatura atual do espaço de trabalho. Requer permissão de gerenciamento do espaço de trabalho.

Denúncias de Conteúdo

Denuncie conteúdo inadequado ou que viole as políticas na biblioteca pública.

POST /api/content-reports

Envie uma denúncia de conteúdo. Cada usuário pode denunciar um determinado item apenas uma vez.

Parâmetro Tipo Descrição
item_idobrigatório string UUID do item da biblioteca a denunciar
reasonobrigatório número inteiro Código do motivo: 0 (spam), 1 (assédio), 2 (violência), 3 (conteúdo sexual), 4 (outro)
descriptionopcional string Detalhes adicionais (máx. 2000 caracteres)
Resposta (201 Created)
{
  "id": "550e8400-e29b-41d4-a716-446655440000"
}
Denúncias duplicadas (mesmo usuário + mesmo item) retornam um 409 Conflict erro.

Mais endpoints

A superfície completa vai além das seções acima. Estes endpoints estão ativos e usam a mesma autenticação:

POST /api/ai/three-dGeração de modelos 3D (Tripo, Meshy…)
POST /api/ai/tts  ·  POST /api/ai/speechesTexto para fala (superfície nativa + predefinições)
POST /api/ai/transcriptionsTranscrição de áudio em lote (seletor de modelo)
GET /api/ai/transcriptions/realtime/token  ·  POST /api/ai/transcriptions/realtime/saveTranscrição ao vivo do microfone (token de sessão + salvar)
POST /api/ai/translations  ·  GET /api/ai/translation-languagesTradução de texto + idiomas suportados
POST /api/ai/document-extractionsExtração de texto de documentos (OCR)
GET /api/ai/video-understanding/{jobId}Status da análise de vídeo
/api/library-stacksStacks da biblioteca (coleções) — CRUD completo
/api/chatroomSalas de equipe (conversas de IA compartilhadas)
/api/automationFluxos de automação (criar + executar)

Erros

A API usa códigos de status HTTP padrão e retorna mensagens de erro detalhadas.

Código Descrição
400 Requisição Inválida — Parâmetros inválidos
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 — O arquivo excede o limite de tamanho
429 Muitas Requisições — Limite de taxa excedido
500 Erro Interno do Servidor
503 Serviço Indisponível — Sobrecarga temporária
Formato de Resposta de Erro
{
  "error": {
    "message": "Invalid API key provided",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}

Limites de Requisição

Os limites de requisição variam por plano. Cabeçalhos são incluídos em cada resposta:

Cabeçalho Descrição
X-RateLimit-Limit Requisições permitidas por minuto
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.

Precisa de Ajuda?

Estamos Aqui por Você

Dúvidas sobre a API? Confira nosso FAQ ou entre em contato diretamente.