Conduit
Query live data
The knowledge base knows what your documents say; the data layer knows what your systems report right now. eli.ai bridges them through connectors (scoped, read-only external sources) and named queries(governed, parameterized SQL a human authored). This guide lists what's available, runs a query with full provenance, and then crosses the bridge in one call — a grounded answer that cites both documents and live rows.
Prerequisites
- A key with
data:read(list) anddata:run(execute). - At least one connector and one named query configured in the workspace Data page — see Data connectors & domain components.
Authoring is deliberately not an API job
Discover the surface
List the connectors in scope and the named queries you can run. Secrets never appear — you see slugs, titles, descriptions, and parameter specs, which is exactly what you need to make a call.
/api/v1/data/connectorsBearer · data:readList enabled connectors with health status. Credentials and connection configs are never returned.
/api/v1/data/queriesBearer · data:readList named queries (domain components) available to run, with their parameter specs.
Run a query
Call a query by its slug and supply validated params. The response is columns, rows (capped at the connector's maxRows, with a truncated flag), timing, and a dataCallId — the anchor into the append-only provenance trail. Every run, success or failure, writes a data_calls row recording the exact SQL, params, and status.
/api/v1/data/queries/{slug}/runBearer · data:runExecute a named query with validated params. Read-only, capped, timed, and provenance-logged. Params are bound, never interpolated.
Request body
A slow or broken source is a status, not a 500
data_calls provenance row (status timeout · error · blocked) — never a hung request. Invalid params return 400 with the offending field.The bridge — one grounded call
The real payoff is not running SQL yourself — it is letting a natural-language question cross into live data automatically. POST /api/v1/query with includeData: true detects the entities in the question, runs their bound queries as governed lookups, and grounds the answer in both documents ([Sn]) and live rows ([Dn]) — the semantic and data layers fused in a single response.
The includeData path runs at most three governed lookups and skips any binding whose parameters would need the model to invent a value — it supplies only entity-name and constant params. For the mechanics of which entities map to which queries, see Entity bindings & live data, and for the full response schema, Structured query (v1).
The leverage
Your documents describe the process; your database knows the current state. This endpoint answers questions that need both — "what's our policy, and are we currently violating it?" — with every number traceable to a logged, read-only query and every recommendation traceable to a source chunk. No dashboards to wire, no SQL in your prompts, and a provenance row behind every figure you can hand to an auditor.