Darwin’s primary public contract has seven focused endpoints:
POST /api/v2/search finds executable public capabilities.
POST /api/v2/actions starts durable work.
GET /api/v2/actions/{actionId} gets its current state.
GET /api/v2/actions lists current actions.
PATCH /api/v2/actions/{actionId} updates an action.
POST /api/v2/actions/{actionId}/approve applies an exact reviewed decision.
POST /api/v2/actions/{actionId}/stop stops the current queued or running Turn.
The detailed goals, conversations, Turns, approvals, transactions, Host, and Account routes still support Darwin and compatibility clients. They are not part of the primary developer API.
Keep API keys on a trusted server. Browser and mobile applications should use Darwin OAuth rather than embedding a
server key.
REST
Use the returned capabilityId and capabilityRevision without re-searching from prose:
npm
PyPI
Action operations
Use startAction, getAction, listActions, updateAction, approveAction, or stopAction in TypeScript and the matching snake-case names in Python. Mutations require a stable requestId. An approval requires the exact revision and payload digest returned by Get action; stale or changed approvals fail closed.
See the API Reference for the complete request and response schemas.