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 their caps per minute, day and month, enforced by the server. Credits have no caps. Get your key in the customer portal; endpoints are in the documentation.
Try every endpoint
One free key per account · 10 days · 1,000 requests
For apps and side projects
Hard caps, no overage
For growing products
Hard caps, no overage
For high-volume services
Hard caps, no overage
No caps per minute, day or month: pay per request.
Caps are hard limits: past a cap the API answers 429 with Retry-After until that window resets. No overage charges. A total cap is one-time: it never resets, so past it the key needs another plan (the key stays the same). How buying works: sign in to the customer portal, choose a plan or add credits, and pay with crypto (USDT‑TRC20 and others). The key is active once the payment confirms. Payment trouble? Support on Telegram.
Need more than Mega? Credits have no caps; for a custom volume, ask support.
Add creditsX-API-Key One header, JSON backOpen the customer portalQuestions? Support on Telegram
Only if you cannot use e-mail sign-in. We reply by e-mail.
Thanks — your request is in. The key and the next steps come by e-mail.
Your request was not sent: check the e-mail address and what you will use the API for, then send it again. If it keeps failing, write to support@igapi.online.
What 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. A key on credits has no caps; with no credits left the answer is 402 no_credits, nothing counted.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. So is any other failure on our side (503 session_unavailable, 429 rate_limited, 502 upstream_failed, a network 500): no request or credit is used. 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: ask support (links in the footer).
One call to userinfo, feed, media, stories, highlights or highlight with your key. It is counted when the server accepts it, and so are the error answers about what you asked for (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, and so is any other failure on our side. 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.
Sign in to the customer portal with your e-mail: a Free key at once. Plans and credits are bought there with crypto (USDT‑TRC20 and others) and apply once the payment confirms.
Bought in the portal in advance, a fixed number per request, no cap per minute, day or month; the strip above shows the rates and expiry. Oldest are used first; with none left the API answers 402 no_credits and nothing is counted.
Yes: buy another plan for the key in the portal; it applies once the payment confirms, same key. Nothing renews automatically: to cancel, do not buy the next period.
Write to support@igapi.online with the payment id the portal shows.
Yes. A Free key needs no card, and 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.