Skip to content

How to export dashboards and data from Metabase

Every Metabase export path: question CSV, XLSX, JSON and PNG, dashboard PDF, the 1,048,575 row cap, YAML serialization on Pro, guest embeds, and the API.

Namanyay Goel · Updated · 8 min read

An engineering leader at HomeLane described the current process to me: "the best way for them right now is to go to the Metabase or like just create a SQL Query report, but that's not good enough that it takes some time also." The customer asks, an engineer opens Metabase, downloads a CSV, and emails it. If that is your week, this guide is the shortest honest answer to how to export dashboards and data from Metabase, from the download button all the way to moving off it. Every path below is from Metabase's own docs as of September 2026.

The four kinds of export

People say "export from Metabase" and mean four different things.

  1. The rows behind one question, as a file a customer can open.
  2. A whole dashboard, as something you can send.
  3. The dashboard definitions themselves, so you can move them between Metabase instances.
  4. Getting the data to a customer without them logging in, which is embedding, not export, but it is usually the real question.

1. Exporting a question's results

Open the question. The Download button sits at the lower right. You can pick .csv, .xlsx or .json for the data, or .png for a chart image, and you can choose formatted or unformatted values. Two things to know before you promise a customer a file:

  • The default row cap on downloads is 1,048,575. You can raise the CSV cap with the MB_DOWNLOAD_ROW_LIMIT environment variable. Excel cells truncate at 32,767 characters.
  • Downloading is a permission. If a group does not have download permission for the database, the button is not there for them.

Removing the Metabase branding from exported files needs Pro or Enterprise (https://www.metabase.com/pricing/). On the Open Source plan the files carry it.

2. Exporting a dashboard

A dashboard exports to .pdf. That is the whole list of dashboard-level formats in the exporting docs; there is no dashboard-wide CSV, so a multi-card dashboard becomes one PDF or a set of per-question downloads.

3. Exporting dashboard definitions (serialization)

If the goal is to move dashboards, questions and collections from one Metabase to another (staging to production, or a customer's dedicated instance), the path is serialization. It is Pro and Enterprise only, as of September 2026.

  • CLI: export and import commands write and read a directory of YAML files.
  • API: POST /api/ee/serialization/export returns a .tgz, and POST /api/ee/serialization/import loads one.

Two limits from the docs. Both instances must be on the same major version. And the export excludes users, groups, permissions, alerts and database connection strings, so you rebuild those by hand on the target. The YAML is Metabase's format; nothing else reads it, but it is plain text and versions well in Git.

For the Open Source plan there is a blunter option: the whole app and its metadata database are yours, so you can back up and restore the application database itself.

4. What guest embeds allow (and do not)

The question behind most "how do I export this for a customer" tickets is really "how do I let a customer see this." Metabase has three embedding modes, and which one you are on decides what the customer can do and what you pay.

ModePlanCustomer counts as billed userRow and column securityCustomer can editTheming
Public linkAll plansNoNo, bypasses itNoNot published
Guest embed (signed JWT)All plansNoScoped by the signed tokenNoBasic appearance
SSO modular or full-app embedPro and EnterpriseYes, $12 per user per month above 10YesYes, query builder and dashboardsAdvanced

Guest embeds are the reason Metabase is inside so many SaaS products: a signed JWT scopes the view, the customer sees their dashboard, and it costs nothing per viewer. What they cannot do is change anything; self-serve needs SSO embedding. Public links bypass row and column security entirely, so never use them for tenant data.

The moment a customer needs to build their own view, you move to SSO embedding, and each customer becomes a billed user. Pro is $575 a month with 10 users included and $12 per user above that, as of September 2026 (https://www.metabase.com/pricing/). Row and column security also has a documented hole: it cannot apply to SQL questions, and any group with native SQL access bypasses it. The full breakdown is in our Metabase embedded review.

5. The API and the MCP server

For programmatic access, the documented route for definitions is the serialization API above. There is also a built-in MCP server at /api/metabase-mcp with OAuth 2.0, which an admin enables under Admin > AI > MCP. It respects the user's permissions, which is good, and it pages results at 200 rows with a 2,000 row cap, which makes it a question tool rather than an export tool.

When exporting is the wrong fix

Here is the pattern I see on calls. A customer asks for a report. Someone on the team writes a SQL question in Metabase, downloads the CSV, and sends it. Next week the same customer wants one more column. A product leader at XpressDocs told me, "we didn't want to go Metabase, because I think it's going be more of the same." A founder at Confident LIMS, who likes Metabase, still described the ceiling: "Metabase is limited to whatever we decide to give Metabase."

That line is the real constraint. Metabase reads databases. There is no REST or API source in its connector list. So the data your customer wants has to be in a warehouse or a replica first, and the export is a copy of a copy. When your product's truth lives behind its own APIs (billing, usage, permissions, configuration), every Metabase export is one sync job away from being wrong. A product leader at Propstack said it plainly: "getting pie charts and graphs with inaccurate data doesn't make sense."

Moving to a tool that runs on your APIs

Gigacatalyst takes the customer request (the spreadsheet they sent, the ticket, the call transcript) and turns it into a working dashboard or report that runs on your product's own APIs and permissions. There is no warehouse copy to keep in sync, and nothing to export back to the customer, because the report is inside the product they already log into. It only calls the APIs you approve, so it cannot show a number your product does not have. A sales engineering lead at Wrike described it as "it mimics the UI, and then it uses the API."

How the move usually goes:

  1. Pick the three Metabase questions your customers ask for most. Export them as .json or .csv so we can see the shape.
  2. Point us at the API docs for the endpoints behind those numbers.
  3. We rebuild them as reports on your APIs, tenant scoping included because it is your product's auth doing the scoping.

Where Metabase stays the better tool: internal analytics on a warehouse, anonymous or guest viewers at zero per-viewer cost, and any team that needs self-hosting. Gigacatalyst is hosted, we are a young Y Combinator company, and you will need to run us through security review; what we do with your data is written up at /trust. Pricing is quoted per deployment with a pilot. The Gigacatalyst vs Metabase page covers the side by side, and the Metabase alternatives list covers the other tools. If you are also carrying an Explo instance through the Omni sunset, the Explo migration guide has the equivalent export paths.

Next step

Send us the one Metabase question your customers ask for most and the API docs behind it. See it on your own APIs.

Questions people ask

How do I export a Metabase question to CSV or Excel? Open the question and click the Download button at the lower right. Pick .csv, .xlsx or .json, formatted or unformatted. The default cap is 1,048,575 rows and you need download permission for that database.

Can I export a whole Metabase dashboard? Yes, as a .pdf. There is no dashboard-wide CSV; download each question separately for data.

How do I move dashboards between Metabase instances? Use serialization on Pro or Enterprise: the export and import CLI commands or POST /api/ee/serialization/export and /import. Both instances need the same major version, and users, groups, permissions, alerts and connection strings are not included.

Do embedded Metabase users count toward billing? Guest embeds with signed JWTs and public links do not. SSO-authenticated embedded users do, at $12 per user per month above the 10 included on Pro, as of September 2026.

Can Metabase connect to a REST API instead of a database? No. Metabase's official drivers are all databases and warehouses. Data behind your product's APIs has to be synced into a database first, which is the main reason teams look at tools that run on the APIs directly.

Is the Metabase MCP server a way to export data? Not at volume. It respects user permissions but pages results at 200 rows with a 2,000 row total, so use the download button or serialization for exports.

Gigacatalyst turns a customer request into a working dashboard, report or configured app on top of your own product APIs and permissions, so the demo is the real product.

See it on your own APIs

Related comparisons