Conventions
Base URL
The base URL is your organization’s arcodash Cloud origin plus /api:
https://<your-org>.arcodash.com/api
Every path in this reference is written relative to that base, e.g. GET /api/queries means
GET https://<your-org>.arcodash.com/api/queries.
Request and response format
All request bodies and response bodies are JSON. Send Content-Type: application/json on any
request with a body.
Errors
Errors use standard HTTP status codes:
| Status | Meaning |
|---|---|
401 |
Missing or invalid API key. |
403 |
Authenticated, but not allowed to perform this action on this object. |
404 |
The object doesn’t exist, or you don’t have access to it. |
204 |
The action succeeded and returns no body (e.g. logging out). |
409 |
The request conflicts with the object’s current state (e.g. acknowledging a monitor |
| that isn’t currently triggered, or that’s already acknowledged). | |
422 |
The request body failed validation. |
429 |
Rate limit exceeded — see below. |
Rate limits
Several endpoints are rate-limited. Each limit is enforced independently — hitting one doesn’t affect your budget on another.
| Endpoint | Limit |
|---|---|
| Query execute | 60/min per user |
| Data source test | 10/min per user |
| Public dashboard | 30/min per IP |
| Public embed | 30/min per IP |
| Digest unsubscribe | 30/min per IP |
| Sign-in | 10/min per IP |
| Session exchange and organization select | 10/min per IP |
| Invitation status lookup | 10/min per IP |
| Signup | 5/min per IP |
| Invite accept | 5/min per IP |
| AI SQL generation | 10/min per user (an organization admin can raise or lower this in AI Settings) |
Going over a limit returns 429 with the same JSON error shape as any other failure
({"message": "..."}, Content-Type: application/json). No Retry-After header is set — back
off and retry after a short delay rather than parsing one from the response.
[!NOTE] AI SQL generation’s rate limit is enforced inside that endpoint’s own response body rather than as an HTTP
429— a request over the limit still gets200with a JSON body reporting arate_limitedstatus and aretry_after_secsvalue. Every other limit in the table above returns a genuine429.