HTTP API reference
Every route this platform serves, what it accepts, and the ones it deliberately does not serve.
Base path: /api/:apiVersion. Any well-formed pinned version is accepted; v2026-07-26 is the baseline the behaviour is specified against.
Data
| Route | Method | Notes |
|---|---|---|
/data/query/:dataset | GET, POST | GROQ. Params, perspective, sync tags, optional resultSourceMap. |
/data/doc/:dataset/:id | GET | One document by id. |
/data/mutate/:dataset | POST | create, createIfNotExists, createOrReplace, patch, delete. One transaction. |
/data/actions/:dataset | POST | document.create, edit, publish, discard, delete, unpublish. |
/data/listen/:dataset | GET | Server-sent events. |
/data/references/:dataset/documents/:id/to | GET | What references this document. |
/data/history/:dataset/documents/:id | GET | ?revision=, ?time=, ?lastRevision=. |
/data/history/:dataset/events/documents/:id | GET | One event per transaction, deletions included. |
/data/history/:dataset/transactions/:id | GET | NDJSON transaction log. |
/data/ping/:dataset | GET | Liveness. |
Assets
| Route | Method | Notes |
|---|---|---|
/assets/:kind/:dataset | POST | Raw bytes. Capped by the platform request limit. |
/assets/:kind/:dataset/client-upload | POST | Issues a token for browser-direct upload, then commits metadata. |
/images/:projectId/:dataset/:filename | GET | Bytes plus the supported transform parameters. |
/files/:projectId/:dataset/:filename | GET | File bytes. |
Project, users and collaboration
| Route | Notes |
|---|---|
/projects/:projectId, /projects/:projectId/datasets | Project and dataset metadata the Studio reads on boot. |
/projects/:projectId/grants | The grants payload, projected from the role table. |
/users/me, /users/:id, /users | The current user, one user, and the directory mentions and assignment need. |
/users/me/keyvalue/:keys | Studio preferences. |
/comments/:dataset…, /tasks/:dataset… | Collaboration surfaces. Partial. |
/preview-url-secret/:dataset | Issues the preview secret. |
/ping, /features, /descriptors/… | Boot-time calls that error visibly if unanswered. |
Errors
Sanity-shaped envelopes, so a client can react to them:
{
"error": {
"type": "mutationError",
"description": "The document references a document that does not exist",
"items": [{ "error": { "type": "documentNotFoundError", "id": "author-missing" } }]
}
}Deliberately not served
Anything belonging to a hosted content lake: dataset creation and deletion, project provisioning, hosted scheduling and releases, and the SaaS media library. Those are management-plane operations for a service this platform replaces.
