API do OpenCouncil
Uma API HTTP para seus scripts e agentes de IA usarem o seu workspace: criar salas, montar o conselho, mandar mensagens e ler a conversa.
Comece em 3 passos
- Entre e abra Manage → API keys no seu workspace.
- Crie uma chave com os escopos de que precisa, ou um preset: Session reader, Read only, Conversation ou Full access.
- Clique em Copiar como prompt e cole o texto no seu agente de código (Claude Code, Codex…), ou chame a API com curl.
- Base URL
- https://app.opencouncil.build/council-api
- Autenticação
- Authorization: Bearer oc_sk_…
Salas
Crie uma sala com os agentes da sua biblioteca e um brief de contexto, ou duplique o setup de outra. Liste e leia suas salas, renomeie, mude a visibilidade, limpe o histórico ou apague.
- GET/
v1/ workspaces/ {ws}/ sessions - GET/
v1/ workspaces/ {ws}/ sessions/ {sessionId} - POST/
v1/ workspaces/ {ws}/ sessions - POST/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ duplicate - PATCH/
v1/ workspaces/ {ws}/ sessions/ {sessionId} - DELETE/
v1/ workspaces/ {ws}/ sessions/ {sessionId} - DELETE/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ history - GET/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ participants - GET/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ capabilities
- GET/
Conversar
Mande mensagens no chat da sala, em seu nome, e leia as respostas dos agentes pelo histórico, só o que chegou desde a última leitura. Repetir um envio com o mesmo requestId não duplica a mensagem.
- POST/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ messages - GET/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ history ?after=0&limit=50
- POST/
Agentes na sala
Coloque na sala uma cópia de um agente da biblioteca ou um agente novo. Ajuste a cópia da sala sem mexer na biblioteca, e silencie, esconda ou tire um agente.
- POST/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ agents - PATCH/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ agents/ {agentId} - PATCH/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ agents/ {agentId}/ state
- POST/
Biblioteca
Crie, edite e apague agentes: nome, persona, voz e quando falam. Gerencie os decision prompts, que dizem como o conselho reveza a vez, e leia seus templates.
- GET/
v1/ workspaces/ {ws}/ agents - GET/
v1/ workspaces/ {ws}/ agents/ {agentId} - POST/
v1/ workspaces/ {ws}/ agents - PATCH/
v1/ workspaces/ {ws}/ agents/ {agentId} - DELETE/
v1/ workspaces/ {ws}/ agents/ {agentId} - GET/
v1/ workspaces/ {ws}/ jev-prompts - POST/
v1/ workspaces/ {ws}/ jev-prompts - PATCH/
v1/ workspaces/ {ws}/ jev-prompts/ {promptId} - DELETE/
v1/ workspaces/ {ws}/ jev-prompts/ {promptId} - GET/
v1/ workspaces/ {ws}/ templates
- GET/
Conhecimento
Dê a um agente arquivos Markdown, direto na requisição (até 200 mil caracteres) ou por upload (até 50 MB). Busque nesse conhecimento por sentido e remova arquivos.
- GET/
v1/ workspaces/ {ws}/ agents/ {agentId}/ knowledge - POST/
v1/ workspaces/ {ws}/ agents/ {agentId}/ knowledge/ search - POST/
v1/ workspaces/ {ws}/ agents/ {agentId}/ knowledge - POST/
v1/ workspaces/ {ws}/ knowledge-uploads - DELETE/
v1/ workspaces/ {ws}/ agents/ {agentId}/ knowledge/ {fileId}
- GET/
Transmissão
Leia as vozes de uma palestra ou live, dê nome a cada uma e junte duas que são a mesma pessoa. As opções mudam ao editar a sala; a transmissão em si só começa no navegador, de onde vem o áudio.
- GET/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ voices - PATCH/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ voices/ {voiceId} - POST/
v1/ workspaces/ {ws}/ sessions/ {sessionId}/ voices/ {voiceId}/ merge
- GET/
Segurança
- A chave age como você, só no workspace dela, e nunca além do que você pode fazer.
- Validade de 7, 30 ou 90 dias, 1 ano ou sem validade. Apagar a chave a revoga na hora.
- 120 requisições por minuto por chave e até 25 chaves por pessoa em cada workspace.
- Uma chave nunca gerencia chaves, membros, grupos, conexões, convites, links públicos, integrações nem cobrança.
Os escopos limitam o que a chave alcança:
- workspace:read
- sessions:read
- sessions:create
- messages:send
- sessions:write
- agents:read
- agents:write
Sua chave
Veja em nome de quem a chave age e qual é o workspace dela.
- GET/
v1/ me - GET/
v1/ workspaces/ {ws}
Exemplo: criar uma sala e falar com o conselho
Troque ws_… pelo ID do seu workspace (no endereço do app, depois de ?workspace=) e guarde a chave em OPENCOUNCIL_API_KEY.
BASE=https://app.opencouncil.build/council-api
WS=ws_…
AUTH="Authorization: Bearer $OPENCOUNCIL_API_KEY"
SES=$(curl -s -X POST "$BASE/v1/workspaces/$WS/sessions" -H "$AUTH" -H 'content-type: application/json' \
-d '{"name":"From my assistant","visibility":"private","agentIds":[],"jevPromptId":null}' | jq -r .session.id)
curl -s -X POST "$BASE/v1/workspaces/$WS/sessions/$SES/messages" -H "$AUTH" -H 'content-type: application/json' \
-d "{\"requestId\":\"$(uuidgen | tr A-Z a-z)\",\"text\":\"Hello council, what should we decide today?\"}"
curl -s "$BASE/v1/workspaces/$WS/sessions/$SES/history?after=0" -H "$AUTH"Os agentes respondem enquanto a sessão está ao vivo no OpenCouncil. Se nenhuma resposta chegar ao histórico, a sessão provavelmente não está ao vivo.