- Start Runs
- Manage Agents
- Review Cases
- Move Files in and out of Duvo
- Manage Connections
Authentication
The API authenticates requests with an API key.- Generate a key in the Duvo dashboard at Your Profile → API keys. Choose whether the key is scoped to a single team or works across all teams you can access. Users with the Manager role or above can also create keys for a specific team at Team Settings → API keys.
-
Send the key as a bearer token on every request:
Base URL and versioning
The current version of the API is v2. All endpoints are served under:/teams/{teamId}/...); list the teams your key can act on with GET /teams. Endpoints exposed as MCP tools are listed in Available MCP Tools.
v1 is deprecated and will be sunset on 15 June 2026 — new integrations
should target
/v2.Endpoints
Agents
Setups
Runs
Files
Cases and Queues
Case Labels
Case Triggers
Connections
On the probe endpoint, a
success: false response includes a code: listing_unavailable means there’s nothing to list yet for that connection (not an error — some connections only expose tools once connected), while probe_failed means the probe genuinely failed.Skills
Secrets and Logins
Schedules
GET /agents/{agent_id}/schedules returns only the schedules the calling key’s user owns, whatever that user’s role. GET /agents/{agent_id}/schedules/all is the carve-out for elevated team roles: it returns every team member’s schedules on the Agent, each row carrying the user_name and user_email of the member who created it. A caller without an elevated role receives 403.
The all-users response is bounded, so it also carries a truncated boolean. It is false for every Agent within normal usage. When it is true, the Agent has more schedules than one response can carry, the rows returned are the oldest by created_at, and the rest are omitted — check it before treating the list as a complete audit.