Skip to main content

O que é

Esta é a referência de todos os endpoints disponíveis para quem integra com o Symphony usando chave de API. Cada endpoint traz o método, o caminho, os parâmetros, um exemplo de chamada e o formato da resposta. Se é a sua primeira vez, comece por Conectar via API. Para entender como combinar esses endpoints num projeto real, veja Criando projetos com a API.

1. Antes de começar

Endereço base

Para testes, veja Ambientes e suporte.

Headers

Todos os endpoints desta página, exceto os da seção 10. Status do serviço, exigem: Não envie cookies nem token CSRF. Eles não são necessários com chave de API.

O que a sua chave pode fazer

A chave tem exatamente os mesmos acessos da sua conta: os mesmos modelos, agentes, bases de conhecimento, fluxos, permissões e limite de consumo. Se você não consegue fazer algo pela interface, também não vai conseguir pela API. Algumas ações dependem de permissão dada pelo administrador da empresa (por exemplo, criar bases de conhecimento). Consulte as suas em GET /api/v1/users/permissions.

Convenções

  • Datas são números inteiros em epoch (segundos desde 01/01/1970, UTC), salvo indicação contrária.
  • IDs são strings. Copie-os exatamente como vieram.
  • Paginação por cursor: endpoints de lista devolvem { "items": [...], "next_cursor": "..." }. Para buscar a próxima página, repita a chamada com ?cursor=<next_cursor>. Quando next_cursor vier null, acabou. O limit aceita de 1 a 200.
  • Erros seguem um formato único, descrito em Erros e limites.

2. Conta e chave de API

GET /api/v1/auths/api_key

Retorna a sua chave de API atual.
Retorna 404 se você ainda não gerou nenhuma chave.

POST /api/v1/auths/api_key

Gera uma nova chave. A chave anterior para de funcionar na hora.
Retorna 403 se a geração de chaves estiver desativada no ambiente.

DELETE /api/v1/auths/api_key

Revoga a sua chave. Retorna true. Depois disso, nenhuma chamada com ela funciona.
Gerar e revogar normalmente é feito pela interface (Configurações → Conta → Chaves de API). Estes endpoints existem para quem precisa automatizar a rotação.

GET /api/v1/auths/

Retorna os dados da conta dona da chave.
A resposta também traz os campos token, token_type e expires_at. Eles servem para a sessão do navegador e não são necessários para quem usa chave de API.

GET /api/v1/users/permissions

Retorna o que a sua conta pode fazer.

GET /api/v1/consumption/me

Retorna o seu consumo do mês e a situação do seu limite.
Com status em reached ou blocked, as chamadas de chat retornam 402. Use este endpoint antes de lotes grandes.

3. Modelos e agentes

GET /api/models

Lista os modelos e agentes que a sua conta pode usar na empresa informada em X-Enterprise-Id.
  • O id é o valor que vai no campo model do chat.
  • Itens com info.base_model_id são agentes: já vêm com prompt, bases e ferramentas configurados na plataforma.
  • A lista já vem filtrada pelo que você pode usar. Modelos desativados ou não compartilhados com você não aparecem.

4. Chat

POST /api/chat/completions

Envia mensagens para um modelo ou agente e recebe a resposta. Compatível com a API de chat completions da OpenAI. Campos obrigatórios Campos opcionais: geração Campos opcionais: ferramentas e contexto Campos opcionais: histórico na plataforma Exemplo
Resposta (200)
Streaming. Com "stream": true, a resposta chega como linhas data: {...}, cada uma com um pedaço em choices[0].delta.content, e termina com data: [DONE]. Um erro pode chegar dentro do fluxo, depois do 200 OK. Veja a seção 6 de Criando projetos com a API. Histórico automático. Se você enviar um chat_id e nenhuma mensagem com role: "assistant", o Symphony recupera o histórico gravado daquela conversa e o coloca antes da sua mensagem. Assim você mantém uma conversa longa enviando só a pergunta nova. Se o seu array tiver alguma mensagem assistant, o Symphony entende que você controla o histórico e não injeta nada. Erros específicos deste endpoint

POST /api/responses

Versão compatível com a Responses API da OpenAI, para ferramentas que só falam esse formato. Aceita input (texto ou lista) no lugar de messages e responde em streaming no formato da Responses API.
Em integrações novas, use POST /api/chat/completions. Este endpoint existe só para compatibilidade.

5. Arquivos

POST /api/v1/files/

Envia um arquivo. O corpo é multipart/form-data, com o arquivo no campo file.
A resposta chega antes de o arquivo estar pronto. A leitura (extração de texto, OCR) continua em segundo plano. Antes de usar o arquivo, consulte GET /api/v1/files/{id} até data.status virar ready. Anexar um arquivo ainda em processing faz o modelo responder como se o documento estivesse vazio.

GET /api/v1/files/{id}

Retorna os dados do arquivo, incluindo o status do processamento. PDFs grandes ou digitalizados podem levar alguns minutos. Faça a consulta em intervalos (por exemplo, a cada 3 segundos) com um tempo máximo de espera.

GET /api/v1/files/

Lista os seus arquivos.

GET /api/v1/files/search

Busca arquivos pelo nome.

GET /api/v1/files/{id}/content

Baixa o arquivo original.

DELETE /api/v1/files/{id}

Apaga o arquivo. Retorna { "message": "File deleted successfully" }. Só o dono, ou quem tem permissão de escrita, pode apagar.

6. Bases de conhecimento

Uma base de conhecimento agrupa vários arquivos para que o modelo consulte só os trechos relevantes a cada pergunta. Para usar uma base no chat, envie "files": [{ "type": "collection", "id": "<id da base>" }], ou use um agente que já tenha a base configurada. Fluxo completo pela API:
1

Crie a base

POST /api/v1/knowledge/create
2

Envie cada arquivo

POST /api/v1/files/ e espere o status ready.
3

Adicione os arquivos à base

POST /api/v1/knowledge/{id}/file/add
4

Use no chat

files: [{ "type": "collection", "id": "..." }]

GET /api/v1/knowledge/list/compact

Lista as bases que você enxerga, com paginação por cursor.
can_write indica se você pode alterar a base.

GET /api/v1/knowledge/count

Retorna o total de bases que você enxerga: { "total": 8 }.

GET /api/v1/knowledge/{id}

Retorna a base completa, com a lista de arquivos (files).

POST /api/v1/knowledge/create

Cria uma base. Exige a permissão workspace.knowledge. Sem ela, retorna 401.
Retorna a base criada, com o id.

POST /api/v1/knowledge/{id}/update

Altera nome, descrição ou acesso. Mesmo corpo do create. Exige permissão de escrita na base.

POST /api/v1/knowledge/{id}/file/add

Adiciona um arquivo já enviado (e com status ready) à base.
Retorna a base atualizada, com a lista de arquivos.

POST /api/v1/knowledge/{id}/files/batch/add

Adiciona vários arquivos de uma vez.

POST /api/v1/knowledge/{id}/file/remove

Remove um arquivo da base.

DELETE /api/v1/knowledge/{id}/delete

Apaga a base. Os arquivos continuam existindo em /api/v1/files/. Retorna true.

7. Conversas

Por padrão, chamadas de chat não são gravadas. Use estes endpoints quando quiser que as conversas do seu projeto fiquem no histórico da plataforma, onde podem ser auditadas ou continuadas pela interface.

POST /api/v1/chats/new

Cria uma conversa vazia.
Retorna a conversa criada. Guarde o id e envie-o como chat_id em POST /api/chat/completions.

GET /api/v1/chats/list/cursor

Lista as suas conversas, das mais recentes para as mais antigas.

GET /api/v1/chats/search

Busca conversas pelo texto. Retorna [{ "id", "title", "created_at", "updated_at" }].

GET /api/v1/chats/{id}

Retorna a conversa completa, com todas as mensagens em chat.history.messages. Só funciona para as suas conversas.

DELETE /api/v1/chats/{id}

Apaga a conversa. Retorna true.

8. Fluxos (Workflows)

Fluxos são sequências de etapas montadas na interface do Symphony (por exemplo: ler um documento → resumir com um agente → classificar). Pela API você lista, executa e acompanha os fluxos que tem permissão para usar. Como funciona uma execução: a chamada de execução responde na hora com um run_id. O fluxo roda em segundo plano, e você consulta o resultado até ele terminar.

GET /api/v1/workflows/list

Lista os fluxos que você pode usar, com paginação por cursor.

GET /api/v1/workflows/workflow?id={id}

Retorna o fluxo completo, incluindo as etapas (graph).

POST /api/v1/workflows/workflow/run?id={id}

Executa o fluxo. O corpo é opcional e define a entrada da primeira etapa:
Retorna 429 se a sua empresa já iniciou o máximo de execuções permitido no último minuto (hoje, 30). Espere alguns segundos e tente de novo.

GET /api/v1/workflows/runs/detail?run_id={run_id}

Retorna a execução, com o resultado de cada etapa. É este endpoint que você consulta até a execução terminar.

GET /api/v1/workflows/workflow/runs?id={id}

Lista as execuções de um fluxo, sem o detalhe das etapas.

POST /api/v1/workflows/runs/cancel?run_id={run_id}

Pede o cancelamento de uma execução em andamento. Retorna true. Só quem iniciou a execução pode cancelá-la.

9. Áudio

POST /api/v1/audio/transcriptions

Transcreve um áudio para texto. O corpo é multipart/form-data, com o áudio no campo file.
  • Formatos aceitos: MP3 (audio/mpeg), WAV (audio/wav), OGG (audio/ogg) e M4A (audio/x-m4a).
  • Tamanho: áudios acima de 25 MB são comprimidos automaticamente. Se ainda passarem do limite, retornam FILE_TOO_LARGE.

POST /api/v1/audio/speech

Converte texto em fala. Retorna o áudio em MP3.
O modelo de voz é definido pela configuração da sua empresa. Pedidos idênticos são servidos do cache e não contam no limite.

GET /api/v1/audio/voices

Lista as vozes disponíveis: { "voices": [{ "id": "alloy", "name": "alloy" }] }.

GET /api/v1/audio/models

Lista os modelos de voz disponíveis: { "models": [...] }.
Limite: transcrição e fala aceitam, cada uma, até 30 chamadas por minuto por empresa. Acima disso, retornam 429.

10. Status do serviço

Estes endpoints não precisam de autenticação.

11. O que não faz parte da API pública

Os endpoints abaixo existem, mas não são suportados para integração. Eles podem mudar ou ser removidos sem aviso, ou exigem um perfil que contas de integração não têm:
  • Administração da plataforma (/api/v1/admin/..., gestão de usuários, empresas, grupos, modelos e consumo de terceiros): exige perfil de administrador e é feita pela interface.
  • Login por senha e SSO (/api/v1/auths/signin, /signup, /api/v1/auth/sso/...): use a chave de API.
  • Rotas internas da interface: configurações de tela, sugestões, banners, avaliações, geração automática de títulos e tags, e GET /api/config, que não aceita chave de API.
  • Acesso direto aos provedores de IA (/openai/..., /ollama/...): use POST /api/chat/completions.
  • Geração de imagem direta (/api/v1/images/...): gere imagens pelo chat, com features.image_generation: true.
  • Ingestão e consulta vetorial direta (/api/v1/retrieval/...): use bases de conhecimento e o campo files do chat.
  • Gerenciamento de tarefas (/api/tasks/...): para interromper uma resposta em streaming, feche a conexão.
Se o seu caso de uso precisa de algo que não está nesta página, fale com o time do Symphony. Veja Ambientes e suporte.

Documentos relacionados