Ir al contenido

API Reference

Esta página aún no está disponible en español. Se muestra la versión en inglés.

The Querri Public API v1 provides programmatic access to projects, dashboards, data sources, users, access policies, and more. Endpoints accept qk_ API keys (the primary method for server-to-server integrations), JWT bearer tokens (for user-context calls), or session cookies with CSRF (for browser apps already logged in) — see Authentication for details.

The Python SDK (pip install querri) and querri CLI (pip install "querri[cli]") cover most of these endpoints with typed clients and one-line commands; reach for them before hand-rolling HTTP requests.

The full interactive API reference with request/response schemas is available at your Querri instance:

For local development, these are at http://localhost/api/v1/docs and http://localhost/api/v1/redoc.

https://app.querri.com/api/v1

For API key authentication (the default for integrations):

Terminal window
Authorization: Bearer qk_live_...
X-Tenant-ID: org_...

For JWT bearer authentication, send only Authorization: Bearer ey... — the org_id is read from the token. For full details and the cookie-based flow, see Authentication.

All errors follow a consistent structure:

{
"error": {
"type": "not_found_error",
"code": "project_not_found",
"message": "No project with ID 'proj_abc123'"
}
}

Error types: authentication_error, permission_error, invalid_request_error, not_found_error, rate_limit_error, api_error.


Manage organization members. Users can be created with an external_id for idempotent upsert via your own user system.

MethodEndpointDescriptionScope
POST/usersCreate a new useradmin:users:write
GET/usersList users (supports ?external_id= filter)admin:users:read
GET/users/{user_id}Get user by IDadmin:users:read
PUT/users/external/{external_id}Get or create user by external ID (idempotent)admin:users:write
PATCH/users/{user_id}Update user role or profileadmin:users:write
DELETE/users/{user_id}Delete a useradmin:users:write

Create, manage, and execute data analysis projects.

MethodEndpointDescriptionScope
GET/projectsList projectsadmin:projects:read
POST/projectsCreate a projectadmin:projects:write
GET/projects/{project_id}Get project detailsadmin:projects:read
PUT/projects/{project_id}Update project metadataadmin:projects:write
DELETE/projects/{project_id}Delete a projectadmin:projects:write
POST/projects/{project_id}/runExecute a projectadmin:projects:write
GET/projects/{project_id}/run/statusCheck execution statusadmin:projects:read
POST/projects/{project_id}/run/cancelCancel executionadmin:projects:write
GET/projects/{project_id}/stepsList project stepsadmin:projects:read
GET/projects/{project_id}/steps/{step_id}/dataGet step result data (paginated, RLS-enforced)admin:projects:read

AI chat within projects. The stream endpoint returns Server-Sent Events (SSE).

MethodEndpointDescriptionScope
POST/projects/{project_id}/chatsCreate a new chatadmin:projects:write
GET/projects/{project_id}/chatsList chats for a projectadmin:projects:read
GET/projects/{project_id}/chats/{chat_id}Get chat messagesadmin:projects:read
DELETE/projects/{project_id}/chats/{chat_id}Delete a chatadmin:projects:write
POST/projects/{project_id}/chats/{chat_id}/streamSend message and stream AI response (SSE)admin:projects:write
GET/projects/{project_id}/chats/{chat_id}/streamResume an active streamadmin:projects:read
POST/projects/{project_id}/chats/{chat_id}/cancelCancel an active streamadmin:projects:write

The POST .../stream endpoint returns a text/event-stream response. Events use the Vercel AI SDK format:

0:"Hello "
0:"world"
e:{"finishReason":"stop"}
d:{"finishReason":"stop"}
  • 0: prefix — text chunk (JSON-encoded string)
  • e: prefix — error event
  • d: prefix — done signal

Create and manage dashboards. Includes template import/export.

MethodEndpointDescriptionScope
POST/dashboardsCreate a dashboardadmin:dashboards:write
GET/dashboardsList dashboardsadmin:dashboards:read
GET/dashboards/{dashboard_id}Get dashboard detailsadmin:dashboards:read
PATCH/dashboards/{dashboard_id}Update dashboard metadataadmin:dashboards:write
DELETE/dashboards/{dashboard_id}Delete a dashboardadmin:dashboards:write
POST/dashboards/{dashboard_id}/refreshTrigger dashboard refreshadmin:dashboards:write
GET/dashboards/{dashboard_id}/refresh/statusCheck refresh statusadmin:dashboards:read
POST/dashboards/from-templateCreate dashboard from templateadmin:dashboards:write
POST/dashboards/{dashboard_id}/export-templateExport dashboard as templateadmin:dashboards:read

Row-level security (RLS) policies control which data sources and rows users can see.

MethodEndpointDescriptionScope
POST/access/policiesCreate an access policyadmin:policies:write
GET/access/policiesList policies (supports ?name= filter)admin:policies:read
GET/access/policies/{policy_id}Get policy detailsadmin:policies:read
PATCH/access/policies/{policy_id}Update policy rulesadmin:policies:write
DELETE/access/policies/{policy_id}Delete a policyadmin:policies:write
POST/access/policies/{policy_id}/usersAssign users to policyadmin:policies:write
DELETE/access/policies/{policy_id}/users/{user_id}Remove user from policyadmin:policies:write
POST/access/resolvePreview resolved access for a user + sourceadmin:policies:read
GET/access/columnsDiscover filterable columns for a sourceadmin:policies:read

Read and write data sources directly. Read results respect row-level security. See the Data API guide for detailed examples and integration patterns.

MethodEndpointDescriptionScope
GET/sourcesList available data sourcesdata:read
GET/sources/{source_id}Get source details and schemadata:read
GET/sources/{source_id}/dataRead source data (paginated)data:read
POST/sources/{source_id}/queryExecute SQL query against a sourcedata:read
POST/sourcesCreate a source with inline data (body: {name, rows})data:write
POST/sources/{source_id}/rowsAppend rows to a sourcedata:write
PUT/sources/{source_id}/dataReplace all data in a sourcedata:write
DELETE/sources/{source_id}Delete a source and its datadata:write

Create short-lived session tokens for embedding Querri views in iframes.

MethodEndpointDescriptionScope
POST/embed/sessionsCreate an embed sessionembed:session:create
POST/embed/sessions/refreshRefresh an expiring sessionembed:session:create
GET/embed/sessionsList active sessionsembed:session:create
DELETE/embed/sessions/{session_id}Revoke a sessionembed:session:create

Upload and manage files (CSV, Excel, JSON, etc.) for use as data sources.

MethodEndpointDescriptionScope
GET/filesList uploaded filesadmin:files:read
GET/files/{file_id}Get file metadataadmin:files:read
POST/files/uploadUpload a fileadmin:files:write
DELETE/files/{file_id}Delete a fileadmin:files:write

Manage data source connections (databases, SaaS apps, files).

MethodEndpointDescriptionScope
GET/connectorsList available connector typesadmin:sources:read
GET/sourcesList data sourcesadmin:sources:read
POST/sourcesCreate a data sourceadmin:sources:write
PATCH/sources/{source_id}Update source configurationadmin:sources:write
DELETE/sources/{source_id}Delete a data sourceadmin:sources:write
POST/sources/{source_id}/syncTrigger source syncadmin:sources:write

Manage API keys programmatically. Requires the admin:keys:manage scope.

MethodEndpointDescriptionScope
POST/keysCreate a new API keyadmin:keys:manage
GET/keysList API keysadmin:keys:manage
GET/keys/{key_id}Get key detailsadmin:keys:manage
DELETE/keys/{key_id}Revoke a keyadmin:keys:manage

Share projects and dashboards with other users in your organization.

MethodEndpointDescriptionScope
POST/projects/{project_id}/sharesShare a project with a useradmin:permissions:write
GET/projects/{project_id}/sharesList project sharesadmin:permissions:read
DELETE/projects/{project_id}/shares/{user_id}Revoke project shareadmin:permissions:write
POST/dashboards/{dashboard_id}/sharesShare a dashboard with a useradmin:permissions:write
GET/dashboards/{dashboard_id}/sharesList dashboard sharesadmin:permissions:read
DELETE/dashboards/{dashboard_id}/shares/{user_id}Revoke dashboard shareadmin:permissions:write

View organization and per-user usage metrics.

MethodEndpointDescriptionScope
GET/usageOrganization usage summaryadmin:usage:read
GET/usage/users/{user_id}Per-user usage metricsadmin:usage:read

Query the audit log for security and compliance.

MethodEndpointDescriptionScope
GET/audit/eventsQuery audit log eventsadmin:audit:read

List endpoints return paginated results:

{
"data": [...],
"total": 142,
"page": 1,
"page_size": 50,
"has_more": true
}

Use ?page=2&page_size=50 to navigate. Maximum page size is 200.