Instagram Post Embed: Complete Guide

Learn how to embed single Instagram posts with official methods, plus discover Feedframer for better moderation, uptime, and speed.

The Challenge with Single Post Embeds

Common Problems:

  • • Instagram's oEmbed endpoint can be slow and unreliable
  • • Posts can break if deleted or made private
  • • No control over styling or layout
  • • Performance impact from heavy embed scripts
  • • Difficult to moderate or curate which posts appear

Feedframer Solution:

  • • Lightning-fast API with sub-200ms response times
  • • Complete control over post rendering and styling
  • • Built-in caching prevents broken embeds
  • • Filter and moderate posts before they appear
  • • Works with any framework or platform

The Instagram oEmbed API in 2026

api.instagram.com/oembed no longer works

Meta retired the old, key-free endpoint in October 2020. When we tested it on 11 September 2026, a request to https://api.instagram.com/oembed?url=POST_URL redirected to an instagram.com web page and returned HTML, not JSON, so code that still calls it can't parse the reply. noembed.com doesn't fill the gap either: it now answers Instagram URLs with "no matching providers found".

The current endpoint: instagram_oembed

The replacement lives on the Graph API. Meta requires an app access token, sent as your app ID and client token joined by a pipe, and the app needs the oEmbed Read feature approved through App Review.

curl -G https://graph.facebook.com/v26.0/instagram_oembed \
  -d url=https://www.instagram.com/p/POST_SHORTCODE/ \
  -d maxwidth=400 \
  -d omitscript=true \
  -d 'access_token=APP_ID|CLIENT_TOKEN'

maxwidth sets the embed width, and omitscript=true leaves out the embed.js tag so you can load it once per page yourself. The response is just the embed markup:

{
  "version": "1.0",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/",
  "type": "rich",
  "width": 400,
  "html": "<blockquote class=\"instagram-media\" ...>"
}

In the same test, the endpoint also answered without an access token. That isn't documented, so don't build on it: Meta can switch it off without notice.

What oEmbed won't give you

The response has no thumbnail_url, no author_name and no caption. You get Instagram's blockquote and its script, styled Instagram's way. Meta's terms also forbid using oEmbed data for anything other than showing the embed, so you can't lift the image out into your own layout.

If you need the image, caption or post details as data, use the Instagram Graph API with an access token, or let Feedframer return them as JSON.

When to Use Feedframer

✅ Multiple posts with moderation

Curate and filter which posts appear on your site. Perfect for galleries and feeds.

✅ Custom styling required

Full control over HTML, CSS, and design. Match your brand perfectly.

✅ Performance critical

Sub-200ms API responses with edge caching. No heavy embed scripts.

✅ Reliable uptime needed

Automatic token refresh prevents breakage. Posts stay live even if original is deleted.

✅ Email and RSS integration

Unique RSS feed option for Mailchimp, Klaviyo, and email automation.

How Feedframer Works

1

Connect Your Instagram Account

One-click OAuth connection. We handle all token management, refresh logic, and Instagram API complexity.

2

Choose Your Posts

Filter by type, date, or custom criteria. Fetch specific posts or entire feeds via REST, GraphQL, or RSS.

3

Build Your Embed

Use the data to create any layout. Single post cards, grids, carousels—complete design freedom.

4

Deploy and Relax

Posts update automatically. Daily for free tier, hourly for premium. Cloudflare CDN handles caching.

Common Use Cases

Retail & eCommerce

Embed product posts on detail pages. Show user-generated content and social proof.

Editorial & Publishing

Embed Instagram posts in articles and blog posts with custom styling and moderation.

Agencies

Build custom Instagram integrations for clients with multi-account support.

Event Coverage

Live event posts embedded on landing pages with automatic updates.

FAQs

Does api.instagram.com/oembed still work?

No. It redirects to an instagram.com web page and returns HTML instead of JSON. Use graph.facebook.com/v26.0/instagram_oembed with an app access token instead.

Can I get an Instagram post's thumbnail from oEmbed?

No. The instagram_oembed response contains the embed HTML and width but no thumbnail URL, author name or caption. For the image itself you need the Instagram Graph API, or Feedframer's JSON feed, which includes CDN image URLs in four sizes.

Is it mobile-responsive?

Feedframer returns raw data (not a widget), so mobile responsiveness depends on how you build your UI. The JSON feed includes multiple image sizes (320px, 768px, 960px, 1200px) to support responsive layouts. We provide demo widgets, but we encourage you to build your own unique UI to display your Instagram posts.

Can I filter or moderate posts?

Yes. Include/exclude filters supported.

Does it work with private accounts?

Requires public Business/Creator accounts.

Will this slow down my site?

No. Lightweight and edge-cached.

How are rate limits handled?

Zero rate limits with caching.

Related Resources

Ready to Get Started?

Free tier includes everything you need.