Embedding requires the embedding add-on for Cloud Pro or Enterprise. Get in touch to add embedding to your plan. For self-hosted deployments, follow embedding setup.
What can you embed?
Lightdash supports embedding several types of content, each designed for different use cases:Dashboards
Embed complete dashboards with multiple visualizations, filters, and tabs. Perfect for providing comprehensive analytics views in your application. Use cases:- Executive dashboards in admin panels
- Customer-facing analytics portals
- Embedded reporting for SaaS applications
Charts
Embed individual saved charts for focused, single-metric displays. Charts provide a minimal UI for clean integration. Use cases:- Single KPI widgets in applications
- Embedded metrics in marketing pages
- Focused analytics in workflows
AI agents
Embed a Lightdash AI agent so customers can chat with their data and generate charts without leaving your product. Each embed is scoped to a single agent and space. Use cases:- “Chat with your data” experiences inside customer-facing apps
- Self-serve analytics where customers can ask ad-hoc questions
- Scoped AI access where each customer can only see their own content
Metrics catalog
Embed the project’s metrics catalog so users can browse the metrics and dimensions in your semantic layer, preview them, and — if you allow it — jump into Explore from any metric. Great for surfacing “what can I measure?” inside your product without exposing a full Lightdash workspace. Use cases:- A self-serve metric browser inside a customer-facing app
- A discovery surface next to your own charts so users can find related metrics
- Guided exploration where users start from a metric and continue into Explore
Data apps
Embed a data app as standalone content in an iframe — the full app, no dashboard or surrounding chrome. Useful when you want to surface an entire AI-generated app as a feature in your product. Use cases:- Customer-facing interactive reports
- Embedded narratives or slide-show apps in your product
- Self-serve analytics views built on your semantic layer
Choose an embedding method
Lightdash offers two ways to embed content in your own application. iframe embedding lets you embed content inside your own web page: dashboards, charts, standalone data apps, and AI agents. You generate a JWT, construct a URL, and add it to an<iframe> tag. There are no additional setup requirements and this works anywhere (React, Vue, plain HTML). An embed URL also opens on its own in a browser tab; see Open an embed URL as a link.
React SDK (@lightdash/sdk) is the most powerful option. It supports dashboards, charts, AI agents, and the metrics catalog, lets you pass filters programmatically, hook into user interaction callbacks (like when someone navigates to Explore), and apply custom styling to match your app. It requires a React/Next.js app and your app’s origin in your organization’s CORS settings.
Both methods use the same JWT-based authentication and security model.
Quick comparison
Passing filters to embedded dashboards
Both methods support filters, just differently:- JWT config — Set filters in the token payload at embed time. Works for both methods.
- React SDK
filtersprop — Pass them dynamically at runtime. Better if filters need to change based on the logged-in user.
CORS
CORS controls which browser origins can call the Lightdash API. You only need to configure it when your embedded application calls Lightdash from the browser — that is, when using the React SDK. iframe embeds do not need CORS. See Set up CORS for how to add your origins.Quick start: Embed a dashboard
This quick start will walk you through embedding your first dashboard using an iframe.Step 1: Create an embed secret
First, you need to generate a secret per project. This secret is like a password that will help you encrypt the URLs so we know the access is valid.
Generate new secret button. If you do this, every embed URL signed with the old secret stops working.
Step 2: Add allowed dashboards
Only selected dashboards can be accessed via embed URLs. Add the dashboard you want to embed to the allowed list.
Step 3: Configure and preview
Under the “Configure” section, you can:- Select which dashboard to embed
- Set token expiration time
- Configure interactivity (filters, exports, etc.)
- Add user attributes for row-level security

Preview to see how the embedded content will look, and click on Generate & copy URL to get a one-off embed URL for testing.
Step 4: Generate tokens programmatically
Although you can generate URLs directly from Lightdash with a long expiration, it is recommended to generate your own JWTs in your backend with a short expiration using yoursecret to make sure people can’t be using embed URLs outside your app.
Lightdash provides code snippets you can copy and use in your app to generate valid embed URLs, and the embedding reference documents the full JWT structure:

Common questions
Do I need a Lightdash account to view embedded content?
No, embedded Lightdash content is available to view by anyone (not just folks with a Lightdash login). So, for example, you could embed a dashboard in your product, and anyone who has access to your product would have access to that dashboard. No need to login to Lightdash. We make sure that the links are secure and have a set expiry time that you pick. Because embedded viewers aren’t Lightdash users, they have no personal warehouse credentials. Embeds can’t run queries in a project whose connection has Require users to provide their own credentials turned on; they fail withEmbedded users cannot use personal warehouse credentials.
How does security work?
Embedded content is secured using JWT (JSON Web Tokens) that you sign with your embed secret. The token includes:- What content to display (dashboard or chart)
- Expiration time
- User attributes for row-level filtering
- Permissions for interactivity (filters, exports, etc.)