Instagram Reel Embed Code Generator

Paste a link to an Instagram Reel and copy the free embed code to show it on your website. No sign-up needed.
The Reel’s link from ⋯ → Copy link, e.g. https://www.instagram.com/reel/C2mwxDYvQju/
Want the whole Reels account as a gallery that updates itself?

Embed the video

<div style="max-width:540px;margin:0 auto;">
<blockquote class="instagram-media" data-instgrm-captioned data-instgrm-permalink="https://www.instagram.com/reel/C2mwxDYvQju/?utm_source=ig_embed" data-instgrm-version="14" style="max-width:540px;min-width:326px;width:100%;">
  <a href="https://www.instagram.com/reel/C2mwxDYvQju/" target="_blank">View this Reel on Instagram</a>
</blockquote>
</div>
<script async src="https://www.instagram.com/embed.js"></script>
<p style="margin:4px auto 0;max-width:540px;text-align:center;font:11px/1.4 -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#a3a7b0;">Created with <a href="https://elfsight.com/tools/instagram-reel-embed-generator/" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;">Elfsight</a></p>

  1. Click Copy code above to copy it.
  2. Open the page’s HTML file or template.
  3. Paste the code inside <body>, where the content should appear.
  4. Save and upload the page, then open it in a browser to check.

Need more than one video?

Show the whole Reels account as an interactive gallery that updates itself.

See Video Gallery for HTML →

Before you go

Need more than one video? Show the whole Reels account as an interactive gallery that updates itself.

Create a Reels gallery →
Or share this free tool:
Elfsight Video Gallery

Show all your Reels automatically

Video Gallery pulls Reels from your Instagram account into a carousel or grid that updates on its own.
  • Auto-updates when you publish new videos

  • Carousel, grid, masonry or player with playlist

  • YouTube, Vimeo, TikTok, Instagram, Twitch and any video link

  • No coding — works on any website

This generator vs Instagram’s own Embed button

Instagram’s ⋯ → Embed gives you code for one post. Here is how building it here compares.
Instagram’s own Embed button
This generator
Where to get it
Copied from the post’s ⋯ menu on instagram.com in a browser.
Paste a Reel link copied from the app or the browser.
Link formats
Works from the post page.
Accepts /reel/, /reels/, /p/ and /tv/ links, with or without the username.
Caption
A checkbox before you copy.
A switch that adds or removes data-instgrm-captioned.
Code size
Long code with Instagram’s placeholder markup and styles.
A short blockquote with the same attributes and the same embed.js.
Account and embed rules
The option is missing for private accounts and for owners who turned embeds off.
Same rules — the post renders only if Instagram allows embedding it.

Where to get it

Instagram’s own Embed button

Copied from the post’s ⋯ menu on instagram.com in a browser.

This generator

Paste a Reel link copied from the app or the browser.

Link formats

Instagram’s own Embed button

Works from the post page.

This generator

Accepts /reel/, /reels/, /p/ and /tv/ links, with or without the username.

Caption

Instagram’s own Embed button

A checkbox before you copy.

This generator

A switch that adds or removes data-instgrm-captioned.

Code size

Instagram’s own Embed button

Long code with Instagram’s placeholder markup and styles.

This generator

A short blockquote with the same attributes and the same embed.js.

Account and embed rules

Instagram’s own Embed button

The option is missing for private accounts and for owners who turned embeds off.

This generator

Same rules — the post renders only if Instagram allows embedding it.

How to use the Instagram Reel Embed Code generator

  1. Copy the Reel link

    Open the Reel, tap ⋯ → Copy link.

  2. Paste it above

    Choose whether to show the caption.

  3. Paste into your site

    Add the code to an HTML or embed block.

Instagram embed code attributes

Parameter
What it does
Example
class="instagram-media"
Marks the blockquote that embed.js turns into the post.
<blockquote class="instagram-media">
data-instgrm-permalink
The link of the post or Reel to show. Without it, the script looks for a post link inside the blockquote.
data-instgrm-permalink="https://www.instagram.com/reel/CODE/"
data-instgrm-captioned
Shows the caption under the video. It works by being present; remove it to hide the caption.
data-instgrm-captioned
data-instgrm-version
Version of the embed format the code was made for. Keep the number Instagram’s code uses.
data-instgrm-version="14"
embed.js
Instagram’s script that renders every blockquote on the page. Load it once.
<script async src="https://www.instagram.com/embed.js"></script>
Width
The embed fills its container, with a minimum width of 326px. Its height depends on the width and caption length.
min-width:326px

class="instagram-media"

What it does

Marks the blockquote that embed.js turns into the post.

Example

<blockquote class="instagram-media">

data-instgrm-permalink

What it does

The link of the post or Reel to show. Without it, the script looks for a post link inside the blockquote.

Example

data-instgrm-permalink="https://www.instagram.com/reel/CODE/"

data-instgrm-captioned

What it does

Shows the caption under the video. It works by being present; remove it to hide the caption.

Example

data-instgrm-captioned

data-instgrm-version

What it does

Version of the embed format the code was made for. Keep the number Instagram’s code uses.

Example

data-instgrm-version="14"

embed.js

What it does

Instagram’s script that renders every blockquote on the page. Load it once.

Example

<script async src="https://www.instagram.com/embed.js"></script>

Width

What it does

The embed fills its container, with a minimum width of 326px. Its height depends on the width and caption length.

Example

min-width:326px

Source: Meta for Developers: Embed an Instagram Post

Why the Instagram embed doesn’t show

The account is private

Instagram embeds posts from public accounts only. Posts from private, inactive and age-restricted accounts are not supported.

The owner turned off embeds

Public accounts can disable embedding. If the post doesn’t load and the account is public, ask the owner or pick another post.

You only see a grey box or a plain link

That’s the placeholder: embed.js didn’t run. Check that the <script async src="https://www.instagram.com/embed.js"> line is still in the page and that an ad blocker isn’t stopping it.

The post is added after the page loads

When a popup, tab or page builder inserts the code later, the script has already run. Call instgrm.Embeds.process() after the code is added.

Your site builder strips or rewrites the code

Text blocks often remove <script> tags or attributes. Use an HTML or custom-code block. Meta says embeds inside Shadow DOM are not supported, so avoid components that render in a shadow root.

You’re trying to embed a Story

Instagram doesn’t support embedding Stories. Share the clip as a Reel or a post and embed that.

Reels, posts and Stories: what can be embedded

Content
Link looks like
Can be embedded?
Reel
instagram.com/reel/CODE/
Yes, from a public account
Photo or carousel post
instagram.com/p/CODE/
Yes, from a public account
Story
instagram.com/stories/…
No — Instagram doesn’t support it
Post from a private account
Any
No
Post from an account that turned embeds off
Any
No
Post from an inactive or age-restricted account
Any
No

Reel

Link looks like

instagram.com/reel/CODE/

Can be embedded?

Yes, from a public account

Photo or carousel post

Link looks like

instagram.com/p/CODE/

Can be embedded?

Yes, from a public account

Story

Link looks like

instagram.com/stories/…

Can be embedded?

No — Instagram doesn’t support it

Post from a private account

Link looks like

Any

Can be embedded?

No

Post from an account that turned embeds off

Link looks like

Any

Can be embedded?

No

Post from an inactive or age-restricted account

Link looks like

Any

Can be embedded?

No

Each embed shows one post and stays in sync with Instagram: if the owner deletes the post or makes the account private, the embed stops showing it. The rules come from Meta’s Instagram embed documentation.

Embed code vs. Elfsight Video Gallery

Embed code
Video Gallery
Videos per embed
One video (or one playlist)
Unlimited videos in one widget
Stays up to date
Edit the code for every new video
New Instagram videos appear automatically
Mix sources
One platform per snippet
YouTube, Vimeo, TikTok, Instagram, Twitch and any video link
Layouts
Single player
Player with Gallery, Carousel, Grid, Masonry, Playlist
Responsive design
Needs a CSS wrapper
Built in
Coding
Copy and paste code for each video
No code — edit visually in the editor
Price
Free
Free plan, no credit card needed

Videos per embed

Embed code

One video (or one playlist)

Video Gallery

Unlimited videos in one widget

Stays up to date

Embed code

Edit the code for every new video

Video Gallery

New Instagram videos appear automatically

Mix sources

Embed code

One platform per snippet

Video Gallery

YouTube, Vimeo, TikTok, Instagram, Twitch and any video link

Layouts

Embed code

Single player

Video Gallery

Player with Gallery, Carousel, Grid, Masonry, Playlist

Responsive design

Embed code

Needs a CSS wrapper

Video Gallery

Built in

Coding

Embed code

Copy and paste code for each video

Video Gallery

No code — edit visually in the editor

Price

Embed code

Free

Video Gallery

Free plan, no credit card needed

Frequently asked questions

Official documentation

More free tools

Related guides

How to embed a video on a website

Upload the video to YouTube or Vimeo and paste its embed code, use the HTML5 video tag for files you host yourself, or use a video gallery widget when you need several videos. Here’s how each method works and when to use it.How to embed a video on a website