The Default Backend
for Data Applications.
Connect your data. Define your metrics, dimensions and access rules once. Serve them to every dashboard, app and AI agent, with the same numbers everywhere.
{"name": "revenue_by_plan","sources": [{ "name": "subscriptions", "alias": "s" }],"dimensions": { "plan": { "sql": "s.plan" } },"measures": { "mrr": { "sql": "SUM(s.amount)" } },"rls": {"sql": "s.tenant_id = {{ tenant_id }}","parameters": { "tenant_id": "string" }}}
Analytics today is a tangle of brittle pipes and disagreed numbers.
Every new consumer of your data ships its own queries and access checks. The numbers drift and the rules diverge.
A new pipeline for every consumer
Every dashboard, internal tool and AI feature ends up rebuilding the same queries against raw tables. Different filters, different joins, no shared access rules.
Twelve definitions of MRR
Finance, growth and product each ship their own SQL. Numbers diverge, trust erodes, every meeting starts with reconciliation.
AI on top of chaos
Plugging an LLM into a warehouse with no governance turns hallucinations into business decisions.
The governed backend for everything that queries your analytical data.
Ingest from your warehouses, lakes and files. Define your metrics, dimensions and contracts once. Serve them to dashboards, apps, APIs and AI agents, consistently and safely.
+ Postgres, Redshift, DuckDB, GCS, HubSpot, Segment, NetSuite
Ask your data like you'd ask a teammate.
Pick a question to see Gaur run it against a sample 20-store cafe chain. Natural language in, governed answers out.
- Questions answered through your contracts, never raw SQL
- Answers grounded in your metrics and access rules
- Audit trail of every question and result
One definition. One correct answer.
Every contract carries the access rules and the audit trail. Adding a new consumer doesn't mean writing another query.
- Access rules travel with every query
- Every call audited, including agent calls
- Add a new consumer without writing another query
One platform. Every data interface your team needs.
Chat with data
Natural-language questions resolved against your governed metrics and access rules.
Contracts & semantic layer
Define metrics, dimensions and access rules in one governed interface. Every consumer queries through it.
Connect any source
Ingest from Postgres, MySQL, SQLite, Cloudflare D1, Amazon S3, Cloudflare R2, Stripe, webhooks and file formats (CSV, Parquet, Excel, JSON). Snowflake and BigQuery in the build pipeline.
Embedded analytics
Ship charts and dashboards inside your product with row-level security and tenant isolation.
Governance
Row, column and tenant policies. Audit logs of every query, by every human and agent.
APIs for every consumer
A query API for apps, a chat endpoint for natural language, and an MCP server for AI agents. One API key per consumer.
Same questions. Fewer fires. Less custom plumbing.
Built for the people who own the numbers.
Stop writing the same query twice.
Define each metric once. Hand every team a contract instead of another ad-hoc SQL request.
Customer-facing analytics, governed.
Ship charts, usage meters and AI features into your product, with tenant isolation handled before the query runs.
One number, every meeting.
The board deck, the investor update and Monday standup all pull from the same governed contracts.
An API surface your team actually wants to build on.
A single API for every consumer: a query endpoint for apps, a chat endpoint for natural language, and an MCP server for AI agents. Tenant context built in.
- One API key per consumer, scoped at creation
- Tenant context passed per request, enforced by the contract
- Same response shape for every protocol
// REST query against a contract.const res = await fetch("https://api.gaur.run/v1/api/<consumer>/query",{method: "POST",headers: {Authorization: `Bearer ${apiKey}`,"Content-Type": "application/json",},body: JSON.stringify({contract_name: "orders",query: {measures: ["revenue"],dimensions: [{ name: "plan" }],},context: { tenant_id: req.tenantId },}),},);const { data } = await res.json();
Questions teams ask before they book.
If you don't see yours, the demo call is the fastest way to get a straight answer.
You run your business.
We run your analytics.
Hop on a 30-minute call. We'll connect a sandbox to your warehouse and show you Gaur on your numbers.