Skip to content
notionsolutions

A practical library for building,
organizing and working in Notion.

Workflow guides

Notion Embed: Videos, Widgets, HTML Blocks and Notion on Your Website

To embed in Notion, type /embed and paste the content's https link. Here's when a bookmark, mention, synced block or HTML block fits better, what the HTML block tests found, widget and video steps, and how to put a Notion page on your own website without a paid service.

Published
A white ceramic block with a glass window glowing electric blue, black bars at its sides, and a flat brushed steel card in front, beside the headline Embed Anything in Notion
An embed is a live window onto another page; a bookmark is a static card that only links to it.

To embed something in Notion, type /embed on a new line, press enter and paste the content's https link in the menu that appears. Notion embeds content "from over 1,900 domains via the Iframely service", and "In most cases, Notion will recognize an embeddable URL when you paste it into your page." To put a Notion page on your own website, publish it and choose Embed this page, then Copy this code. I'd embed only what should stay live, because every embed loads someone else's page inside yours, and a bookmark card does the job for a link you'll only click.

For a video, a Miro board or a widget clock you want to watch change, choose an embed. For a reference link, choose a web bookmark, and for a link inside a sentence, a link mention. For a small calculator or quiz that needs nothing from the web, the newer HTML block keeps working without any outside site staying online. For a Notion page on your website, start with Notion's own Embed this page before you pay for an embed service.

Embed, bookmark, mention or something else: pick the block first

Notion has seven ways to put one thing inside a page, and most embed trouble starts with the wrong one: a live frame where a link card would do, or a widget URL where a self-contained file would work offline. One question sorts them. Should what you see stay live, and where does it live?

Seven ways to show one thing inside a Notion page
BlockHow to add itWhat it showsStays current?Best for
Embed/embed, or paste a link and choose Create embedThe external page, live, in a frame you can resizeYes: a change at the source "will appear in Notion too"Videos, Figma, Miro, maps, widgets
Web bookmark/bookmark or /web bookmark, or paste and choose Paste as bookmarkA card with the page title, description and URLNo, it's a static link cardReference links, reading lists
Link mentionPaste a link and choose Paste as mentionAn inline link with an icon, the source and the page titleNo live content, only the icon, source and titleA link inside a sentence
Link previewPaste a link from a supported app and choose Paste as: PreviewA synced preview of one pull request, issue, message or design fileYes: it "updates as changes are made"GitHub, Jira, Slack, Figma, Linear and the other listed apps
Synced blockSelect blocks, then Turn into → Synced blockThe same Notion blocks on several pagesYes, edit any copy and the others followInstructions or text you repeat across pages
Linked database view/linkedA view of a database that lives on another pageYes; edits reach the original, filters and views stay localShowing one database in a second place
HTML block/html, or upload an .html fileYour own interactive HTML, running inside the pageNo outside data; it's self-containedA calculator, quiz or diagram that needs nothing from the web

The embed row is the one I'd use most sparingly. Every embed loads another site inside your page, and Notion's help says "As needed to display embedded content, Iframely and the embedded app may receive the IP address of the content's viewers." A bookmark is a static card with the title, description and URL instead of a live frame. So for a link someone will only click, I'd use the bookmark and save embeds for content you watch change.

How to embed anything in Notion, step by step

  1. Hover over a new line and click the + that appears to the left, or type /embed.
  2. Choose Embed, or one of the common embed types such as Video or Google Drive, and press enter.
  3. In the menu that appears, paste the content's URL or embed link. Use the https address: Notion's help says the link "should start with https not <iframe".
  4. Resize the embed by hovering over it and dragging the black bars that appear on its sides.

Pasting is often quicker. Paste a link on an empty line and pick from the menu that appears: Create embed for a live frame, Paste as bookmark for a card, Paste as mention for an inline link. That one choice decides which of the blocks above you get. In the mobile app, paste a URL and select Create bookmark when you want the card.

A pasted video link with a menu of Create embed, Paste as bookmark and Paste as mention, beside a resizable video frame, a link card with title and URL, and an inline mention
The same link as a live embed, a bookmark card and an inline mention.

Notion also has preconfigured blocks for common media types ("File, Image, PDF, Video") and apps ("CodePen, Loom, Miro, Tweet"). The slash commands are /video, /audio, /file, /image, /tweet, /maps and /drive, plus /bookmark for a link card. A PDF goes in through /file, which offers Upload or Embed link, or through /embed with Upload, which the help says works for your "own image, audio, video, or file". Tally and Typeform forms are on Notion's embed list too; if you want the answers to land in a database rather than only show on the page, connecting a form to a Notion database compares those routes.

Once an embed is on the page, three controls handle the rest:

HTML block vs embed: what the tests found

Notion added HTML blocks in its July 1, 2026 release, the one labelled Notion 3.6, saying "you can build interactive HTML blocks, like an ROI calculator." Notion documents how the block is made: Notion's block reference for developers says "Attaching an uploaded .html file creates an HTML block," from a file with an .html or .htm extension. The sandbox rules are another matter. Stacktree's explainer re-checked Notion's help center and developer docs and says Notion "does not publish the exact rules"; it also lists public-page behavior as "still not documented". Stacktree builds a host for agent-made HTML and says so on the page. The findings below come from two hands-on write-ups, by Matthias Frank and Mindful Setups, with Stacktree's summary beside them.

HTML block findings by source
FindingMatthias Frank (hands-on)Mindful Setups (hands-on)Stacktree (summary of testing + doc recheck)
Outside network callsBlocked: they "can't reach out to the wider web"Blocked; fonts and images "must be packed into the HTML itself"Relays that "calls out to the network are blocked"; Notion "does not publish the exact rules"
Reads or writes Notion dataNo; a generated report "is a snapshot"No: it "cannot read or write pages or databases"-
Keeps state after refreshYes, in that browser only: "your whiteboard drawing survives a refresh"No: "a refresh resets whatever was going on inside"Relays that state "stays in the browser on that device rather than syncing"
Best way to addLists three ways: type /HTML and add code, upload an HTML file, or ask Notion AIUpload a self-contained .html file; pasted code "frequently renders as visible code"Lists Notion AI, /html, an .html upload, or agents through Notion MCP
PlansViewing and embedding on every plan, Free included; Notion AI generation needs Business or higherAI generation works "on plans that include it"Lists plans for /html and uploads as not documented
On a published page-Opened "as an anonymous visitor" on a public notion.site link: "everything renders and runs"Public-page behavior "still not documented"
Look-"Permanent file name label and a border you cannot remove"-
Own URL--"no standalone URL"; access "follows the page's sharing, not the block's"

The composite is clear on the big points. Both hands-on tests found outside network calls blocked, and Stacktree's recheck reports the same. Both hands-on tests found no access to your Notion data. Mindful Setups' public-page test found the block renders for an anonymous visitor, which is one test of something Notion hasn't documented. On state the two testers split: Frank reports a drawing that survives a refresh in the same browser, Mindful Setups saw a refresh reset the block. Don't rely on it keeping state.

Three smaller details shape daily use. You "can't hand-edit an HTML block's code in place", so Frank's fix is to "re-upload the file". On the page it "behaves just like an embed": you can move it, "drop it inside toggles" and resize its width, which makes a toggle a tidy home for a calculator you only open now and then. And Mindful Setups' comparison sums up the trade in one row: an HTML block means "Edit or re-upload the file in every page", while an embed means "Update the source once, every embed follows".

That row is why I'd keep HTML blocks for self-contained pieces that live on one page, such as a quiz, a pricing calculator or a small diagram, and upload them as an .html file, since Mindful Setups found uploading is "the method that works consistently". For a widget, a live feed or anything you'll show on several pages, I'd stay with an embed, which Mindful Setups calls "the only way to show live content from an outside URL". On plans, Matthias Frank writes that viewing and embedding HTML blocks "works on every Notion plan", including the free tier, while generating one with Notion AI "requires a Business plan or higher"; a block built elsewhere can be uploaded on any plan. Notion runs the sandbox; you still decide whether the piece needs live data, and that answer picks the block.

Notion embed widgets: clocks, timers, weather and more

A Notion widget is a small web page made to be embedded: a clock, a Pomodoro timer, a weather card, a countdown, a quote or a calendar. Notion's embed help lists Indify, Widgetbox and Flocus among the commonly used apps you can embed. Apption's widget catalog shows "132 results", from a flip clock and Pomodoro timers to weather, countdown and quote widgets. The steps are the same as any embed:

  1. Customize the widget on the provider's site.
  2. Copy its link, the https address rather than any iframe code.
  3. In Notion, type /embed, press enter and paste the link in the menu that appears.
  4. Drag the black bars on its sides until it fits the column.

I'd make the widget URL your default and the HTML block the exception. Mindful Setups puts it well for widgets: embeds remain "the practical default: you customize once, copy a link, and the widget keeps improving upstream." If you're adding widgets to a personal dashboard, start with one clock or timer you'll look at every day, then add the next only when you miss it.

Two cautions come with every widget, because each one is an embed:

Have your own widget code? An embed takes a URL, not code, so a snippet needs a hosted address first. Apption's listing pitches a tool to "Turn any HTML codes into Notion embeddable url". If the piece is self-contained, the HTML block skips the hosting step: upload the .html file, and accept that it can't fetch anything from a server, such as the day's weather.

How to embed a video in Notion

  1. Type /video and press enter.
  2. Select Embed link, paste the video's share URL from the streaming service, and click Embed video.

The shortcut is to paste the video's URL from a streaming service on an empty line and choose Create embed. Notion's help on images, files and media says you "can embed videos from YouTube, Vimeo, and other major sources". To upload your own file, use /video and select Upload, or drag the file onto the page; Notion converts it to its custom video player.

The plan limit decides between uploading and embedding. On the Free plan, "all files you upload must be under 5MB", and Notion's pricing page lists Free file uploads as "Up to 5 MB"; paid plans allow larger uploads. An embedded video isn't an upload, so that limit doesn't touch it. For anything beyond a short clip on Free, I'd put the video on YouTube or Vimeo and embed the link.

If an upload won't play, the help notes that "MP4 files can sometimes have video compression or other components that aren't supported in Notion," and suggests converting the file to a different type. Playback also depends on your browser or operating system supporting the format. Audio works the same way: type /audio, select Embed link and paste the URL for the track or playlist, or paste the link and choose Create embed. Spotify is on Notion's embed list.

Google Drive, Calendar, maps, tweets and app previews

The calendar step deserves a pause. Make available to public with See all event details makes every event on that calendar public, with its details, not only the ones you meant to show on a Notion page. I'd embed a separate calendar that holds only events you're happy for anyone to read.

Link previews carry a sharing rule of their own. Once you've connected an app, "anyone who can view your Notion page will be able to see corresponding content that you've pasted as a link preview." Paste a private Slack thread onto a client page and the client sees it. Embed connections are managed under Settings in the sidebar → Connections, which lists "all of the apps you've authenticated for link previews or embeds", with options to Connect another account or Disconnect an existing account. On Enterprise Plans, the ability to add connections can be restricted to workspace owners.

Embed a Notion page on your website

Notion has this built in. Notion's web publishing help says you can embed published pages, "forms, charts, databases, and more", into your non-Notion websites:

  1. Open the page you want to publish and select Share at the top.
  2. Open the Publish tab and select Publish.
  3. On the published page, click Embed this page.
  4. In the embed modal, click Copy this code. Toggle Show page title if you want the page title shown.
  5. Paste the code into your website's HTML; in a website builder, that will probably be a code block.

After that, the help says, "As you make changes to the content in a published Notion page, the Site will update automatically." A Notion form can go on your site the same way, and Notion forms for client intake covers setting up the form and keeping responses private.

The Embed this page modal with a code snippet, a Show page title toggle and a Copy this code button, beside a website showing the embedded Notion database view
Embed this page gives you code to paste into your own site.

Publishing decides what you expose, so check three things before you click Publish:

Publish only what a client or the public should see. If the page is meant for one client rather than the web, Notion client portal permissions shows how to share the right records privately instead.

The plan question is short. Notion's Sites availability page lists publishing Notion Sites and claiming one notion.site domain on the Free plan. Paid plans can "Claim up to five notion.site domains" and "connect up to 25 existing custom domains" by purchasing the custom domain add-on. Domains, slugs, search settings and the rest of the Sites setup are in the Notion website guide.

What the paid embed services add

Three paid services show up for this search. Here's what each one lists:

Notion embed services: plans as listed on their own pages
ServiceFree tier as listedPaid as listedConflicts and conditions
EmbedNotion"1 Notion embed"Pro $7.90/month billed yearly: "Remove watermark", 10 embeds, "Auto-update embeds". Business $27.9/month billed yearly: 100 embedsAuto-update is listed from Pro up, not on the free tier. The page doesn't say the Notion page must be public
Get Notion EmbedLite: "Total 5 Embeds", "Watermarked", "No expiry, lifetime access!"Pro $4/month: unlimited embeds, no watermark. Lifetime $99: "Pay once, use lifetime."Its FAQ says free "embeds will expire after 30 days", against the no-expiry card. Its steps start with "Make Sure Your Notion Page is Published"
Embed Notion Pages"One embed", "One week expiration"Pro: "Remove watermark", "Password & email protection", "No expiration", "Up to 20 embeds"; no price in the listingIts FAQ says "After two weeks your embed code will expire", against one week on the card. "Only publicly available pages can be embedded at the moment."

Only Get Notion Embed labels its free tier watermarked; the other two list watermark removal as a paid feature. Two of the three say the Notion page has to be public or published first.

A service only makes sense for something Notion's own embed lacks. Password protection is the clearest case: Notion's help answers "Can I password protect a page?" with "Unfortunately, not at the moment." Embed Notion Pages sells "Password & email protection", but its own FAQ says only public pages can be embedded. So the password sits on the embed while the Notion page underneath stays public. For everything else, I'd use Embed this page: it updates with your edits and keeps a third-party account out of the path between your page and your site.

When a Notion embed won't load: symptom, cause, fix

Notion embed problems and fixes
SymptomLikely causeFix
"Failed to Load""Some websites prohibit their content from being embedded elsewhere"Paste it as a bookmark, or use the site's own embed link if it offers one
Works in the browser, not in the desktop or mobile appThe embed requires a login to an external siteOpen the page in a browser, or switch the embed to a bookmark
Pasted <iframe> code won't embedNotion wants the https URL, not iframe codeCopy the https address from the code's src; for your own HTML, host it and embed its URL, or upload it as an HTML block
Video upload rejected on FreeFree uploads must be under 5 MBPut the video on YouTube or Vimeo and embed the link
Link preview shows "Access denied", "Content not found" or "Can't load preview"You connected an account without access, or your organization limits third-party connections or IP addressesOpen your connections in Settings and choose Connect another account; for "Can't load preview", also delete the connection there and paste the link again; otherwise ask your workspace or organization administrator
Link mention shows no title or iconYour browser blocks cookies, or the link needs permissions or a sign-in to viewAllow cookies for Notion; a link behind a login pastes without rich information, so expect a plain link
A teammate or client sees an empty synced blockThey don't have access to the page holding the original blockShare the original page with them, or let them request access to it
An HTML block shows code instead of runningThe code was pasted after /htmlUpload a self-contained .html file instead
A clock or weather card in an HTML block shows nothing liveBoth hands-on tests found the sandbox blocks outside network callsUse the widget's embed URL instead
No Publish option in an Enterprise workspace"Workspace owners on the Enterprise Plan can choose to prevent Notion Sites from being published"Ask a workspace owner; the switch is Disable publishing sites, forms, and public links under Settings → Security

My pick: three changes for your next page

Turn the three links you'd only ever click into bookmarks, keep embeds for things you watch change, and publish-then-embed your Notion page instead of signing up for an embed service. That order follows the reasons above: a bookmark is a static card rather than a live frame of someone else's site, an embed earns its place when the content changes, and Notion's own Embed this page already updates with your edits.

Start with the page you open most. Switch its reference links to Paste as bookmark, keep the one video or board you really watch as an embed, and add an HTML block only for a self-contained piece you'd otherwise have to host. Notion draws the frame, the card and the published page. What you still decide is what deserves to stay live, and what a client or the public should see.

Can you embed one Notion page inside another?

Use the block that matches what you want to show. For the same text on several pages, use a synced block. For a database, add a linked view with /linked. For a whole page, link it: type /link and pick the page for a Link to page block, which shows up in your sidebar as a subpage, or type @ and the page name for a mention that works more like a hyperlink.

Share or arrange the page