Execution-verified · fails closed
The model writes a plausible answer. The harness makes it true.
FactQL plans, drafts, executes, verifies and self-corrects the analysis before you see a number. One POST, one JSON answer with the query, the rows and the lineage behind it.
Start with an uploaded CSV, not production credentials.
Terminal demo of a FactQL query. The user asks which region drove the Q3 revenue drop. FactQL explores the schema across 14 tables, drafts candidate SQL, executes it to verify, flags an ambiguous "revenue" column, self-corrects to net_revenue_gbp, and verifies the corrected query in 0.9 seconds. It returns a three-row result: EMEA down 18% quarter over quarter, North America up 1%, APAC flat at 0%. The underlying SQL is shown alongside the result, stamped verified.
01 · Sources
Bring a dataset, not a database.
Your first query can run on an uploaded file — no production credentials on day one.
10.8%
02 · The problem
execution accuracy of a leading agentic frontier-model setup on BEAVER, a benchmark built from real enterprise warehouses.
Source: BEAVER, Chen et al., 2024 (v3, 2026)
The model isn't the problem. What's missing is everything it can't know: which of your 400 near-identical columns is real revenue, what your terms mean, and when to stop instead of guessing.
03 · The harness
Plan. Draft. Execute. Verify. Correct — or fail closed.
Diagram of the FactQL harness pipeline. Six stages: plan, then explore schema with tools, then candidate query, then execute to verify — which loops back to candidate query as a re-draft when verification fails, and marks a green check when it passes — then grounded summary. A branch from execute to verify leads to a red-tinted failure state labelled fail closed, 4xx, when the harness cannot verify an answer.
Every response includes the SQL. Audit anything we ever answer.
04 · Proof
What verification actually means.
Execution-verified, not generated.
The agent runs the query before you see it; a wrong query self-corrects or fails loudly.
Five sources, one POST.
Postgres, MySQL, DuckDB gateway, CSV/XLSX, or a cited PDF — same endpoint.
Zero invented figures.
Summaries are constrained to the result set.
Fail-closed multi-tenant isolation.
Isolation is enforced on every query and checked by committed proofs, regenerated after structural changes.
A hard ceiling on spend.
Budget alert, then a hard 402. You are never invoiced for going over.
One key, many users.
Send X-End-User-Id and each person in your app gets private conversations.
05 · The API
The API, in one call.
curl -X POST https://api.factql.ai/query \
-H "X-API-Key: $FACTQL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "Top 5 customers by revenue this quarter vs last?"}'{
"sql": "SELECT customer_name, SUM(revenue) AS revenue …",
"data": { "columns": ["customer_name", "revenue"], "rows": [ … ] },
"explanation": "Acme Ltd leads at 70,467, then Summit Shell …",
"lineage": { "tables": ["orders"], "measures": ["SUM(revenue)"] },
"result": "success"
}06 · Objections
Objections, answered.
Why not just a model and a database connector?
Try both; ours takes five minutes. The model writes a plausible query; the harness executes it, corrects it, or refuses. Every answer ships its SQL, so you can check our work on your own tables.
Is my data safe?
SELECT-only, encrypted credentials, fail-closed tenant isolation with committed proofs, full audit. Start on an uploaded file; connect a database when we've earned it. Or run on your own model key.
What happens when it's wrong?
It tells you. Failures and thumbs-downs land in a worklist; fixes promote into certified metrics — admin-blessed canonical SQL that makes repeat questions exact.
Am I locked in?
No semantic model to author and no cloud to adopt. FactQL is one POST across Postgres, MySQL, a gateway, a spreadsheet or a PDF — and every response ships its SQL, so leaving costs you a URL.
07 · Pricing
Free to build. Paid plans when you ship.
Start here
Developer
$0/mo
Try the real engine, not a crippled trial. Hard $10/month usage cap, no card required.
- The full query engine
- $10 of usage a month, then a 402
- 30 requests a minute per key
- 1 workspace, 3 team members
Team
Early access
For a team shipping a real integration: more room, and the interpretation layer.
- Higher caps and rate limits
- More workspaces and seats
- Signals and briefings
Scale
Talk to us
Your own model keys, custom limits and a security review.
- Bring your own model keys
- Custom limits and support
- Security review
Usage is metered by the model tokens each answer spends. Every plan has a hard cap: at the cap the API returns 402 and you are never invoiced for going over.
08 · Start
Your first verified query is five minutes away.
Upload a CSV or point us at Postgres. Free tier: full engine, hard $10/month cap, no card — at the cap you get a 402, not an invoice.
Get an API key