Headless BI and Metrics Layer Tools in 2026, Compared on What They Serve and What They Enforce

Headless BI removes the dashboard from the middle of the stack. It does not automatically put a permission model there instead. One of the tools below ships with no authentication at all and says so in its own README. Another gates its agent API behind a cloud plan you cannot self-host. This page compares seven headless BI and metrics layer tools on what they serve and what they actually enforce. Colrows is included, and its section is marked as ours.

A headless semantic core serving dashboards, notebooks, applications and AI agents, beside a BI-native model where the definition is trapped inside one suite.

Serving and enforcing are different jobs

DimensionWhat headless BI gives youWhat it does not give you
DefinitionOne place to define a metricA guarantee the query is built correctly
DeliveryAn API any consumer can callA permission model on that API
ReachDashboards, notebooks, apps, agentsEqual features when you self-host
GovernanceUsually a runtime checkA check before the plan is built

The first column is the pitch and it is real. The second column is where production deployments fail, and it is what this scorecard measures. Our comparisons and evaluations hub covers the architecture debate behind it.

The scorecard

Authentication and parity claims come from each vendor's own documentation. Directional, not lab numbers.

ToolServesAuth on the agent APIGovernance timingSelf-hosted parity
ColrowsBI, apps, agentsGoverned by the graphBefore executionOn-premise supported
CubeBI, apps, agentsOAuth, Premium and aboveAt executionCore open, MCP is cloud
dbt Semantic LayerBI, notebooks, agentsCloud-only APIsAt executionMetricFlow open, APIs are not
GoodDataBI, apps, agentsBearer tokenAt executionContainer option
LightdashBI, agentsPersonal access tokenAt executionNo MCP when self-hosted
Malloy PublisherApps, agentsNone by defaultNetwork placement onlyFull, and unauthenticated
AtScaleBI, Excel, appsEnterprise SSOAt executionSelf-managed

Fix the Context, Not the Model. A well-governed semantic layer that understands business context creates more reliable AI-driven analytics than fine-tuning the model itself. Serving that context over an API is the easy half. Deciding who may receive it is the half that decides whether you can ship.

The seven, by what they serve

1. Colrows - governed before the query exists

Colrows serves one compiled definition to BI tools, applications, and agents across 16 or more engines. The permission check runs at compile time, so the API cannot return a plan the caller was never allowed to request. Colrows supports on-premise deployment for estates that cannot send questions to a vendor cloud.

2. Cube - the reference headless implementation

Cube exposes REST, GraphQL, and a SQL API that speaks the Postgres wire protocol. That last detail is why so many BI tools connect to it without a custom driver. Cube Core is Apache 2.0 and free to self-host. Cube gates the MCP server, and its 23 documented tools, to Premium and Enterprise. The agent path is therefore not part of the open core.

3. dbt Semantic Layer - open definitions, closed serving

dbt Semantic Layer is the clearest example of the split. MetricFlow became Apache 2.0 in October 2025, so anyone can compile the definitions. The Service Layer and the GraphQL and JDBC APIs that actually serve them stay cloud-only. Self-hosting gives you the modelling, not the serving.

4. GoodData - API-first with a caching engine

GoodData serves 22 documented data sources through a REST API, React and Python SDKs, and an MCP server that reached general availability in January 2026. GoodData publishes rate limits for about twenty endpoints and withholds them for the rest. That gap matters when you size an agent workload.

5. Lightdash - dbt-native, with a cloud boundary

Lightdash builds its semantic layer directly from dbt YAML, which makes adoption cheap for dbt teams. Two boundaries matter before you commit. Lightdash offers the MCP server to cloud users and does not support it self-hosted. Its docs also warn that the permission model does not cover agent knowledge documents.

6. Malloy Publisher - powerful language, unguarded server

Malloy is a genuine modelling language with an active release cadence, now a Linux Foundation project rather than a Google one. Publisher is the part that serves models to agents, and its own documentation is candid. It ships with no authentication and binds all interfaces by default. Anyone who can reach the port can run queries through any configured connection. Treat it as an authoring tool behind a firewall rather than a governed serving layer.

7. AtScale - headless for the Excel estate

AtScale is headless in the sense that matters to large finance teams. It serves live aggregates to Excel over MDX as well as to BI over SQL, across 11 supported platforms. There is no public list price, and aggregate design is a services line.

Three questions to ask before you commit

Does the open-source version include the agent API? For most of this list the answer is no. The core is open and the serving layer or the MCP server is commercial, which changes the build-versus-buy maths entirely.

When does the permission check run? Every tool here except one checks at execution, after the query already exists. Compile-time enforcement is the difference between a blocked query and an impossible one. We set out that argument in governing AI agents that query enterprise data.

What happens under agent load? Vendors sized these APIs for dashboards refreshing on a schedule. An agent asking multi-step questions changes both the request pattern and the bill. We cover that in the semantic layer pricing comparison and agentic BI tools.

The limits that bite under agent load

Headless vendors publish generous-sounding row caps and then quietly withhold the number that matters. Three published limits are worth reading before you size anything.

  • Cube caps the API at 100 requests per second per deployment and returns 429 above it. Its default query row limit is 50,000, and the Starter tier tops out at 50,000 queries a day.
  • GoodData publishes limits for about twenty endpoints and states that the rest vary by region and capacity. You cannot size an agent workload against a number the vendor declines to give.
  • Lightdash caps MCP SQL results at 500 rows by default, configurable to 5,000. Its embedded CSV export sits at a hardcoded 500 rows, and Lightdash closed the request to make that configurable as not planned.

None of these are unreasonable for dashboards. They become the binding constraint when one business question turns into twenty API calls, which is the pattern agentic BI tools describes.

Where the open core stops

Most of this category markets itself as open source. The open part is usually the modelling, and the part an agent needs is usually not.

ToolOpen sourceCommercial
CubeCube Core, Apache 2.0MCP server, Premium and above
dbt Semantic LayerMetricFlow, Apache 2.0Service Layer and all serving APIs
LightdashCore, MITMCP server, cloud only
MalloyLanguage and PublisherNothing, and no vendor either

Malloy is the honest edge case. Everything is open, including the serving layer, and there is no commercial entity behind it. The project is active and the release cadence is fast. What you do not get is authentication, a support contract, or anyone to call.

How to choose

  • Embedded analytics inside your own product: Cube, for the API breadth and the wire-protocol compatibility.
  • A dbt team that wants BI without a second modelling language: Lightdash, if cloud hosting is acceptable.
  • Excel is the real front end: AtScale.
  • You need an open language and control the network: Malloy, placed carefully.
  • Agents query regulated data: require compile-time governance and reproducible SQL first, then compare the rest.

A note on the claims

Authentication behaviour, plan gating, and self-hosted parity come from each vendor's own documentation as of late August 2026. Where a vendor states a limitation plainly, we quote the substance rather than paraphrase it. Preview and beta status in this category changes quickly. Colrows sells a competing product, and we wrote the sections above with that disclosed. We review this page quarterly.

Frequently asked questions

What is headless BI?

Headless BI separates metric definitions from the tool that displays them. The definitions live in one service, which serves them over an API to dashboards, notebooks, applications, and AI agents. Nothing renders a chart unless you ask it to. The point is that the definition outlives any one dashboard, and every consumer gets the same number.

What is the difference between headless BI and a semantic layer?

A semantic layer is the set of definitions. Headless BI is the delivery model that serves those definitions over an API instead of rendering its own dashboards. Every headless BI product contains a semantic layer. A semantic layer can also sit inside a warehouse or a BI tool, where only that platform reads it.

Is headless BI secure by default?

Not necessarily, and the difference between tools is large. Malloy Publisher documents that it ships with no authentication and binds all interfaces by default. Governance then depends entirely on where you place it on the network. Lightdash warns that agent knowledge documents are not covered by its permission model. Ask each vendor when the permission check runs, not whether permissions exist.

Can I self-host headless BI and still get the agent features?

Often not. Lightdash makes its MCP server available to cloud users and does not support it self-hosted. Cube gates its MCP server to Premium and Enterprise plans. dbt keeps MetricFlow open under Apache 2.0 but keeps the serving APIs cloud-only. If self-hosting matters, confirm agent-feature parity before you choose, because the open-source core rarely includes the agent surface.

Serve every consumer from one governed definition.