Agents now connect to datahashi over OAuth — scoped tokens, no API keys to paste
datahashi
Open console

Same metric for humans and AI agents — without hallucinated SQL.

One governed model between your warehouse and everyone who queries it — analysts, dashboards, embedded apps, and MCP agents. Each asks for a metric by name and gets the same trusted number. datahashi compiles fan-out-safe SQL and runs it in your warehouse.

You send business terms. datahashi writes the SQL.

semantic-query.json
{
  "metrics": ["avg_order_value"],
  "dimensions": [
    "Customer.region",
    { "name": "ordered_at", "entity": "Order",
      "grain": "month" }
  ],
  "filters": [
    { "dimension": "status", "entity": "Order",
      "op": "eq", "value": "completed" }
  ],
  "order": [{ "ref": "ordered_at" }],
  "limit": 100
}
compiled.sql
SELECT c.region,
       date_trunc('month', o.ordered_at) AS ordered_at,
       SUM(o.amount) / COUNT(o.id)       AS avg_order_value
FROM public.orders o
JOIN public.customers c ON o.customer_id = c.id
WHERE o.status = 'completed'
GROUP BY c.region, ordered_at
ORDER BY ordered_at
LIMIT 100;

Governed by design.

Fan-out-safe across every join.

Runs in your warehouse.

Metered on every query.

How it works

From warehouse to governed answer in three steps.

Step 01

Connect your warehouse

Point datahashi at Snowflake or BigQuery (also Postgres, MySQL, or DuckDB) with a read-only role. Nothing is copied out.

$ datahashi connect \
    snowflake://analytics
✓ 214 tables found
Step 02

Author and publish a model

Describe your entities, dimensions, and measures in YAML, then publish it as a frozen, versioned model.

metrics:
  - name: avg_order_value
    expr: revenue / order_count
    unit: USD
    format: currency
Step 03

Query over REST or MCP

People and agents send metrics × dimensions × filters. datahashi resolves the joins and returns governed rows — same metric names in the dashboard and the agent.

POST /v1/query
{ "metrics": ["avg_order_value"],
  "dimensions": ["Customer.region"] }

One model, every consumer

Built for everything that asks a question — especially agents.

Whatever asks — an MCP agent, a BI tool, or an app — the request is the same structured object, and only datahashi touches the warehouse.

Agents, over MCP and OAuth

An agent signs in with a scoped, short-lived token — no API key to paste. It picks names from your catalog and sends the same structured query as everyone else. No hallucinated joins, no invented columns.

Apps, over REST

One governed HTTP endpoint. Dashboards and embedded apps reference metrics and dimensions by name, never raw tables.

BI and analysts

Same metric names as the agent. Dashboard X and agent Y return the same number.

Metering, on every query

Each query records what it scanned, against the caller. One endpoint tells you what a team or customer cost over any window.

Plans

Price on metrics, environments, and agents — not seats.

Agents break seat economics.

Starter

Self-serve / small team. Guide $999/mo (or $10k/yr).

  • 1 warehouse env
  • Up to 25 metrics
  • Core API + MCP
  • Community support
Growth

Multi-consumer teams (BI + agents). Guide $3,500/mo (or $35k/yr).

  • Up to 3 envs
  • Up to 150 metrics
  • BI + MCP + API
  • SSO
  • Email support
Enterprise

Platform / regulated.

  • Custom metrics & envs
  • Multi-tenant
  • VPC/BYOC
  • SLA & audit
  • Dedicated success

Paid pilot $1,500/mo · 4–6 weeks · success = dashboard X and agent Y return the same number.

Enterprise

Need it on your terms?

For teams with strict isolation, procurement, or deployment requirements. Tell us what you need and we’ll shape a fit.

Get in touch