Pro
For apps and side projects
- Per minute 50
- Per day No separate cap
- Per month 50,000
Hard caps, no overage
- All six data endpoints: profiles, feeds, posts, stories and highlights
- Image proxy and downloads never count toward the caps
Every plan calls the same endpoints and gets the same data. Plans differ only in how many requests a key may make per minute, per day and per month — and every number below is the cap the server enforces. Every endpoint is described in the Instagram API documentation.
For apps and side projects
Hard caps, no overage
For high-volume services
Hard caps, no overage
For growing products
Hard caps, no overage
Caps are hard limits: past a cap the API answers 429 with Retry-After until that window resets. No overage charges. How buying works: the button opens a Telegram chat with @im_rashid with the plan already named. Payment is arranged there for now; crypto checkout is planned. A key that moves to another plan stays the same key.
Need more than Mega? Contact us on Telegram with the volume you expect.
Contact usWhat a key gets on any plan, and exactly how the limits behave. The documentation has every field and error.
https://igapi.online/apiX-API-Key header. When a request sends a key, every answer of the data endpoints carries X-API-Key-Status: ok or invalid. Right now this server also answers requests without a key, or with an unknown or revoked one: they count against no plan, and only per-IP limits can apply to them.{"error": "<code>", "message": "…"} with a standard HTTP status.plan_limit_exceeded with a Retry-After header in seconds; the body names the window, the limit and resetAt.max_id) and a call refused at a cap (429). A call answered 503 no_sessions — none of our Instagram accounts was free at that moment — is given back to your key. Each feed page is its own request./api/proxy-image, /api/download, /api/health and /api/plans. GET /api/health with your key checks the key without spending a request./userinfo/:usernameProfile: counts, bio, verification, business and contact fieldscounts/feed/:usernamePosts and reels with media, captions and counts, paged by max_idcounts/media?url=…One post or reel by its link or shortcodecounts/stories/:usernameThe account’s current storiescounts/highlights/:usernameThe highlights pinned to a profilecounts/highlight/:idThe items of one highlightcounts/proxy-image?url=…An Instagram CDN image served from this APIfree/download?url=…A photo or video as a file downloadfreeconst res = await fetch("https://igapi.online/api/userinfo/nasa", { headers: { "X-API-Key": process.env.IGAPI_KEY }, }); if (res.status === 429) { const wait = Number(res.headers.get("Retry-After")); // seconds // try again after `wait` seconds — the JSON names the full window } const profile = await res.json();
Full reference: documentation · Try it first: the Instagram viewer and the live playground
Short answers about requests, caps and buying. Anything else: the Buy buttons open a Telegram chat, and questions are welcome there too.
One call to userinfo, feed, media, stories, highlights or highlight with your key. It is counted when the server accepts it, so a call that Instagram then fails to answer still counts, and so do the error answers after that (for example an account that does not exist or is private). Two refusals are never counted: a call our input checks refuse before Instagram is asked (400: a malformed username, post link, highlight id or max_id) and a call refused because the key is at a cap (429). A call answered 503 no_sessions — none of our Instagram accounts was free at that moment — is given back to your key. The image proxy, downloads, /api/health and /api/plans never count.
The data endpoints answer 429 with the error plan_limit_exceeded and a Retry-After header (seconds) until that window resets: the next minute, 00:00 UTC, or the first day of the next month. When several caps are full, the longest window is reported, so waiting Retry-After is always enough. Nothing is billed for it — there are no overage charges.
Press the plan’s button: a Telegram chat opens with the plan already named in the message. Payment is arranged in that chat for now; a crypto checkout on this site is planned for the next version. You get a key on the plan you chose — or, if you already have a key, it is moved to that plan and keeps working as it is.
Yes — send a message on Telegram. A plan change applies to your key at once, and the key itself does not change. Nothing renews or charges automatically: there is no billing on this site.
Write to us on Telegram, in the same chat you bought in. Payments are arranged there, so refund questions are answered there too.
Yes. The Instagram viewer and the downloader pages on this site call the same API, live, and the documentation has a playground for every endpoint.
No. The API runs on the service’s own connection to Instagram; we never ask for your Instagram password.
No. It is an independent service, not affiliated with, endorsed by or sponsored by Instagram or Meta Platforms, Inc. It is made for content its owners have made public, and you are responsible for how you use what it returns.