CH-UICH-UI

API Reference

CH-UI REST API reference

Base URL (default local):

http://localhost:3488

Public Endpoints

MethodPathPurpose
GET/healthHealth status
POST/connectWebSocket tunnel upgrade (agent)
GET/api/licenseLicense info
POST/api/auth/loginSession login
POST/api/auth/logoutSession logout
GET/api/auth/sessionSession details
GET/api/auth/connectionsLogin-time connection list
POST/api/auth/switch-connectionSwitch active connection

Session-Protected Endpoints

All below require chui_session cookie.

Query

MethodPathPurpose
POST/api/query/runExecute SQL query
POST/api/query/streamStream query results via NDJSON/SSE
POST/api/query/formatFormat/beautify SQL
POST/api/query/explainEXPLAIN output
POST/api/query/planParsed query plan tree
POST/api/query/profileQuery log metrics for exact SQL
POST/api/query/sampleSample rows (per-shard or global)
GET/api/query/databasesList databases
GET/api/query/tablesList tables (?database=)
GET/api/query/columnsList columns (?database=&table=)
GET/api/query/data-typesList ClickHouse data types
GET/api/query/clustersList clusters
POST/api/query/schema/databaseCreate database
POST/api/query/schema/database/dropDrop database
POST/api/query/schema/tableCreate table
POST/api/query/schema/table/dropDrop table
POST/api/query/upload/discoverDetect schema from uploaded file
POST/api/query/upload/ingestInsert uploaded data into table

Connections

MethodPathPurpose
GET/api/connectionsList connections
POST/api/connectionsCreate connection
GET/api/connections/{id}Get connection
DELETE/api/connections/{id}Delete connection
POST/api/connections/{id}/testTest connection
GET/api/connections/{id}/tokenGet tunnel token
POST/api/connections/{id}/regenerate-tokenRegenerate tunnel token

Saved Queries

MethodPathPurpose
GET/api/saved-queriesList saved queries
POST/api/saved-queriesCreate saved query
GET/api/saved-queries/{id}Get saved query
PUT/api/saved-queries/{id}Update saved query
DELETE/api/saved-queries/{id}Delete saved query
POST/api/saved-queries/{id}/duplicateDuplicate saved query

Dashboards

MethodPathPurpose
GET/api/dashboardsList dashboards
POST/api/dashboardsCreate dashboard
GET/api/dashboards/{id}Get dashboard + panels
PUT/api/dashboards/{id}Update dashboard
DELETE/api/dashboards/{id}Delete dashboard + panels
POST/api/dashboards/{id}/panelsCreate panel
PUT/api/dashboards/{id}/panels/{panelId}Update panel
DELETE/api/dashboards/{id}/panels/{panelId}Delete panel
POST/api/dashboards/queryExecute panel query with time-range interpolation

Brain

MethodPathPurpose
GET/api/brain/modelsList active models
GET/api/brain/chatsList user's chats (?includeArchived=)
POST/api/brain/chatsCreate chat
GET/api/brain/chats/{chatID}Get chat
PUT/api/brain/chats/{chatID}Update chat (title, model, archive, context)
DELETE/api/brain/chats/{chatID}Archive/delete chat
GET/api/brain/chats/{chatID}/messagesGet chat messages
POST/api/brain/chats/{chatID}/messages/streamStream LLM response (SSE)
GET/api/brain/chats/{chatID}/artifactsList artifacts
POST/api/brain/chats/{chatID}/artifacts/queryExecute & persist SQL artifact
GET/api/brain/skillsGet active skill
POST/api/brain/chatLegacy streaming endpoint (deprecated)

Models

MethodPathPurpose
GET/api/modelsList models
POST/api/modelsCreate model
GET/api/models/{id}Get model
PUT/api/models/{id}Update model
DELETE/api/models/{id}Delete model
GET/api/models/validateValidate all models (refs, cycles)
POST/api/models/runExecute all models
POST/api/models/{id}/runExecute single model + upstream deps
GET/api/models/dagGet DAG for visualization
GET/api/models/runsList runs (?limit=&offset=)
GET/api/models/runs/{runId}Get run + per-model results
GET/api/models/pipelinesList pipelines (connected components)
POST/api/models/pipelines/{anchorId}/runExecute pipeline
GET/api/models/schedulesList model schedules
GET/api/models/schedule/{anchorId}Get pipeline schedule
PUT/api/models/schedule/{anchorId}Create/update pipeline schedule
DELETE/api/models/schedule/{anchorId}Delete pipeline schedule

Pipelines (Data Ingestion)

MethodPathPurpose
GET/api/pipelinesList pipelines
POST/api/pipelinesCreate pipeline
GET/api/pipelines/{id}Get pipeline
PUT/api/pipelines/{id}Update pipeline
DELETE/api/pipelines/{id}Delete pipeline
POST/api/pipelines/{id}/startStart pipeline
POST/api/pipelines/{id}/stopStop pipeline
GET/api/pipelines/{id}/statusGet pipeline status + metrics
GET/api/pipelines/{id}/logsGet pipeline logs
POST/api/pipelines/webhook/{id}Webhook source endpoint
GET/api/pipelines/connectorsList available connectors
POST/api/pipelines/validateValidate pipeline config

Admin

MethodPathPurpose
GET/api/admin/statsSystem statistics (users, connections, queries)
GET/api/admin/usersList users with login history
GET/api/admin/user-rolesGet role overrides
PUT/api/admin/user-roles/{username}Set role override
DELETE/api/admin/user-roles/{username}Remove role override
GET/api/admin/connectionsList connections with tunnel status
GET/api/admin/clickhouse-usersQuery system.users from ClickHouse
POST/api/admin/clickhouse-usersCreate ClickHouse user
PUT/api/admin/clickhouse-users/{username}/passwordChange password
DELETE/api/admin/clickhouse-users/{username}Drop ClickHouse user
GET/api/admin/brain/providersList brain providers
POST/api/admin/brain/providersCreate brain provider
PUT/api/admin/brain/providers/{id}Update brain provider
DELETE/api/admin/brain/providers/{id}Delete brain provider
POST/api/admin/brain/providers/{id}/sync-modelsSync models from provider
GET/api/admin/brain/modelsList all models (all states)
PUT/api/admin/brain/models/{id}Update model flags
POST/api/admin/brain/models/bulkBulk model action
GET/api/admin/brain/skillsList skills
POST/api/admin/brain/skillsCreate skill
PUT/api/admin/brain/skills/{id}Update skill
GET/api/admin/langfuseGet Langfuse config
PUT/api/admin/langfuseSave Langfuse config
DELETE/api/admin/langfuseRemove Langfuse config
POST/api/admin/langfuse/testTest Langfuse credentials

Pro API Groups

Pro endpoints require a valid license.

Schedules

MethodPathPurpose
GET/api/schedulesList schedules
GET/api/schedules/{id}Get schedule
POST/api/schedulesCreate schedule
PUT/api/schedules/{id}Update schedule
DELETE/api/schedules/{id}Delete schedule
POST/api/schedules/{id}/runManual execution
GET/api/schedules/{id}/runsRun history

Governance

MethodPathPurpose
GET/api/governance/overviewSummary stats
POST/api/governance/syncTrigger full sync
POST/api/governance/sync/{type}Trigger single sync (metadata/query_log/access)
GET/api/governance/sync/statusSync state for all workers
GET/api/governance/databasesList databases
GET/api/governance/tablesList tables (?database=)
GET/api/governance/tables/{db}/{table}Table detail + columns + tags + lineage
GET/api/governance/tables/{db}/{table}/notesTable notes
GET/api/governance/tables/{db}/{table}/columns/{col}/notesColumn notes
POST/api/governance/tables/{db}/{table}/notesCreate table note
POST/api/governance/tables/{db}/{table}/columns/{col}/notesCreate column note
DELETE/api/governance/notes/{id}Delete note
PUT/api/governance/tables/{db}/{table}/commentUpdate table comment
PUT/api/governance/tables/{db}/{table}/columns/{col}/commentUpdate column comment
GET/api/governance/schema-changesList schema changes
GET/api/governance/query-logIngested query log
GET/api/governance/query-log/topTop queries by frequency
GET/api/governance/clickhouse-query-logLive system.query_log
GET/api/governance/lineageLineage for table
GET/api/governance/lineage/graphFull lineage graph
GET/api/governance/tagsList tags
POST/api/governance/tagsCreate tag
DELETE/api/governance/tags/{id}Delete tag
GET/api/governance/access/usersList ClickHouse users
POST/api/governance/access/usersCreate ClickHouse user
DELETE/api/governance/access/users/{name}Drop ClickHouse user
GET/api/governance/access/rolesList roles
GET/api/governance/access/matrixAccess matrix (?user=)
GET/api/governance/access/over-permissionsUnused privileges (?days=)
GET/api/governance/policiesList policies
POST/api/governance/policiesCreate policy
GET/api/governance/policies/{id}Get policy
PUT/api/governance/policies/{id}Update policy
DELETE/api/governance/policies/{id}Delete policy
GET/api/governance/violationsList violations
POST/api/governance/violations/{id}/incidentCreate incident from violation
GET/api/governance/incidentsList incidents
GET/api/governance/incidents/{id}Get incident
POST/api/governance/incidentsCreate manual incident
PUT/api/governance/incidents/{id}Update incident
GET/api/governance/incidents/{id}/commentsList incident comments
POST/api/governance/incidents/{id}/commentsAdd incident comment
GET/api/governance/audit-logsQuery audit log

Governance Alerts

MethodPathPurpose
GET/api/governance/alerts/channelsList alert channels
POST/api/governance/alerts/channelsCreate channel
PUT/api/governance/alerts/channels/{id}Update channel
DELETE/api/governance/alerts/channels/{id}Delete channel
POST/api/governance/alerts/channels/{id}/testTest channel delivery
GET/api/governance/alerts/rulesList rules (with routes)
POST/api/governance/alerts/rulesCreate rule
PUT/api/governance/alerts/rules/{id}Update rule
DELETE/api/governance/alerts/rules/{id}Delete rule
GET/api/governance/alerts/eventsList alert events

Example: Login + Run Query

# 1) Login
curl -i -X POST http://localhost:3488/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "username":"default",
    "password":"secret",
    "connectionId":"<connection-id>"
  }'

# 2) Reuse set-cookie value as chui_session
curl -X POST http://localhost:3488/api/query/run \
  -H "Content-Type: application/json" \
  -H "Cookie: chui_session=<session-token>" \
  -d '{"query":"SELECT version()"}'

On this page