Skip to content

API overview ​

The current OpenAPI spec is authoritative. This page records the conventions that should not be guessed.

Base URL and paths ​

text
https://webagent.qoni.ai

User-facing routes use /api/v1 and are project-scoped:

text
/api/v1/projects/{pid}/...
CapabilityCreate path
DoAnythingPOST /api/v1/projects/{pid}/do_anything/runs
TrackPOST /api/v1/projects/{pid}/track/tracks
DeepResearchPOST /api/v1/projects/{pid}/deep_research/runs
WebSearchPOST /api/v1/projects/{pid}/web_search/runs

Authentication ​

Raw HTTP can use a project API key:

http
Authorization: Bearer wa_xxxxxxxxxxxxxxxxxxxxxxxx

The Node SDK uses Qoni AK/SK plus delegateToken(); it injects the project path internally. Never expose AK/SK in a browser.

Async runs and SSE ​

DoAnything, DeepResearch, and WebSearch creation returns 202 and a run envelope. Poll the run detail or consume .../events; the Node SDK provides run.wait().

Common statuses are pending, running, awaiting_input, succeeded, failed, and canceled. done is a terminal reason, not a status.

SSE supports Last-Event-ID; the SDK's events() / wait() handle normal reconnection. Use event.raw only when you need wire details.

Errors ​

Errors are JSON envelopes with a stable code and human-readable detail. Branch on code, not on detail text. See errors and retries.

The Track path describes the current backend contract. The legacy Track entry in npm 0.9.0 is incompatible and the SDK repair candidate is unpublished; see Track.