API reference
Complete REST API reference โ authentication, endpoints, request and response formats, and examples.
The Celiq REST API lets you embed queries, manage the semantic model, and integrate Celiq data into your own applications. All endpoints require authentication via API key.
Authentication
All requests must include an Authorization header:
Authorization: Bearer <your_api_key>Generate an API key in Admin Console โ API keys โ New key. Keys are workspace-scoped. You can create multiple keys with different permission scopes.
Base URL: https://api.celiq.co/v1
Queries
Run a query
Run a query against a node and return results as JSON.
POST /query{
"node": "orders",
"dimensions": ["status", "created_at.month"],
"measures": ["total_revenue", "order_count"],
"filters": [
{ "field": "created_at", "operator": ">=", "value": "2026-01-01" }
],
"sorts": [{ "field": "total_revenue", "direction": "desc" }],
"limit": 500
}| Field | Type | Required | Description |
|---|---|---|---|
node | string | Yes | Node identifier to query. |
dimensions | string[] | No | Dimension identifiers. Use field.granularity for date fields. |
measures | string[] | No | Measure identifiers. |
filters | object[] | No | Filter conditions. |
sorts | object[] | No | Sort order. |
limit | number | No | Max rows. Default 5000. Max 50000. |
{
"data": [
{ "status": "completed", "created_at.month": "2026-01", "total_revenue": 125000, "order_count": 480 },
{ "status": "refunded", "created_at.month": "2026-01", "total_revenue": -8200, "order_count": 31 }
],
"sql": "SELECT ... FROM analytics.orders WHERE ...",
"metadata": {
"row_count": 24,
"query_time_ms": 340,
"node": "orders",
"ran_at": "2026-05-21T08:15:30Z"
}
}Get available fields
Returns all dimensions and measures for a node.
GET /nodes/{node_id}/fields{
"node": "orders",
"dimensions": [
{ "id": "order_id", "label": "Order ID", "type": "string" },
{ "id": "created_at", "label": "Created At", "type": "date" }
],
"measures": [
{ "id": "total_revenue", "label": "Total Revenue", "type": "sum", "format": "currency" }
]
}Nodes
List nodes
Returns all nodes in the Live semantic layer accessible to the authenticated key.
GET /nodes| Parameter | Type | Description |
|---|---|---|
tags | string | Filter by tag (comma-separated). |
connection | string | Filter by data connection name. |
{
"nodes": [
{ "id": "orders", "label": "Orders", "description": "...", "tags": ["ecommerce"] },
{ "id": "customers", "label": "Customers", "description": "...", "tags": ["ecommerce"] }
]
}Get node detail
GET /nodes/{node_id}Returns full metadata for a single node including all fields, Data Keys, and join relationships.
Scenes
List Scenes
Returns Scenes accessible to the authenticated key (respects Vault membership).
GET /scenesGet a Scene
GET /scenes/{scene_id}Returns Scene metadata: name, Vault, node, dimensions, measures, filters, visualisation config.
Run a Scene
Re-runs the Scene's query and returns fresh results.
POST /scenes/{scene_id}/runPOST /query.
Mosaics
List Mosaics
GET /mosaicsGet a Mosaic
GET /mosaics/{mosaic_id}Returns Mosaic metadata including all tile definitions.
Users
List users (Luminary only)
GET /usersGet user
GET /users/{user_id}Update user attributes (Data Key assignments)
PATCH /users/{user_id}/attributes{
"region_access": "EMEA",
"sales_rep_access": "rep_042"
}This is the programmatic equivalent of Admin Console โ Users โ Attributes. Use this endpoint to sync Data Key assignments from your own identity provider.
Webhooks
Celiq can POST to your endpoint when certain events occur. Configure webhooks in Admin Console โ Integrations โ Webhooks.
Signal triggered
{
"event": "signal.triggered",
"signal_id": "sig_abc123",
"signal_name": "Revenue below target",
"triggered_at": "2026-05-21T07:00:00Z",
"value": 42300,
"threshold": 50000,
"condition": "less_than"
}Model deployed
{
"event": "model.deployed",
"deployed_at": "2026-05-20T14:23:11Z",
"deployed_by": "alice@example.com",
"changed_nodes": ["orders", "customers"],
"pr_url": "https://github.com/org/repo/pull/42"
}Error codes
| Code | Meaning |
|---|---|
400 | Bad request โ check your request body or parameters. |
401 | Missing or invalid API key. |
403 | The API key does not have permission for this action. |
404 | Resource not found. |
422 | CML validation error (for model write endpoints). |
429 | Rate limited โ max 1000 requests per minute per workspace. |
500 | Internal server error. Contact support if this persists. |