Developers
Everything in the console is available to your code
Start tasks from your own systems, follow them live, and answer approvals where your team already works. The same rules, checks and history apply however a task was started.
curl -X POST https://api.dutycaptain.com/tasks \
-H "Authorization: Bearer $DUTYCAPTAIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"objective": "Pull last month's Shopify orders, build the sales workbook and email it to our accountant",
"budget": { "usd": 2, "steps": 40 }
}'
# Watch it run
curl -N https://api.dutycaptain.com/tasks/$TASK_ID/events
# Approve the pending email, for this task only
curl -X POST https://api.dutycaptain.com/approvals/$APPROVAL_ID/decide \
-d '{ "granted": true, "scope": "task" }'A task is one sentence and, optionally, its limits. DutyCaptain plans it, and the event stream reports each step as it happens — so your dashboard can show exactly what the console shows.
Ways in
Drive DutyCaptain from your own systems, or be told when it needs you.
- Tasks API
- Create a task from a sentence, set its spending limits, pause, resume or cancel it, and fetch its history.
- POST /tasks
- Live events
- A stream of everything as it happens: the plan, each step, each check, each approval request.
- GET /tasks/:id/events
- Approvals
- Answer an approval from your own system — once, for this task, or always.
- POST /approvals/:id/decide
- Webhooks and API keys
- Be told when a task finishes or needs you, and give your own systems their own keys.
- task.finished
- Your own tools (coming)
- Tool servers you already run can be added as connected services, with no change to how tasks are planned.
- MCP
Failure handling you do not have to write
Long tasks fail in the middle. DutyCaptain assumes it, and recovers step by step rather than starting again.
Repair before replanning
A broken step is fixed where it stands. The whole plan is only rethought when the plan itself was wrong.
A simpler route, then a harder one
A step that keeps failing by one route is tried by the next, and every move between routes is recorded.
Survives a restart
Task state is saved after every step, so a server that stops mid-task is replaced and the task continues from where it was.
Never twice
Every instruction to your computer carries its own identity, so a dropped connection cannot send the same email twice.
Get API access
Early-access accounts include API keys. Tell us what you want to connect DutyCaptain to.