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.
- 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
- 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
- 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 pricingFAQ
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.

