Headless BI for the modern data stack

Provide consistent, real-time metrics for all the applications your end users love

What is Headless BI?

Headless BI is an analytical architecture that decouples the analytical backend from the presentation layer. Any data tool can access headless BI platform and consume metrics via open APIs, SDKs, and standard protocols — in real time — making your data available and consistent across your end users and applications.

headless bi schema

Benefits of Headless BI

benefits icon

Enterprise-wide consistency

Build a single source of metrics to ensure that all of your BI tools, scripts, ML models and applications provide updated, clearly defined data to present the same information to the end-users.

benefits icon

Reusable metrics

Increase efficiency by creating metrics arithmetically (“Profit” = “Revenue” - “Expenses”) and avoid custom queries and writing dozens of lines of SQL.

benefits icon

Real-time access 
to data

Stop exporting stale CSV files to analyze your data in external tools. Connect all apps to the metric layer via open APIs and analyze data in real-time.

benefits icon

Drive analytics adoption

Avoid spending time training on new tools or explaining your data to end users through enabling consistent metrics to tools they are already familiar with and use.

Resiliency for data engineers

Headless BI secures analytics and frontend apps from backend infrastructure changes. Data engineers can update the underlying data structure or migrate to another data warehouse without breaking the metrics used by end users and tools.

Resiliency for data engineers

APIs and SDKs for developers

100% declarative API coverage and open source SDKs give developers full access to interact and consume data from headless BI. Use REST APIs, Python, or GoodData.UI React library to integrate analytics into your products and workflows or rapidly build interactive data apps for your customers.

Browse API Reference

good_pandas = GoodPandas(host, token)
good_df = good_pandas.data_frames(workspace_id)
good_df.not_indexed(
    columns=dict(
        revenue='metric/revenue';
    )
)
<Headline
    primaryMeasure={[Md.Revenue]}
/>
const result = await backend
    .workspace(workspace_id)
    .execution()
    .forItems([Md.Revenue])
    .execute();

await result.readAll();

Efficiency for the end users

End users can choose the tools needed to become more efficient and connect them easily to headless BI via PostgreSQL interface. Also, they are free to upgrade to any new application as requirements change without the need for data teams to rebuild metrics.

Efficiency for the end users

Learn more

Slack channel

Speak with peers

Join our Slack

Community

Share ideas, grow your knowledge

Check out the community

Documentation

Get into the technical specifications

Read documentation

University

Learn through our many hands-on tutorials

Go to university

Dive deeper into the GoodData platform