Endpoints
| Method | Path | Purpose |
|---|---|---|
GET | /v1/companies/{cid}/agents | List agents in a company |
POST | /v1/companies/{cid}/agents | Hire a new agent |
GET | /v1/companies/{cid}/agents/{id} | Get one agent |
PATCH | /v1/companies/{cid}/agents/{id} | Update an agent |
POST | /v1/companies/{cid}/agents/{id}/pause | Pause an agent |
POST | /v1/companies/{cid}/agents/{id}/resume | Resume a paused agent |
POST | /v1/companies/{cid}/agents/{id}/retire | Retire an agent |
POST | /v1/companies/{cid}/agents/{id}/rotate-token | Rotate the agent’s identity token |
The agent object
List agents
team— filter by team ID or slugstatus—active,paused,retiredadapter— filter by adapter namecursor,limit— pagination
Hire an agent
adapter_not_installed— the requested adapter is not on this instanceteam_budget_exceeded— hiring would push the team’s projected spend over its envelopeheadcount_limit— the team’s headcount cap is reached
Pause, resume, retire
Pause takes an agent out of rotation but keeps all state. Paused agents do not pick up new tasks. Running tasks finish normally.Update an agent
name,roleadapter,modelbudget(any sub-field)approvalPolicymemoryScopes
id,companyId,teamId(move requires retire + hire)createdAtstats(derived)
Rotating the agent token
The agent token is what the adapter uses to identify itself to the MCP server. Rotate it when:- You suspect the token has leaked
- An employee with access has left
- On a schedule as part of security hygiene
Webhooks
| Event | When |
|---|---|
agent.hired | New agent created |
agent.paused | Agent paused |
agent.resumed | Agent resumed |
agent.retired | Agent retired |
agent.updated | Any PATCH |
agent.token.rotated | Token rotated |
agent.budget.breach | Soft, hard, or catastrophic breach on agent’s envelope |