What’s new

Embedding introduction

You can embed Metabase tables, charts, and dashboards—even Metabase’s query builder—in your website or application.

Here are the different ways you can embed Metabase.

Embedded analytics SDK with React

With the Embedded analytics SDK, you can embed individual Metabase components with React (like standalone charts, dashboards, the query builder, and more). You can manage access and interactivity per component, and you have advanced customization for seamless styling.

When to use the Embedded analytics SDK: you want the most control over how you embed Metabase in your React app.

Embedded analytics JS

With Embedded analytics JS, you can embed individual Metabase components in your web app with JavaScript — no React required. Choose from dashboards, questions, or the query builder, and configure per‑component options like drill‑through, parameters, downloads, and theming. Embedded Analytics JS integrates with SSO and data permissions.

When to use Embedded analytics JS: You want to offer multi-tenant, self-service analytics, you’re not using React (or want a drop‑in script) and want to embed Metabase components with per‑component controls and theming.

Static embedding

Also known as signed embedding, static embedding is a secure way to embed charts and dashboards.

When to use static embedding: you don’t want to offer ad-hoc querying or chart drill-through. To filter data relevant to the viewer, you can use static embeds with locked parameters.

If you’d like to share your data with the good people of the internet, admins can create a public link or embed a question or dashboard directly in your website.

When to use public links and embeds: public links and embeds are good for one-off charts and dashboards. Admins can use them when you just need to show someone a chart or dashboard without giving people access to your Metabase. And you don’t care who sees the data; you want to make those stats available to everyone.

Interactive embedding

Interactive embedding allows you to embed the entire Metabase app in an iframe, and integrate Metabase SSO with your app’s authentication.

Comparison of embedding types

Action React SDK JS Interactive Static Public
Display charts and dashboards ✅ ✅ ✅ ✅ ✅
Display interactive filter widgets ✅ ✅ ✅ ✅ ✅
Export results* ✅ ✅ ✅ ✅ ✅
Restrict data with locked filters ❌ ❌ ❌ ✅ ❌
Data segregation ✅ ✅ ✅ ❌ ❌
Use the drill-through menu ✅ ✅ ✅ ❌ ❌
Self-serve via query builder ✅ ✅ ✅ ❌ ❌
Basic appearance customization** ✅ ✅ ✅ ✅ ✅
Advanced theming ✅ ✅ ❌ ❌ ❌
View usage of embeds with usage analytics ✅ ✅ ✅ ❌ ❌
Embed individual Metabase components ✅ ✅ ❌ ❌ ❌
Manage access and interactivity per component ✅ ✅ ❌ ❌ ❌
Custom layouts ✅ ❌ ❌ ❌ ❌
Customize behavior with plugins ✅ ❌ ❌ ❌ ❌

* Each embedding type allows data downloads by default, but only Pro and Enterprise plans can disable data downloads.

** Requires a Pro and Enterprise plan for any embedding type.

Embedded analytics SDK vs JS

When deciding between the Embedded analytics SDK and Embedded analytics JS: if your app uses React, you should use the SDK. Otherwise, use the JS library. The JS library uses the SDK under the hood, but you can have more control with React and the SDK.

Switching from static embedding to Embedded Analytics JS

Embedded Analytics JS requires authentication via single sign-on (SSO), so you’ll need to set that up both in your Metabase and in your application’s server. Check out our Modular embedding authentication.

Further reading

Read docs for other versions of Metabase.

Was this helpful?

Thanks for your feedback!
Want to improve these docs? Propose a change.