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
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 emGET /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>. Quandonext_cursorviernull, acabou. Olimitaceita 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.
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.
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 campomodeldo chat. - Itens com
info.base_model_idsã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
200)
"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.
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/create2
Envie cada arquivo
POST /api/v1/files/ e espere o status ready.3
Adicione os arquivos à base
POST /api/v1/knowledge/{id}/file/add4
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.
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.
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 umrun_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:
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/...): usePOST /api/chat/completions. - Geração de imagem direta (
/api/v1/images/...): gere imagens pelo chat, comfeatures.image_generation: true. - Ingestão e consulta vetorial direta (
/api/v1/retrieval/...): use bases de conhecimento e o campofilesdo chat. - Gerenciamento de tarefas (
/api/tasks/...): para interromper uma resposta em streaming, feche a conexão.