Comparison
An Instafeed.js alternative
Instafeed.js was for years the go-to way to put Instagram photos on a site with a few lines of JavaScript. It depends on the Instagram Basic Display API, which Meta discontinued on December 4, 2024 — so feeds built on it no longer load.
Simpleembed fills the same gap with the piece a browser-only library cannot have: a server that holds your Instagram token, keeps it fresh, and syncs your posts. You get one script tag for a ready-made widget, or a public JSON endpoint if you want to keep rendering your own markup the way you did with Instafeed.js.
Side by side
| Feature | Simpleembed | Instafeed.js |
|---|---|---|
| What it is | A hosted service: widget, iframe, and JSON API | An open-source, client-side JavaScript library |
| Instagram API | Instagram's current API for Business and Creator accounts, handled server-side | Instagram Basic Display API, which Meta discontinued on December 4, 2024 |
| Access tokens | Stored and refreshed by Simpleembed — nothing secret in your page | You supply the token; its README notes that managing tokens requires a server-side component the library cannot provide |
| Image expiry | Images are proxied and cached behind stable URLs, so they never expire | Links straight to Instagram's CDN URLs, which expire |
| Custom markup | Yes — fetch the public, CORS-enabled JSON API and render it yourself | Yes — HTML templates rendered in the browser |
| Account types | Instagram Business or Creator accounts | Personal accounts, while the Basic Display API existed |
| Price | Free for 1 source + 1 feed; $7/mo flat for unlimited | Free and open source (MIT) |
Instafeed.js details are from its GitHub README and Meta's Basic Display API deprecation notice, checked September 2026.
Switching from Instafeed.js
Connect your Instagram account to Simpleembed, create a feed, then remove the Instafeed.js script and its new Instafeed(...) call. The quickest replacement is the widget (swap in your own feed ID for YOUR_FEED_ID):
<script src="https://simpleembed.com/embed.js" data-feed-id="YOUR_FEED_ID" async></script>To keep your own markup instead, fetch the feed as JSON and render it into the same container you used before:
<div id="instafeed"></div>
<script>
fetch("https://simpleembed.com/api/feeds/YOUR_FEED_ID")
.then((res) => res.json())
.then(({ posts }) => {
document.getElementById("instafeed").innerHTML = posts
.map(
(post) =>
`<a href="${post.permalink}" target="_blank" rel="noreferrer">
<img src="${post.imageUrl}" alt="Instagram post" loading="lazy" />
</a>`,
)
.join("");
});
</script>The full field list is in the Embedding & API docs, and the plain HTML guide walks through the script tag, iframe, and JSON options step by step.
Frequently asked questions
- Why did my Instafeed.js feed stop working?
- Instafeed.js v2 reads posts through the Instagram Basic Display API. Meta shut that API down on December 4, 2024, so requests made with Basic Display tokens now fail regardless of how the library is configured. Before that, the most common cause was an expired access token — long-lived tokens had to be refreshed from a server on a schedule.
- Can I keep using my personal Instagram account?
- No, and that is Meta's rule rather than ours: with the Basic Display API gone, Instagram's API only serves Business and Creator accounts. Switching is free, takes about a minute in the Instagram app, and does not change how your profile looks to followers.
- Can I keep my own HTML and CSS?
- Yes. Every Simpleembed feed is available as public JSON, so you can keep your existing container and styles and replace the Instafeed.js call with a fetch. Post fields include the permalink, caption, media type, timestamp, and a stable image URL.
- Does this also replace jQuery Instagram plugins and react-instagram-embed?
- For showing a feed of your own posts, yes — the script tag works on any page, and the JSON API works from jQuery, React, or anything else that can fetch. If you only need to embed a single specific post, Instagram's own Embed option on that post is still the simplest route.
- Is it free?
- One Instagram source and one feed are free forever, with unlimited views and a small Simpleembed watermark on the widget. The $7/month plan removes the watermark and unlocks unlimited feeds and sources.
Get your feed ID in about two minutes
Create a free Simpleembed account, connect your Instagram Business or Creator account, and copy your embed snippet. One source and one feed are free forever; $7/month unlocks unlimited feeds, sources, and views.
Start free