Use case

Instagram API for Website Feeds — Two Endpoints and Your Store

A site feed is a refresh problem wearing a scraping problem's clothes. Get the interval right and the whole thing costs a few credits a day.

The problem

Instagram API for website: the problem.

A marketing site or a shop wants the account's last nine posts in the footer. The old embed widgets break whenever Instagram changes its markup, and the official route wants a Meta app, a business account and a review cycle for what is fundamentally a read of public data. What you actually need is a JSON feed you fetch on your own schedule and store.

The recipe

Endpoint workflow for Instagram API for website.

The useful part of a use-case page is the translation from situation to endpoint. Here it is.

  1. 01Read the account onceAvatar, display name, bio and follower count for the header of the widget. This changes rarely, so it belongs on a slower refresh than the posts themselves.Profile API
  2. 02Pull the gridOne call with limit=9 or limit=12 returns the grid in a single response, each item carrying caption, shortcode, media URLs and engagement counts. There is no permalink field — you build the link from the shortcode. This is the only call the feed actually needs on a schedule.Posts API
  3. 03Store the result and serve from your own storeWrite the response to your database or a static JSON file at build time, then serve visitors from that. Call the single-post endpoint only when someone opens a lightbox and you want fresher counts on one item.Post API

Budget

Credit estimate for Instagram API for website.

A six-hourly refresh is four charged posts calls a day plus one profile call — 5 credits a day, about 150 a month. Starter at $12 for 10,000 credits covers about 66 such feeds, and page views in between cost nothing because they never touch the API.

See pricing

FAQ

Instagram API for website FAQ.

Can I hotlink the image URLs straight into my HTML?

No. Media URLs are CDN-signed and expire, typically within hours, so an <img> pointing at one will 403 for visitors a day later. Download the file on refresh and re-host it, or put your own proxy in front. This is the single most common reason a working feed silently breaks a week after launch.

Does this work for a private account?

No. Confirmed private accounts return 200 with available profile details and are billed at the endpoint rate. A website feed only makes sense on a public account anyway.

Can it post to Instagram, or reply to comments from my site?

No. Everything here is read-only. We do not post, comment, like or follow, and there is no write path in the API at all.

What happens if the API is slow while a visitor is on the page?

It should never be in that path. Refresh on a cron or at build time and serve visitors from your own store, so an upstream hiccup shows a slightly older grid rather than an empty one.

Where is the step-by-step build?

This page is the endpoint recipe and the budget. The walkthrough — the Next.js server component, the image proxy with its host allowlist, and how to decode the expiry on a media URL — is at /blog/embed-instagram-feed-on-website.