# Instagram feed on a website, without owning the Meta integration

**Status, checked 2026-09-18:** real Instagram posts work today through the ElectricBlaze widget embed. The `electricblaze` CLI 0.1.2 adds a typed component with demo data. The JSON API for that component, with `login` and `connect`, ships in 0.2.

> Everything ElectricBlaze offers developers and coding agents for Instagram, with the state of each part on the date of the last check.

Canonical: https://electricblaze.com/developer/instagram-feed/

## At a glance

- **Use it when:** a site needs recent Instagram posts or reels and nobody wants to create a Meta app, run a token refresh job or cache images.
- **Do not use it when:** you need a public JSON feed with a reel flag today; see [the comparison](https://electricblaze.com/developer/instagram-feed/comparison.html) for providers that have one.
- **What the human does:** the Instagram account owner signs in to ElectricBlaze and connects a Business or Creator account. That is the only step an agent cannot do.
- **Next step:** open the guide for your framework below, or run `npx electricblaze@0.1.2 add instagram-feed --json`.

## What works today and what ships in 0.2

| Part | State | What it gives you |
|---|---|---|
| Widget embed | Works today | Real posts from a connected account, laid out in the dashboard, two lines of HTML |
| CLI `add`, `preview`, `doctor`, `skill` | Works today, demo data | Component, types, 12 demo posts, checks with next steps |
| Feed schema v1 | Published | [schema.json](https://electricblaze.com/developer/instagram-feed/schema.json), [sample-feed.json](https://electricblaze.com/developer/instagram-feed/sample-feed.json) |
| Agent skill | Published | Workflow and dated API facts for Claude Code, Codex and others |
| JSON API, `login`, `connect`, `list` | Ships in 0.2 | Real posts in the generated component, by API key |
| TikTok, YouTube in the CLI and API | Planned | Nothing yet; `add tiktok-feed` exits 2. Their embeddable widgets are on the main site |

The same state as data, for agents that prefer to parse it:

Status on 2026-09-18:

```json
{
  "checked": "2026-09-18",
  "instagram": {
    "widget_embed": "available",
    "cli": { "version": "0.1.2", "data": "demo" },
    "json_api": "planned for 0.2",
    "schema": "https://electricblaze.com/developer/instagram-feed/schema.json"
  },
  "tiktok": "planned",
  "youtube": "planned"
}
```

## Why not call the Instagram API directly

You can, and the [own-code route](https://electricblaze.com/developer/instagram-feed/nextjs.html#own-code) is documented on every framework page. It carries four standing costs:

- Only professional accounts are served: the Instagram API with Instagram Login serves Instagram professional accounts (Business or Creator); personal accounts are not supported ([Meta: Instagram Platform overview](https://developers.facebook.com/docs/instagram-platform/overview), checked 2026-09-18). The Basic Display API that once served personal accounts was shut down on 2024-12-04.
- A long-lived token lasts 60 days and has to be refreshed by a job you run ([Meta: access_token reference](https://developers.facebook.com/docs/instagram-platform/reference/access_token), checked 2026-09-18).
- Image links from `media_url` expire, and Meta publishes no lifetime for them. A cached or static page ends up with broken images.
- Reading someone else's account, for a client site, requires Advanced Access: App Review plus Business Verification ([Meta: Instagram Platform App Review](https://developers.facebook.com/docs/instagram-platform/app-review), checked 2026-09-18).

With ElectricBlaze the account owner connects Instagram once in our dashboard. Your code never holds a token and never talks to Meta.

## Guides by framework

| Framework | CLI kit | Guide |
|---|---|---|
| Next.js (App Router, Pages Router, static export) | `next`: Server Component | [Next.js guide](https://electricblaze.com/developer/instagram-feed/nextjs.html) |
| React on Vite (Lovable, Bolt, v0) | `data` | [React guide](https://electricblaze.com/developer/instagram-feed/react.html) |
| React Router v7 and Remix | `data` | [React Router guide](https://electricblaze.com/developer/instagram-feed/react-router.html) |
| Astro | `data` | [Astro guide](https://electricblaze.com/developer/instagram-feed/astro.html) |
| SvelteKit | `data` | [SvelteKit guide](https://electricblaze.com/developer/instagram-feed/sveltekit.html) |
| Nuxt | `data` | [Nuxt guide](https://electricblaze.com/developer/instagram-feed/nuxt.html) |
| Plain HTML, GitHub Pages, shared hosting | `html`: script and CSS | [Static site guide](https://electricblaze.com/developer/instagram-feed/static-site.html) |

Every guide shows the widget embed for real posts today, the CLI kit for the design, and the own-code route with its obligations.

## Instagram API reference

Precise answers to the questions that stop an integration, each with Meta sources and check dates:

- [Access tokens](https://electricblaze.com/developer/instagram-feed/access-token.html): short-lived, long-lived, `ig_refresh_token`, a refresh schedule.
- [Media fields](https://electricblaze.com/developer/instagram-feed/media-fields.html): what `/media` returns, reels, carousel children, thumbnails.
- [App Review and access levels](https://electricblaze.com/developer/instagram-feed/app-review.html): when your own feed needs no review, when a client site does.
- [Basic Display API alternative](https://electricblaze.com/developer/instagram-feed/basic-display-api-alternative.html): what replaced it and how fields map.
- [Feed not working](https://electricblaze.com/developer/instagram-feed/feed-not-working.html): error 190, empty data, throttling, missing fields.
- [Media URL expired](https://electricblaze.com/developer/instagram-feed/media-url-expired.html): "URL signature expired" and how to keep images alive.

## Tools and machine-readable files

- [The CLI](https://electricblaze.com/developer/instagram-feed/cli.html): commands, exit codes, the files it writes, how to verify a release.
- [The agent skill](https://electricblaze.com/developer/instagram-feed/skill.html): install it once, and the agent follows the same workflow in every project.
- [Feed schema v1](https://electricblaze.com/developer/instagram-feed/schema.html): TypeScript types, JSON Schema, a 12-post sample.
- [Changelog](https://electricblaze.com/developer/changelog.html) with an Atom feed.
- [llms.txt](https://electricblaze.com/llms.txt) lists every developer page; each page also has a Markdown twin at the same address with `.md`.

## FAQ

### Can I show an Instagram feed on a website without a Meta developer account?

Yes. With the ElectricBlaze widget the account owner connects Instagram in our dashboard and you paste two lines of HTML. Any hosted provider works the same way; your own code does not.

### Does ElectricBlaze have a JSON API for Instagram?

Not publicly yet. The CLI writes a typed component with demo data today, and the JSON API that feeds it real posts ships in 0.2.

### Which Instagram accounts can be connected?

The Instagram API serves professional accounts, Business or Creator. Personal accounts lost API access when Basic Display was shut down on 2024-12-04.

### Does it work with reels?

The widget shows reels as videos without a separate mark. Schema v1 and the CLI component have `format: "reel"`; real reel data arrives with the 0.2 API.

### Is there a free plan?

Yes: 5 widgets and 1000 views a month, refreshed every 24 hours. See [pricing](https://electricblaze.com/pricing.html).

## Related pages

- [Compare providers](https://electricblaze.com/developer/instagram-feed/comparison.html)
- [Next.js](https://electricblaze.com/developer/instagram-feed/nextjs.html)
- [Astro](https://electricblaze.com/developer/instagram-feed/astro.html)
- [Access tokens](https://electricblaze.com/developer/instagram-feed/access-token.html)
- [The CLI](https://electricblaze.com/developer/instagram-feed/cli.html)
- [Developers home](https://electricblaze.com/developer/)

---

ElectricBlaze, updated 2026-09-18. Source of this page: https://electricblaze.com/developer/instagram-feed/
