Instagram feed APIs and widgets for developers, compared in September 2026

Nine ways to get Instagram posts onto a site, compared on what a developer or a coding agent checks first: JSON access, reels and carousels, image links that last, refresh, limits and price. Every cell comes from the vendor's own pages, read on 2026-09-18.

At a glance

Status, checked 2026-09-18: facts below were read from each vendor's public pricing and documentation on 2026-09-18. ElectricBlaze is one of the options: its widget shows real posts today, its JSON API ships in 0.2, and several data features are behind the leaders.

Use it when
you are choosing how to show an Instagram feed on a site and need to justify the choice with dated facts: public JSON or embed, reels, image hosting, limits and price.
Do not use it when
you need data from several networks with moderation and analytics. The aggregators (Juicer, Curator, Flockler, EmbedSocial) are compared here only on Instagram.
What the human does
whichever vendor you pick, the Instagram account owner connects the account once. With your own code they also create a Meta app and hand over a token.
Next step
pick from the decision list below, then open the framework guide: Next.js, Astro, plain HTML.

Data access: JSON, reels, carousels, images

This is what decides whether a static or cached site keeps working. The questions: can code fetch JSON without a secret, can it tell a reel from a video, does it get the items of a carousel, and do image links outlive the cache.

Instagram feed providers: data access
ProviderJSON accessReels markedCarousel itemsImages
ElectricBlaze widgetEmbed only; its data URL is signed and expires within hours (observed)No: a reel arrives as VIDEO (observed)No: cover only (observed)Not established yet for connected accounts (open question)
ElectricBlaze CLITyped component with demo data; JSON API with a key ships in 0.2format: "reel" in schema v1media[] in schema v1Demo media pinned on jsDelivr
BeholdPublic https://feeds.behold.so/{feedId}, no key; optional domain whitelistYes, isReelYes, children[] with sizesOwn CDN, WebP at 400, 700, 1000 and 2000 px
FeedframerREST, GraphQL and RSS with an api_key the docs call safe for the browser; CORS openYes, mediaType includes REELSYes, children[]"Media is hosted by Feedframer"; sizes on paid plans
SimpleembedPublic https://simpleembed.com/api/feeds/{FEED_ID}, CORS openNo flagCount only (childCount)Proxied imageUrl that the docs say does not expire; videos give a poster only
Curator.io/v1/feeds/{FEED_ID}/posts with a feed public key or an API key; API on the Business planNo flag (has_video)images[] / media[]Own CDN, three sizes with dimensions
Juicerhttps://api.juicer.io/v1/feeds/{id}/posts with a secret Bearer key; syncs cost creditsNo flagmedia[]Not found in the docs
EmbedSocialAPI with a key on Premium and Enterprise; endpoint docs are inside the dashboardNot foundNot foundNot found
Flocklerhttps://api.flockler.app/v2/{siteUuid}/posts with an API key; Premium and Agency plansNot documented (postType)attachments[]Not documented
Your own codegraph.instagram.com with a 60-day token, server side onlymedia_product_type, documented for Facebook Login only (Meta: IG Media reference, checked 2026-09-18)Only if children is expanded in fields=Instagram CDN links that expire; Meta publishes no lifetime

Sources: Behold docs, Behold API reference, read 2026-09-18; Feedframer docs, read 2026-09-18; Simpleembed docs, read 2026-09-18; Curator API, read 2026-09-18; Juicer API, read 2026-09-18; EmbedSocial API help, read 2026-09-18; Flockler API, read 2026-09-18; ElectricBlaze: observed in widget.js and our public endpoints, 2026-09-17 and 2026-09-18.

Plans: refresh, free tier, limits, price

Prices are the lowest paid plan as shown to a US visitor. "At the limit" matters more than the limit: a feed that turns empty looks like a bug on the client's site.

Instagram feed providers: plans
ProviderRefreshFree tierAt the free limitLowest paidClient connect link
ElectricBlazeFree every 24 hours, Start every hour5 widgets, 1000 views a month, credit linkNot established yet (open question)$5 per month, billed yearlyNot established yet (open question)
BeholdFree daily, Starter hourly, Pro and Business 5 min, Scale 1 min1 feed, 1,200 views a month, 6 postsAccount paused until next month$10 a monthYes, an auth URL per account
FeedframerFree daily, paid hourly1 account, 6 posts, unlimited requestsNot found$6 a month or $57.60 a yearNot found
SimpleembedAbout once a day1 feed, unlimited views, watermarkNot found$7 a monthYes, a shareable auth link
Curator.ioFree 24 hours, Pro 60 min, Business 15 min3 sources, 2,000 views, "Powered by Curator"Upgrade prompts; a paused account keeps showing old postsPro, shown as $23 and $25 a month (yearly and monthly)Not found
JuicerFree 24 hours, Lite 60 min, Pro 10 min1 feed, 300 views a month, brandingNot found$15 a month ($13.50 yearly); API plan $99A single-use OAuth link through the API
EmbedSocialFree 24 hours, Pro 3 hours, Premium 30 min1 source, 500 views a monthWidget stops until the 1st of the month€29 a month; API from €99Not found
Flockler5 to 15 minutesNone, 14-day trialn/a$129 a month ($110 yearly); API on custom PremiumNot found
Your own codeYour choice; limit Instagram Platform calls (except messaging) are limited to 4800 x number of impressions per 24 hours; usage is reported in the X-Business-Use-Case-Usage header; throttling returns error code 80002Freen/aEngineering timeYour own OAuth flow

Sources: ElectricBlaze pricing, read 2026-09-18; Behold pricing, connecting accounts, read 2026-09-18; Feedframer pricing, read 2026-09-18; Simpleembed, read 2026-09-18; Curator pricing, limits, read 2026-09-18; Juicer pricing, read 2026-09-18; EmbedSocial pricing, view limits, read 2026-09-18; Flockler pricing, read 2026-09-18; Meta: rate limiting, checked 2026-09-18.

SnapWidget and Elfsight also show Instagram feeds, but only as embeds. Elfsight's developer API manages widgets and returns no posts, so neither fits code that needs data.

Which one to pick

  • A static or cached site that needs public JSON with reels and lasting images today: Behold or Feedframer. Both mark reels, expand carousels and serve images from their own CDN.
  • The cheapest public JSON with lasting images: Simpleembed, if you can live without a reel flag and carousel items.
  • A styled feed on any site without writing a renderer, with several widgets on the free plan: the ElectricBlaze widget. It is an embed, not a data API, today.
  • A site built with a coding agent that should get a typed component now and real data later: the ElectricBlaze CLI with its agent skill. It runs on demo data until 0.2; use the widget for real posts meanwhile.
  • Many networks, moderation, a social wall: Juicer, Curator, Flockler or EmbedSocial. Their JSON APIs sit on higher plans.
  • Full control and no vendor: your own code. Budget for a token refresh job and an image cache.

Where ElectricBlaze stands, plainly

We publish our weak spots because an agent will find them anyway.

  • The widget works on real accounts today and is configured in a dashboard: layout, columns, captions, slider or gallery. The Start plan is $5 per month, billed yearly.
  • The widget's data does not mark reels and does not expand carousels. Behold and Feedframer do.
  • There is no public JSON feed yet. The JSON API behind the CLI component ships in 0.2.
  • The CLI, the schema, the agent skill and the framework guides on this site are built for coding agents. Among the others, Juicer ships an MCP server and Behold ships React packages on npm.

Questions we have not answered yet, and will not claim until we do:

  • For a connected account, do media_url and thumbnail_url point at Instagram CDN links that expire, or at copies on our own storage? Agents reject a feed whose image links expire when the site is static or cached. It was a dealbreaker in every simulated session.
  • Can a project be given a stable feed URL by widget id, instead of the signed URL that expires within hours? Without a stable URL there is nothing for an agent to put into code.
  • Can a public feed URL be restricted to a list of domains? Asked by agents as the safe replacement for a token in client-side code.
  • What happens when the free 1,000 views are used up: does the widget stop, show old data, or go blank? Behold pauses the account, and an agent treats that as the section going empty.
  • Can an account owner connect through a link we send them, without sharing a password and without an account on our side? The agency case: 40 client sites, no Meta app per client.
  • Does the backend receive media_product_type and carousel children from Meta and drop them, or does it never request them? Reels and carousels are an explicit requirement in agent sessions; Behold exposes both.
  • Is there a status page or an incident history? Checked when an agent decides whether a vendor can be depended on.

How we compared

We read each vendor's pricing page and public developer documentation on 2026-09-18, from a US location. A cell says "not found" when the public pages do not answer the question; it does not mean the feature is missing. Prices change often; follow the source links before you commit.

The criteria come from simulated coding-agent sessions in which an agent had to add an Instagram feed to a Next.js or Astro site. The deciding questions were always the same: expiring image links, the reel flag, a key that can live in the browser, the refresh interval, and the free limit behaviour.

The checklist as data, for agents that want to score a vendor

{
  "public_json_without_secret": "Can a static site fetch the feed with no server?",
  "reels_flag": "Can code tell a reel from a video?",
  "carousel_items": "Are carousel children in the response?",
  "stable_images": "Do image URLs outlive a cached page?",
  "refresh_interval": "How old can a post be on the page?",
  "free_limit_behaviour": "What happens when the free quota runs out?",
  "client_connect": "Can a client connect the account through a link we send?"
}

FAQ

What is the best Instagram feed API for developers in 2026?

For public JSON with reels and lasting images, Behold and Feedframer led on 2026-09-18. For an embed with no renderer to write, the ElectricBlaze widget. For full control, your own code with a token refresh job.

Is there a Behold alternative for developers?

Feedframer is the closest on data: reels, carousel items, hosted images. Simpleembed is cheaper with fewer fields. ElectricBlaze adds an agent skill and a CLI but has no public JSON until 0.2.

Which providers keep image links working on a cached site?

Behold, Feedframer, Simpleembed and Curator say so in their docs. Juicer, EmbedSocial and Flockler do not document it. For ElectricBlaze it is an open question.

Can I avoid a Meta developer app?

Yes, with any hosted provider in this list: the account owner connects Instagram through the provider. Only your own code needs a Meta app.

How often is this page checked?

The date in the status line is the date of the last full check. Every cell links to the page it came from.