Run a SQL query
Runs a read-only SQL query over the workspace’s records with the caller’s record access applied, and returns the rows as JSON with offset pagination in links and meta. A LIMIT or OFFSET in the SQL bounds the whole result, and page[offset] and page[limit] (up to 500) page within it. Each page reruns the query, so add an ORDER BY for stable pages. 64-bit integers, such as COUNT(*), come back as strings to keep their precision.
API key authentication. Send your key in the Authorization header as: api-key <your-api-key>.
In: header
Path Parameters
The workspace slug — the {slug} segment of your Clarify workspace URL.
Query Parameters
Offset pagination, e.g. page[offset]=0&page[limit]=100.
Default
{ "offset": 0, "limit": 500}Sort order, e.g. sortOrder[column]=_created_at&sortOrder[dir]=DESC.
When true, suppresses in-app and Slack notifications for this mutation.
Header Parameters
The API version for this request. Send 2026-10 to get the behavior documented here. Omit it to use your API key's version, which this header can raise but not lower.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/workspaces/string/query" \ -H "clarify-version: 2026-10" \ -H "Content-Type: application/json" \ -d '{ "sql": "SELECT stage, COUNT(*) AS deals, SUM(amount) AS amount FROM deal GROUP BY stage ORDER BY amount DESC" }'{ "links": { "next": null, "prev": null }, "meta": { "total_records": 2, "total_pages": 1, "offset": 0, "limit": 500 }, "data": [ { "stage": "Won", "deals": "4", "amount": 182000 }, { "stage": "In progress", "deals": "7", "amount": 96500 } ]}Revoke object access
Revokes a previously granted access delegation. Requires a paid plan with access delegation enabled. Returns 202 Accepted with an empty body. Requires a user-backed API key; workspace-actor API keys are not supported.
Create a record access grant
Shares a single record — a record entity (`deal`, `company`, `person`, or a custom object) or a `list`, `meeting`, or `message` — with a user or the whole workspace at a given access level. Only the record’s owner or a workspace permission admin (records and lists), the record’s owner (messages), a participant (meetings), or the assignee or creator (tasks) can create grants. Requires a user-backed API key; workspace-actor API keys are not supported.