Developer platform · v2

Reference

View as MarkdownAll docs

API reference

One page per resource#

Generated from the backend's published OpenAPI document — regenerate with npm run api:reference, and npm run test:contract fails when it drifts. Each page lists every operation with its door, parameters, request and response fields, declared errors, and a runnable curl example.

ResourceOperationsWhat it is for
Projects API7A project is the isolation boundary: credentials, keys, agents, numbers, sessions and webhooks all belong to exactly one.
API keys3Project-scoped machine keys.
Provider accounts13Your own AI credentials, encrypted per project.
Agents API34An agent is the frozen configuration a call runs against: pipeline, prompt, language, limits and webhook.
Knowledge bases24Documents your agents answer from.
Chat API8Typed chats with an agent, from your web chat or your own app.
Chat channels12Connect a channel of your own to one of your agents, and the agent answers everyone who writes to it: a Telegram bot made with @BotFather (its webhook is set for you), or a WhatsApp number or Instagram professional account on your own Meta app (paste the response's webhook_url and meta.verify_token into the app's webhook settings).
Voice sessions10One session is one call.
Carriers and numbers22Bring your own telephony account.
Call lists40Upload people to call (CSV, Excel, a Google Sheet or JSON rows), pick an agent and a phone line, set calling hours and start.
Webhooks API10Signed, retried event delivery per project.
Billing API8A prepaid USD wallet per account.

Every operation#

Projects API#

MethodPathDoorScope
GET`/v2/project/retention`project keyproject:read
GET`/console/v2/projects/{project_id}/retention`account session—
PUT`/console/v2/projects/{project_id}/retention`account session—
POST`/console/v2/projects/{project_id}/stored-conversations/delete`account session—
GET`/v2/projects`account session—
POST`/v2/projects`account session—
GET`/v2/projects/{project_id}`account session—

API keys#

MethodPathDoorScope
GET`/v2/api-keys`account session—
POST`/v2/api-keys`account session—
DELETE`/v2/api-keys/{key_id}`account session—

Provider accounts#

Agents API#

MethodPathDoorScope
GET`/v2/agents`project keyvoice:read
POST`/v2/agents`project keyvoice:write
DELETE`/v2/agents/{agent_id}`project keyvoice:write
GET`/v2/agents/{agent_id}`project keyvoice:read
PATCH`/v2/agents/{agent_id}`project keyvoice:write
POST`/v2/agents/{agent_id}/mcp-servers/{name}/check`project keyvoice:write
POST`/v2/agents/{agent_id}/rotate-secret`project keyvoice:write
GET`/v2/agents/{agent_id}/test-runs`project keyvoice:read
GET`/v2/agents/{agent_id}/test-runs/{run_id}`project keyvoice:read
POST`/v2/agents/{agent_id}/test-runs/{run_id}/cancel`project key—
GET`/v2/agents/{agent_id}/tests`project keyvoice:read
POST`/v2/agents/{agent_id}/tests`project keyvoice:write
DELETE`/v2/agents/{agent_id}/tests/{test_id}`project keyvoice:write
GET`/v2/agents/{agent_id}/tests/{test_id}`project keyvoice:read
PATCH`/v2/agents/{agent_id}/tests/{test_id}`project keyvoice:write
POST`/v2/agents/{agent_id}/tests/{test_id}/run`project keyvoice:write
POST`/v2/agents/{agent_id}/tests/run-all`project keyvoice:write
GET`/console/v2/projects/{project_id}/agents`account session—
POST`/console/v2/projects/{project_id}/agents`account session—
DELETE`/console/v2/projects/{project_id}/agents/{agent_id}`account session—
GET`/console/v2/projects/{project_id}/agents/{agent_id}`account session—
PATCH`/console/v2/projects/{project_id}/agents/{agent_id}`account session—
POST`/console/v2/projects/{project_id}/agents/{agent_id}/mcp-servers/{name}/check`account session—
POST`/console/v2/projects/{project_id}/agents/{agent_id}/rotate-secret`account session—
GET`/console/v2/projects/{project_id}/agents/{agent_id}/test-runs`account session—
GET`/console/v2/projects/{project_id}/agents/{agent_id}/test-runs/{run_id}`account session—
POST`/console/v2/projects/{project_id}/agents/{agent_id}/test-runs/{run_id}/cancel`account session—
GET`/console/v2/projects/{project_id}/agents/{agent_id}/tests`account session—
POST`/console/v2/projects/{project_id}/agents/{agent_id}/tests`account session—
DELETE`/console/v2/projects/{project_id}/agents/{agent_id}/tests/{test_id}`account session—
GET`/console/v2/projects/{project_id}/agents/{agent_id}/tests/{test_id}`account session—
PATCH`/console/v2/projects/{project_id}/agents/{agent_id}/tests/{test_id}`account session—
POST`/console/v2/projects/{project_id}/agents/{agent_id}/tests/{test_id}/run`account session—
POST`/console/v2/projects/{project_id}/agents/{agent_id}/tests/run-all`account session—

Knowledge bases#

MethodPathDoorScope
GET`/v2/knowledge-bases`project keyvoice:read
POST`/v2/knowledge-bases`project keyvoice:write
DELETE`/v2/knowledge-bases/{base_id}`project keyvoice:write
GET`/v2/knowledge-bases/{base_id}`project keyvoice:read
PATCH`/v2/knowledge-bases/{base_id}`project keyvoice:write
GET`/v2/knowledge-bases/{base_id}/documents`project keyvoice:read
POST`/v2/knowledge-bases/{base_id}/documents`project keyvoice:write
DELETE`/v2/knowledge-bases/{base_id}/documents/{document_id}`project keyvoice:write
GET`/v2/knowledge-bases/{base_id}/documents/{document_id}`project keyvoice:read
PUT`/v2/knowledge-bases/{base_id}/documents/{document_id}`project keyvoice:write
POST`/v2/knowledge-bases/{base_id}/reindex`project keyvoice:write
POST`/v2/knowledge-bases/{base_id}/search`project keyvoice:read
GET`/console/v2/projects/{project_id}/knowledge-bases`account session—
POST`/console/v2/projects/{project_id}/knowledge-bases`account session—
DELETE`/console/v2/projects/{project_id}/knowledge-bases/{base_id}`account session—
GET`/console/v2/projects/{project_id}/knowledge-bases/{base_id}`account session—
PATCH`/console/v2/projects/{project_id}/knowledge-bases/{base_id}`account session—
GET`/console/v2/projects/{project_id}/knowledge-bases/{base_id}/documents`account session—
POST`/console/v2/projects/{project_id}/knowledge-bases/{base_id}/documents`account session—
DELETE`/console/v2/projects/{project_id}/knowledge-bases/{base_id}/documents/{document_id}`account session—
GET`/console/v2/projects/{project_id}/knowledge-bases/{base_id}/documents/{document_id}`account session—
PUT`/console/v2/projects/{project_id}/knowledge-bases/{base_id}/documents/{document_id}`account session—
POST`/console/v2/projects/{project_id}/knowledge-bases/{base_id}/reindex`account session—
POST`/console/v2/projects/{project_id}/knowledge-bases/{base_id}/search`account session—

Chat API#

MethodPathDoorScope
GET`/v2/chats`project keyvoice:read
POST`/v2/chats`project keyvoice:write
GET`/v2/chats/{chat_id}`project keyvoice:read
POST`/v2/chats/{chat_id}/messages`project keyvoice:write
GET`/console/v2/projects/{project_id}/chats`account session—
POST`/console/v2/projects/{project_id}/chats`account session—
GET`/console/v2/projects/{project_id}/chats/{chat_id}`account session—
POST`/console/v2/projects/{project_id}/chats/{chat_id}/messages`account session—

Chat channels#

Voice sessions#

Carriers and numbers#

MethodPathDoorScope
GET`/v2/carriers`project keycarrier:read
POST`/v2/carriers`project keycarrier:write
DELETE`/v2/carriers/{connection_id}`project keycarrier:write
GET`/v2/carriers/{connection_id}`project keycarrier:read
POST`/v2/carriers/{connection_id}/numbers`project keycarrier:write
POST`/v2/carriers/{connection_id}/numbers/import`project keycarrier:write
POST`/v2/carriers/{connection_id}/verify`project keycarrier:write
GET`/v2/carriers/catalog`project keycarrier:read
GET`/v2/carriers/numbers`project keycarrier:read
DELETE`/v2/carriers/numbers/{number_id}`project keycarrier:write
PATCH`/v2/carriers/numbers/{number_id}`project keycarrier:write
GET`/console/v2/projects/{project_id}/carriers`account session—
POST`/console/v2/projects/{project_id}/carriers`account session—
DELETE`/console/v2/projects/{project_id}/carriers/{connection_id}`account session—
GET`/console/v2/projects/{project_id}/carriers/{connection_id}`account session—
POST`/console/v2/projects/{project_id}/carriers/{connection_id}/numbers`account session—
POST`/console/v2/projects/{project_id}/carriers/{connection_id}/numbers/import`account session—
POST`/console/v2/projects/{project_id}/carriers/{connection_id}/verify`account session—
GET`/console/v2/projects/{project_id}/carriers/catalog`account session—
GET`/console/v2/projects/{project_id}/carriers/numbers`account session—
DELETE`/console/v2/projects/{project_id}/carriers/numbers/{number_id}`account session—
PATCH`/console/v2/projects/{project_id}/carriers/numbers/{number_id}`account session—

Call lists#

MethodPathDoorScope
GET`/v2/call-lists`project key—
POST`/v2/call-lists`project key—
DELETE`/v2/call-lists/{list_id}`project key—
GET`/v2/call-lists/{list_id}`project key—
PATCH`/v2/call-lists/{list_id}`project key—
POST`/v2/call-lists/{list_id}/cancel`project key—
POST`/v2/call-lists/{list_id}/pause`project key—
POST`/v2/call-lists/{list_id}/preview/file`project key—
POST`/v2/call-lists/{list_id}/preview/sheet`project key—
GET`/v2/call-lists/{list_id}/results.csv`project key—
POST`/v2/call-lists/{list_id}/resume`project key—
GET`/v2/call-lists/{list_id}/rows`project key—
POST`/v2/call-lists/{list_id}/rows`project key—
POST`/v2/call-lists/{list_id}/rows/file`project key—
POST`/v2/call-lists/{list_id}/rows/sheet`project key—
POST`/v2/call-lists/{list_id}/start`project key—
GET`/v2/do-not-call`project key—
POST`/v2/do-not-call`project key—
DELETE`/v2/do-not-call/{phone_number}`project key—
POST`/v2/do-not-call/file`project key—
GET`/console/v2/projects/{project_id}/call-lists`account session—
POST`/console/v2/projects/{project_id}/call-lists`account session—
DELETE`/console/v2/projects/{project_id}/call-lists/{list_id}`account session—
GET`/console/v2/projects/{project_id}/call-lists/{list_id}`account session—
PATCH`/console/v2/projects/{project_id}/call-lists/{list_id}`account session—
POST`/console/v2/projects/{project_id}/call-lists/{list_id}/cancel`account session—
POST`/console/v2/projects/{project_id}/call-lists/{list_id}/pause`account session—
POST`/console/v2/projects/{project_id}/call-lists/{list_id}/preview/file`account session—
POST`/console/v2/projects/{project_id}/call-lists/{list_id}/preview/sheet`account session—
GET`/console/v2/projects/{project_id}/call-lists/{list_id}/results.csv`account session—
POST`/console/v2/projects/{project_id}/call-lists/{list_id}/resume`account session—
GET`/console/v2/projects/{project_id}/call-lists/{list_id}/rows`account session—
POST`/console/v2/projects/{project_id}/call-lists/{list_id}/rows`account session—
POST`/console/v2/projects/{project_id}/call-lists/{list_id}/rows/file`account session—
POST`/console/v2/projects/{project_id}/call-lists/{list_id}/rows/sheet`account session—
POST`/console/v2/projects/{project_id}/call-lists/{list_id}/start`account session—
GET`/console/v2/projects/{project_id}/do-not-call`account session—
POST`/console/v2/projects/{project_id}/do-not-call`account session—
DELETE`/console/v2/projects/{project_id}/do-not-call/{phone_number}`account session—
POST`/console/v2/projects/{project_id}/do-not-call/file`account session—

Webhooks API#

Billing API#

MethodPathDoorScope
PUT`/console/v2/billing/currency`account session—
GET`/console/v2/billing/invoices`account session—
GET`/console/v2/billing/invoices/{invoice_id}.pdf`account session—
GET`/console/v2/billing/quote`account session—
GET`/console/v2/billing/rate`account session—
GET`/console/v2/billing/summary`account session—
POST`/console/v2/billing/topup`account session—
GET`/console/v2/billing/transactions`account session—

Conventions#

  • Origin: https://api.developers.dvaarik.com.
  • Machine door: X-Api-Key: $DVAARIK_API_KEY, from a trusted server only.
  • Account door: Authorization: Bearer $DVAARIK_TOKEN, the console session.
  • Money is an integer nano-USD decimal string; parse it with BigInt, never Number.
  • Every error body is { "detail": … }; see the errors page.
  • There is no SDK yet. The examples are curl, fetch, and requests.
  • To try a call without writing code, use the playground rather than pasting a key into a browser.

Use one project per boundary

Provider secrets stay encrypted and project API keys stay on your server.