Pricing

Instagram API pricing

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.

  • 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

One free key per account · 10 days · 1,000 requests

  • Per minute 10
  • Per day No separate cap
  • Per month No separate cap
  • In total (one-time) 1,000
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

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
Recommended

Mega

For high-volume services

$199.99 / month
1,000,000 requests / month
  • Per minute 350
  • 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
Credits

Pay as you go

No caps per minute, day or month: pay per request.

  • Per $1 1,000 credits
  • Per request 1 credit
  • Expiry 90 days
Add credits

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 credits

Create your key in the portal

  1. Sign in with e-mail A six-digit code, no password
  2. Create a key The Free plan works at once
  3. Send it as X-API-Key One header, JSON back
  4. Add a plan or credits Only when you need more

Open the customer portalQuestions? Support on Telegram

Can’t use e-mail sign-in?

Request an API key

Only if you cannot use e-mail sign-in. We reply by e-mail.

A sentence or two: your product and about how many requests a day. Up to 1,000 characters.

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. A key on credits has no caps; with no credits left the answer is 402 no_credits, nothing counted.
What counts
One call to one of the six data endpoints is one request, counted when the server accepts it. Error answers after that count too when they are about what you asked for (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. 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.
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: ask support (links in the footer).

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

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 get a key, and how do I buy a plan?

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.

What are pay-as-you-go credits?

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.

Can I upgrade, downgrade or cancel?

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.

What about refunds?

Write to support@igapi.online with the payment id the portal shows.

Can I try the API before I pay?

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.

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.