Pricing

Instagram API pricing

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.

  • Same endpoints on every plan
  • Every cap is a hard stop, no overage charges
  • Image proxy and downloads are never counted
  • Change plans, keep your key

Instagram API plans and limits

Free

Free

Try every endpoint

  • Per minute 10
  • Per day 50
  • Per month No separate cap
Get a free key

Pro

For apps and side projects

$26.99 / month
50,000 requests / month
  • 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
Buy Pro
Recommended

Mega

For high-volume services

$199.99 / month
1,000,000 requests / month
  • Per minute 300
  • Per day No separate cap
  • Per month 1,000,000

Hard caps, no overage

  • All six data endpoints: profiles, feeds, posts, stories and highlights
  • Image proxy and downloads never count toward the caps
Buy Mega

Ultra

For growing products

$59.99 / month
200,000 requests / month
  • Per minute 50
  • Per day No separate cap
  • Per month 200,000

Hard caps, no overage

  • All six data endpoints: profiles, feeds, posts, stories and highlights
  • Image proxy and downloads never count toward the caps
Buy Ultra

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 us
For developers

API at a glance

What a key gets on any plan, and exactly how the limits behave. The documentation has every field and error.

Base URL
https://igapi.online/api
Authentication
Send your key in the X-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.
Format
GET requests over HTTPS, JSON answers in UTF-8. The data endpoints answer errors as {"error": "<code>", "message": "…"} with a standard HTTP status.
Limits
Counted per key in fixed UTC windows: the minute, the day and the calendar month, kept across server restarts. Past a cap the API answers 429 plan_limit_exceeded with a Retry-After header in seconds; the body names the window, the limit and resetAt.
What counts
One call to one of the six data endpoints is one request, counted when the server accepts it — also when Instagram then fails to answer. Error answers after that count too (for example an account that does not exist or is private). Never counted: a call refused by our input checks before Instagram is asked (400: a malformed username, post link, highlight id or 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.
Never counted
/api/proxy-image, /api/download, /api/health and /api/plans. GET /api/health with your key checks the key without spending a request.

Endpoints

  • /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 downloadfree
handle-the-cap.js
const 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

Instagram API pricing: questions and answers

Short answers about requests, caps and buying. Anything else: the Buy buttons open a Telegram chat, and questions are welcome there too.

What counts as a request?

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.

What happens when my key reaches a cap?

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.

How do I buy a plan?

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.

Can I upgrade, downgrade or cancel?

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.

What about refunds?

Write to us on Telegram, in the same chat you bought in. Payments are arranged there, so refund questions are answered there too.

Can I try the API before I pay?

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.

Do you need my Instagram login?

No. The API runs on the service’s own connection to Instagram; we never ask for your Instagram password.

Is this service affiliated with Instagram or Meta?

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.