If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: docs.rilldata.com/developers/embed/iframe - Embed Dashboards in an Iframe .

site address: docs.rilldata.com/developers/embed/iframe redirected to: docs.rilldata.com/developers/embed/iframe

site title: Embed Dashboards in an Iframe Rill

Our opinion (on Tuesday 07 July 2026 19:43:55 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:



Meta tags:
description=Embed Rill dashboards in your own applications using iframes;

Headings (most frequently used words):

an, the, dashboard, embed, in, iframe, embedding, example, dashboards, introduction, create, service, token, backend, build, url, user, identity, embeds, project, vs, individual, testing, frontend, appendix, react, next, js,

Text of the page (most frequently used words):
the (86), rill (38), #iframe (36), user (34), dashboard (28), your (26), error (23), for (23), json (22), and (22), api (21), embed (20), project (20), http (20), attributes (19), resource (18), type (18), err (17), url (16), you (16), name (16), email (16), service (15), token (14), end (14), with (14), dashboards (14), response (13), const (13), import (13), org (13), can (12), return (12), set (12), security (12), user_email (12), theme (12), embedding (11), request (11), explore (11), policies (11), application (10), use (10), string (10), rilldata (9), iframesrc (9), navigation (9), map (9), backend (8), create (8), body (8), post (8), app (8), used (8), state (8), should (8), com (8), dashboardname (8), per (8), optionally (8), data (7), example (7), content (7), headers (7), that (7), include (7), external_user_id (7), admin (7), will (7), springframework (7), role (7), then (6), how (6), using (6), https (6), nil (6), port (6), react (5), frontend (5), individual (5), false (5), fetch (5), true (5), cloud (5), payload (5), wish (5), only (5), own (5), custom (5), not (5), enable (5), domain (5), are (5), system (5), dark (5), orgs (5), projects (5), resttemplate (5), new (5), authorization (5), statusinternalservererror (5), express (5), next (4), identity (4), postmessage (4), usestate (4), from (4), embedded (4), see (4), which (4), cli (4), developer (4), parameters (4), allow (4), one (4), level (4), this (4), here (4), access (4), light (4), other (4), options (4), responseentity (4), address (4), bearer (4), get (4), requestbody (4), java (4), web (4), 3000 (4), flask (4), tokens (4), embeds (3), build (3), different (3), 100 (3), setloading (3), message (3), seterror (3), being (3), page (3), also (3), its (3), time (3), view (3), reference (3), value (3), code (3), specific (3), when (3), between (3), like (3), stable (3), such (3), parameter (3), valid (3), passed (3), defaults (3), mode (3), theme_mode (3), navigate (3), httpentity (3), object (3), put (3), svc (3), httpheaders (3), getrilliframe (3), bind (3), annotation (3), main (3), respbody (3), header (3), resp (3), reqbody (3), jsonify (3), requests (3), res (3), require (3), why (3), ability (3), policy (2), appendix (2), testing (2), introduction (2), previous (2), examples (2), height (2), width (2), src (2), title (2), isloading (2), catch (2), setiframesrc (2), else (2), stringify (2), method (2), host (2), useeffect (2), default (2), render (2), exposed (2), details (2), via (2), might (2), have (2), multiple (2), views (2), test (2), pass (2), users (2), list (2), what (2), first (2), single (2), developers (2), whether (2), through (2), any (2), identifier (2), enables (2), chat (2), history (2), provided (2), directly (2), does (2), combine (2), looks (2), after (2), features (2), available (2), purposes (2), 86400 (2), ttlseconds (2), runtime_host (2), contain (2), external (2), raw (2), about (2), populate (2), required (2), following (2), class (2), entity (2), hashmap (2), public (2), postmapping (2), restcontroller (2), util (2), server (2), started (2), fmt (2), func (2), var (2), ioutil (2), bytes (2), net (2), __name__ (2), 500 (2), dashboard_name (2), try (2), python (2), await (2), rillservicetoken (2), rillproject (2), rillorg (2), req (2), node (2), javascript (2), curl (2), authenticated (2), deployment (2), management (2), apis (2), generate (2), command (2), service_name (2), organization (2), iframes (2), deploy (2), files (2), configuration (2), quickstart (2), 2026, inc, contributing, community, terms, privacy, find, 1000, failed, loading, undefined, rilldashboard, function, export, depending, written, language, resulting, display, accordingly, below, basic, once, parent, read, write, selected, filters, range, based, step, html, element, value_2, custom_variable_2, value_1, custom_variable_1, while, possible, easier, start, off, especially, attribute, want, before, deploying, custom_attributes, would, during, generation, pre, filtered, mock, finally, simply, omit, appropriately, instead, open, still, both, but, look, most, common, differences, may, they, behavior, controlled, combination, properties, usually, database, setting, passes, make, sure, all, referenced, tenant_id, populates, their, standard, matching, found, generates, limited, fields, part, derived, commonly, app_site_domain, given, combined, either, them, each, works, establishes, isolates, without, these, determine, serve, two, accesstoken, instanceid, runtimehost, access_token, instance_id, runtime, indicates, long, needs, refreshed, underlying, longer, ttl, has, elapsed, live, ttl_seconds, accessing, values, follow, preference, themes, boolean, hard, allows, identified, canvas, specified, description, accepts, getbody, postforentity, dashboardcontroller, client, spring, boot, listenandserve, println, handlefunc, encode, newencoder, unmarshal, readall, close, defer, newbuffer, marshal, decode, newdecoder, responsewriter, encoding, package, run, __main__, str, requestexception, except, raise_for_status, get_rill_iframe, def, methods, route, running, log, console, listen, status, throw, async, location, languages, context, enforcement, row, authentication, logic, restrict, avoid, leaking, master, browser, there, reasons, constructed, must, implement, uses, retrieve, hosted, broad, permissions, handled, confidentially, therefore, itself, integrated, facing, publicly, caution, urls, result, 403, permission, viewer, comprehensive, documentation, including, roles, info, project_name, current, need, afterwards, rendering, high, diagram, flow, present, select, exist, same, standalone, provides, components, few, home, release, notes, tutorials, managing, errors, configure, credentials, debugging, ide, integration, organize, alerts, metrics, models, connectors, agentic, install, search, github, blog, contact, rest, iso, 8601, syntax, guide, skip,


Text of the page (random words):
embed dashboards in an iframe rill skip to main content developers guide reference project files time syntax rill iso 8601 url parameters cli rest api contact us blog github search get started install rill developer agentic quickstart quickstart why rill build your first project connectors models metrics views dashboards custom apis alerts project configuration ai configuration organize your code files external ide integration debugging in rill developer deploy rill cloud vs rill developer configure deployment credentials deploy dashboards managing project errors embed iframe postmessage api tutorials other release notes home embed iframe on this page embed dashboards in an iframe introduction rill cloud provides the ability to embed dashboards as components in your own application using iframes with a few different options embedding individual dashboards as standalone iframes embedding individual dashboards with the ability to navigate to other dashboards that exist in the same project embedding the dashboard list page present in a rill project with the ability to select and navigate between dashboards when embedding rill you need to generate a service token for your backend to request an authenticated iframe url via the rill api afterwards the iframe url can be passed to your frontend application for rendering here s a high level diagram of what this flow looks like create a service token use the rill cli to create a service token for your current organization using the following command create with organization role rill service create service_name org role admin or create with project specific role rill service create service_name project project_name project role admin info for comprehensive documentation on service tokens including roles custom attributes and management see service tokens also see the cli reference for command details why is the admin role required service tokens used for iframe embedding require the admin role to access the deployment management apis that generate iframe urls using the viewer role will result in a 403 permission error caution service tokens can have broad permissions and should be handled confidentially therefore the service token itself should not be integrated directly in frontend or other user facing code that can be exposed publicly backend build an iframe url you should implement an api on your backend that uses the service token to retrieve and return an iframe url from rill s api which is hosted on api rilldata com there are multiple reasons why the iframe url must be constructed on your backend to avoid leaking your master rill service token in the browser to allow you to use your own authentication and authorization logic to restrict access to the dashboard to optionally use your backend s context about the authenticated user to include user attributes in the iframe url for enforcement of row level security policies here are examples of how to get an iframe url using different languages curl javascript python go java curl x post location https api rilldata com v1 orgs org name projects project name iframe header content type application json header authorization bearer rill svc token data raw type explore resource explore name user_email user email javascript node js with express js const express require express const fetch require node fetch const rillservicetoken your rill service token const rillorg your rill org name const rillproject your rill project name const app express app use express json app post api rill iframe async req res const dashboardname req body resource try const response await fetch https api rilldata com v1 orgs rillorg projects rillproject iframe method post headers content type application json authorization bearer rillservicetoken body json stringify type explore resource dashboardname optionally include the end user s email address for security policies user_email end user email optionally set theme and theme mode theme my custom theme theme_mode dark options light dark system const data await response json if response ok res json data else throw new error data message catch error res status 500 json error error message const port 3000 app listen port console log server running on port port python with flask from flask import flask request jsonify import requests app flask __name__ app route api rill iframe methods post def get_rill_iframe dashboard_name request json get resource try response requests post https api rilldata com v1 orgs org name projects project name iframe headers content type application json authorization bearer rill svc token json type explore resource dashboard_name optionally include the end user s email address for security policies user_email end user email optionally set theme and theme mode theme my custom theme theme_mode dark options light dark system response raise_for_status data response json return jsonify data except requests requestexception as e return jsonify error str e 500 if __name__ __main__ app run port 3000 go with net http package main import bytes encoding json fmt io ioutil net http func getrilliframe w http responsewriter r http request var reqbody map string string json newdecoder r body decode reqbody dashboardname reqbody resource requestbody err json marshal map string string type explore resource dashboardname optionally include the end user s email address for security policies user_email end user email if err nil http error w err error http statusinternalservererror return resp err http post https api rilldata com v1 orgs org name projects project name iframe application json bytes newbuffer requestbody if err nil http error w err error http statusinternalservererror return defer resp body close body err ioutil readall resp body if err nil http error w err error http statusinternalservererror return var respbody map string any err json unmarshal body respbody if err nil http error w err error http statusinternalservererror return w header set content type application json err json newencoder w encode respbody if err nil http error w err error http statusinternalservererror return func main http handlefunc api rill iframe getrilliframe fmt println server started at port 3000 http listenandserve 3000 nil java with spring boot import org springframework web bind annotation postmapping import org springframework web bind annotation requestbody import org springframework web bind annotation restcontroller import org springframework web client resttemplate import org springframework http responseentity import org springframework http httpentity import org springframework http httpheaders import java util hashmap import java util map restcontroller public class dashboardcontroller postmapping api rill iframe public responseentity getrilliframe requestbody map string object payload string dashboardname string payload get resource httpheaders headers new httpheaders headers set content type application json headers set authorization bearer rill svc token map string object request new hashmap request put type explore request put resource dashboardname optionally include the end user s email address for security policies request put user_email end user email httpentity map string object entity new httpentity request headers resttemplate resttemplate new resttemplate responseentity map response resttemplate postforentity https api rilldata com v1 orgs org name projects project name iframe entity map class return responseentity ok response getbody the api accepts the following parameters parameter description required resource the name of the dashboard to embed no if not specified navigation should be set to true type the type of the dashboard identified by resource options explore canvas no defaults to explore navigation boolean whether to enable navigation and allow users to navigate to other dashboards false will hard embed and allow access to a single dashboard true allows navigation no defaults to false theme if themes are being used the specific theme to pass to the embedded dashboard no set to the name of the theme theme_mode the theme mode to use for the embedded dashboard valid values light dark system when set to system the dashboard will follow the user s system preference no defaults to light user_email email of the end user accessing the embed used to populate attributes for use in security policies no only one of user_email or attributes should be passed in attributes raw attributes about the end user used to populate attributes for use in security policies no only one of user_email or attributes should be passed in external_user_id a stable identifier for an external end user enables per user state no ttl_seconds the time to live for the iframe url no default 86400 the response of the post request will then contain an iframesrc value that can be used to embed the dashboard or set of dashboards in your application it will also contain a ttlseconds value which indicates how long the iframe url will be valid for after the ttl has elapsed the iframe url needs to be refreshed as the underlying access token being used will no longer be valid for security purposes here s an example response iframesrc https ui rilldata com embed access_token token instance_id id type dashboard type resource dashboard name runtime_host runtime host runtimehost runtime_host instanceid id accesstoken token ttlseconds 86400 user identity in embeds the user_email attributes and external_user_id parameters serve two purposes in the embeds user attributes for security policies user_email and attributes determine which attributes such as email domain and admin are available for use in security policies per user state external_user_id establishes a stable user identity that isolates per user features such as ai chat history without a user identity these features are not available only one of user_email or attributes can be provided for a given iframe the external_user_id parameter can optionally be combined with either of them here is how each parameter works user_email looks up the user in rill cloud by email and populates their standard attributes if no matching user is found it generates limited attributes with only the fields email domain the part of the email after and admin set to false the derived domain is commonly used in security policies e g app_site_domain user domain does not enable per user state on its own combine with external_user_id to enable per user state attributes passes the provided attributes through directly make sure to include all attributes referenced in your security policies e g email domain admin or custom attributes like tenant_id does not enable per user state on its own combine with external_user_id to enable per user state external_user_id any stable identifier for the end user this is usually the user s id in your own database setting it enables per user state such as ai chat history embedding the project vs embedding an individual dashboard one of the most common differences between how developers may wish to iframe rill is whether they wish to embed at the project level or individual dashboard level this behavior can be controlled through the combination of the resource and navigation properties if you wish to embed a single dashboard only your payload might look like type explore resource dashboardname if you wish to still embed a dashboard but allow navigation between dashboards then your payload should include both parameters type explore resource dashboardname navigation true finally if you wish to embed the project list view of dashboards instead what you see when you first open a project in rill cloud then you can simply omit the resource and appropriately set navigation in your payload navigation true testing the dashboard while it is possible to create the iframesrc url via the cli or code to test your embedded dashboard it might be easier to start off using rill developer s mock users especially if you have multiple attribute views that you want to test before deploying to rill cloud you can pass specific custom_attributes as you would during iframe url generation to view the pre filtered explore dashboard email embed rilldata com name embed custom_variable_1 value_1 custom_variable_2 value_2 frontend embed the dashboard your frontend should request an iframe url from your backend api which you set up in the previous step and use the iframesrc value of the response to render an html iframe element iframe title rill dashboard src iframesrc width 100 height 100 once the dashboard is embedded the parent page can also read and write its ui state selected resource filters time range view type and so on using a postmessage based api exposed by the iframe see the postmessage api reference for details appendix react example depending on how your app is written and the language being used you can then use the resulting iframe url to embed and display rill dashboards accordingly below is a basic example of how to fetch and render a dashboard in react import react useeffect usestate from react export default function rilldashboard const isloading setloading usestate true const iframesrc setiframesrc usestate const error seterror usestate useeffect fetch your backend host api rill iframe method post headers content type application json body json stringify resource your dashboard name then response response json then iframesrc error if error undefined seterror error else setiframesrc iframesrc setloading false catch err seterror err message setloading false if isloading return p loading p if error return p failed with error error p return iframe title rill dashboard src iframesrc width 100 height 1000 next js example you can find a different end to end example of embedding a rill dashboard in a next js project in rilldata rill examples embedding previous embed next postmessage api introduction create a service token backend build an iframe url user identity in embeds embedding the project vs embedding an individual dashboard testing the dashboard frontend embed the dashboard appendix react example next js example 2026 rill data inc privacy policy terms of service community policy contributing
Thumbnail images (randomly selected): * Images may be subject to copyright.GREEN status (no comments)
  • Rill Logo
  • Rill Logo

Verified site has: 38 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-38


The site also has references to the 1 subdomain(s)

  rilldata.com  Verify


The site also has 1 references to external domain(s).

 github.com  Verify


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/1.1 301 Moved Permanently
Content-Type text/plain; charset=utf-8
Date Tue, 07 Jul 2026 19:43:54 GMT
Location htt????/docs.rilldata.com/developers/embed/iframe
Server Netlify
X-Nf-Request-Id 01KWZ1QGYATDAXZY4DGVWR1TED
Content-Length 64
Connection close
HTTP/2 200
accept-ranges bytes
age 1
cache-control public,max-age=0,must-revalidate
cache-status Netlify Edge ; fwd=miss
content-encoding gzip
content-type text/html; charset=UTF-8
date Tue, 07 Jul 2026 19:43:55 GMT
etag 2e0ca8bbd0232f2234e6e279377c6405-ssl-df
server Netlify
strict-transport-security max-age=31536000
vary Accept-Encoding
x-nf-request-id 01KWZ1QH3E5YJS91Q2KM2RN68R

Meta Tags

title="Embed Dashboards in an Iframe | Rill"
charset="UTF-8"
name="generator" content="Docusaurus v3.9.2"
data-rh="true" name="viewport" content="width=device-width,initial-scale=1"
data-rh="true" name="twitter:card" content="summary_large_image"
data-rh="true" property="og:url" content="htt????/docs.rilldata.com/developers/embed/iframe"
data-rh="true" property="og:locale" content="en"
data-rh="true" name="docusaurus_locale" content="en"
data-rh="true" name="docsearch:language" content="en"
data-rh="true" property="og:image" content="htt????/assets-global.website-files.com/659ddac460dbacbdc813b204/65bad0233db92db596c29c34_social1.jpg"
data-rh="true" name="twitter:image" content="htt????/assets-global.website-files.com/659ddac460dbacbdc813b204/65bad0233db92db596c29c34_social1.jpg"
data-rh="true" name="docusaurus_version" content="current"
data-rh="true" name="docusaurus_tag" content="docs-default-current"
data-rh="true" name="docsearch:version" content="current"
data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"
data-rh="true" property="og:title" content="Embed Dashboards in an Iframe | Rill"
data-rh="true" name="description" content="Embed Rill dashboards in your own applications using iframes"
data-rh="true" property="og:description" content="Embed Rill dashboards in your own applications using iframes"

Load Info

page size17834
load time (s)0.733364
redirect count1
speed download24330
server IP 63.176.8.218
* all occurrences of the string "http://" have been changed to "htt???/"