Skip to main content

format: md

Cowork / Dispatch (Environments Bridge)

Endpoints para gerenciar a bridge entre ambientes locais (Claude Code) e o servidor Anthropic, permitindo comunicação bidirecional via CCR (Code-Context-Reasoning).


format: md

POST /v1/environments/bridge

POST /v1/environments/bridge

Registra um environment local na bridge, estabelecendo a conexão inicial com o servidor.

Headers

HeaderValorObrigatório
AuthorizationBearer <token>Sim
x-environment-runner-version<version>Sim
Anthropic-Worker-ID<worker_id>Sim
X-Trusted-Device-Token<device_token>Sim

Request Body

{
"machine_name": "macbook-pro",
"directory": "/home/user/project",
"metadata": {"os": "macos"},
"environment_id": "env_abc"
}

Response

{
"environment_id": "env_abc"
}

Exemplo curl

curl -X POST http://localhost:4000/v1/environments/bridge \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ANTHROPIC_API_KEY" \
-H "x-environment-runner-version: 1.0.0" \
-H "Anthropic-Worker-ID: worker_abc" \
-H "X-Trusted-Device-Token: token_abc" \
-d '{
"machine_name": "macbook-pro",
"directory": "/home/user/project",
"metadata": {"os": "macos"},
"environment_id": "env_abc"
}'

Códigos de Erro

CódigoSignificado
400Body inválido ou headers faltando
401Token ausente ou inválido
403Proibido (sem permissão para bridge)
409Environment já registrado
500Erro interno

format: md

GET /v1/environments//work/poll

GET /v1/environments//work/poll

Polling para fila de trabalho do environment. Usado pelo cliente para buscar novas tarefas.

Headers

HeaderValorObrigatório
AuthorizationBearer <token>Sim

Parâmetros Path

ParâmetroTipoDescrição
env_idstringID do environment registrado

Response

{
"id": "work_abc",
"data": {
"type": "session",
"id": "session_abc"
}
}

Exemplo curl

curl -X GET "http://localhost:4000/v1/environments/env_abc/work/poll" \
-H "Authorization: Bearer $ANTHROPIC_API_KEY"

Códigos de Erro

CódigoSignificado
401Não autorizado
404Environment não encontrado
500Erro interno

format: md

POST /v1/environments/&#123;env_id&#125;/work/&#123;work_id&#125;/ack

POST /v1/environments/&#123;env_id&#125;/work/&#123;work_id&#125;/ack

Confirma o recebimento e início do processamento de um trabalho.

Headers

HeaderValorObrigatório
AuthorizationBearer <token>Sim

Parâmetros Path

ParâmetroTipoDescrição
env_idstringID do environment
work_idstringID do trabalho

Request Body

{}

Exemplo curl

curl -X POST "http://localhost:4000/v1/environments/env_abc/work/work_abc/ack" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ANTHROPIC_API_KEY" \
-d '{}'

Códigos de Erro

CódigoSignificado
401Não autorizado
404Environment ou trabalho não encontrado
409Conflito (ack já processado)
500Erro interno

format: md

POST /v1/environments//work//stop

POST /v1/environments//work//stop

Solicita a parada de um trabalho em execução no environment.

Headers

HeaderValorObrigatório
AuthorizationBearer <token>Sim

Parâmetros Path

ParâmetroTipoDescrição
env_idstringID do environment
work_idstringID do trabalho a parar

Request Body

{
"force": true
}

Exemplo curl

curl -X POST "http://localhost:4000/v1/environments/env_abc/work/work_abc/stop" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ANTHROPIC_API_KEY" \
-d '{"force": true}'

Códigos de Erro

CódigoSignificado
401Não autorizado
404Environment ou trabalho não encontrado
500Erro interno

format: md

DELETE /v1/environments/bridge/&#123;environment_id&#125;

DELETE /v1/environments/bridge/&#123;environment_id&#125;

Remove o registro de bridge de um environment, encerrando a conexão.

Headers

HeaderValorObrigatório
AuthorizationBearer <token>Sim

Parâmetros Path

ParâmetroTipoDescrição
environment_idstringID do environment a remover

Exemplo curl

curl -X DELETE "http://localhost:4000/v1/environments/bridge/env_abc" \
-H "Authorization: Bearer $ANTHROPIC_API_KEY"

Códigos de Erro

CódigoSignificado
401Não autorizado
404Environment não encontrado
500Erro interno

format: md

POST /v1/environments//bridge/reconnect

POST /v1/environments//bridge/reconnect

Reconecta um environment à bridge após desconexão temporária.

Headers

HeaderValorObrigatório
AuthorizationBearer <token>Sim
x-environment-runner-version<version>Sim

Parâmetros Path

ParâmetroTipoDescrição
env_idstringID do environment

Request Body

{
"session_id": "session_abc"
}

Exemplo curl

curl -X POST "http://localhost:4000/v1/environments/env_abc/bridge/reconnect" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ANTHROPIC_API_KEY" \
-H "x-environment-runner-version: 1.0.0" \
-d '{"session_id": "session_abc"}'

Códigos de Erro

CódigoSignificado
401Não autorizado
404Environment não encontrado
409Sessão já ativa ou conflitante
500Erro interno

format: md

GET /v1/environment_providers/private/organizations/&#123;org_uuid&#125;/environments

GET /v1/environment_providers/private/organizations/&#123;org_uuid&#125;/environments

Lista environments de uma organização.

Headers

HeaderValorObrigatório
AuthorizationBearer <token>Sim

Parâmetros Path

ParâmetroTipoDescrição
org_uuidstringUUID da organização

Parâmetros Query

ParâmetroTipoDescriçãoPadrão
limitintegerNúmero máximo de resultados100
included_worker_typesstringFiltro por tipo de workercowork

Exemplo curl

curl -X GET "http://localhost:4000/v1/environment_providers/private/organizations/org_uuid_abc/environments?limit=100&included_worker_types=cowork" \
-H "Authorization: Bearer $ANTHROPIC_API_KEY"

Códigos de Erro

CódigoSignificado
401Não autorizado
404Organização não encontrada
500Erro interno

format: md

POST /v1/sessions (CCR)

POST /v1/sessions

Cria uma sessão CCR (Code-Context-Reasoning) vinculada a um environment bridge. Requer beta header ccr-byoc-2025-07-29.

Headers

HeaderValorObrigatório
AuthorizationBearer <token>Sim
anthropic-betaccr-byoc-2025-07-29Sim
anthropic-client-featureccrSim
x-organization-uuid<org_uuid>Sim
x-environment-runner-version<version>Sim

Request Body

{
"title": "CCR Session",
"events": [],
"environment_id": "env_abc",
"session_context": {
"sources": []
},
"tags": ["dev"]
}

Response

{
"id": "cse_abc"
}

Exemplo curl

curl -X POST http://localhost:4000/v1/sessions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ANTHROPIC_API_KEY" \
-H "anthropic-beta: ccr-byoc-2025-07-29" \
-H "anthropic-client-feature: ccr" \
-H "x-organization-uuid: org_abc" \
-H "x-environment-runner-version: 1.0.0" \
-d '{
"title": "CCR Session",
"events": [],
"environment_id": "env_abc",
"session_context": {"sources": []},
"tags": ["dev"]
}'

Códigos de Erro

CódigoSignificado
400Body inválido
401Não autorizado
403Proibido (beta não habilitado)
404Environment não encontrado
500Erro interno

format: md

Bridge WebSocket Handshake

O handshake WebSocket da bridge segue um fluxo de 3 etapas para estabelecer comunicação full-duplex com o worker:

Etapa 1: Solicitar JWT de Worker

POST /v1/code/sessions/&#123;id&#125;/bridge

Obtém o token JWT e URL base para o worker se registrar.

HeaderValorObrigatório
AuthorizationBearer <token>Sim

Response:

{
"worker_jwt": "eyJhbGciOiJIUzI1NiIs...",
"api_base_url": "https://worker-api.anthropic.com",
"worker_epoch": 1720000000
}

Etapa 2: Registrar Worker

POST &#123;api_base_url&#125;/v1/code/sessions/&#123;id&#125;/worker/register

Registra o worker no serviço de backend.

HeaderValorObrigatório
AuthorizationBearer <ingress_token>Sim

Response:

{
"status": "registered"
}

Etapa 3: Conectar WebSocket

WebSocket: &#123;api_base_url&#125;`/v1/code/sessions/{id}``/worker/events/stream`

HeaderValorObrigatório
AuthorizationBearer <ingress_jwt>Sim
Content-Typeapplication/jsonSim
anthropic-version2023-06-01Sim

Após conectado, o worker pode enviar e receber eventos JSON pelo WebSocket, incluindo heartbeats, tool calls, e updates de sessão.