Unofficial API

Instagram Unofficial API

Meta's Graph API only covers accounts you manage. Unofficial APIs reach any public account, but self-hosted libraries mean logging in with real accounts, rotating proxies, and fixing breakage. A hosted unofficial API gives you the coverage without the upkeep.

50 free credits on signup · no card required

curl "https://api.profilequery.com/v1/profile?handle=nike" \
  -H "Authorization: Bearer $INSTAGRAMAPI_KEY"

What you get

Structured JSON, not raw HTML

  • ▹Any public account: profiles, posts, reels, stories, highlights, followers
  • ▹Comments, likers, hashtags, locations, and keyword search
  • ▹No Instagram login, so no account of yours gets challenged or banned
  • ▹No proxies, device emulation, or session refresh logic to run
  • ▹Plain HTTPS + JSON: call it from Python, Node, Java, Go, or curl
  • ▹Pay per request with no subscription; idle months cost nothing

Comparison

Your unofficial Instagram API options

"Unofficial" covers anything that reads Instagram data outside Meta's Graph API. In practice there are three approaches, and they differ mainly in who carries the operational risk.

1. Self-hosted private API libraries (instagrapi, instagram-private-api)

Libraries like instagrapi (Python) and instagram-private-api (Node) emulate the Instagram mobile app and call its private endpoints. They're capable, open source, and free to run.

  • ▹You log in with a real Instagram account, and that account takes the risk: challenges, checkpoints, and bans are routine at volume.
  • ▹Serious use needs residential or mobile proxies plus a pool of accounts to rotate.
  • ▹Instagram changes app signatures and endpoints; you wait for a library update, then redeploy.
  • ▹Best for: low-volume personal automation where you control the account.

2. DIY scraping (headless browser or GraphQL)

Driving Chrome or calling the web GraphQL endpoint directly. Anonymous access is heavily rate-limited, and logged-in access has the same ban risk as the libraries. Query IDs and page markup change with every web release.

3. A hosted unofficial API (this one)

A hosted API runs the sessions, proxies, and parsers for you and exposes stable REST endpoints. You never log in to Instagram, so there's no account to lose, and breakage gets fixed upstream without a redeploy on your side.

# instagrapi
from instagrapi import Client
cl = Client()
cl.login(USERNAME, PASSWORD)          # your account, your risk
user = cl.user_info_by_username("nike")

# hosted API: no login
import requests
user = requests.get(
    "https://api.profilequery.com/v1/profile",
    params={"handle": "nike"},
    headers={"Authorization": f"Bearer {API_KEY}"},
).json()["data"]

What an unofficial API can't do

  • ▹Read private accounts. Nothing legitimate can, and this API never tries.
  • ▹Post, like, follow, or DM. This API is read-only public data.
  • ▹Return owner-only metrics like reach, impressions, or saves. Those live in Meta's Graph API Insights.

Example response

What comes back

{
  "data": {
    "id": "13460080",
    "username": "nike",
    "full_name": "Nike",
    "biography": "Just Do It.",
    "is_verified": true,
    "is_private": false,
    "is_business": true,
    "category": null,
    "followers": 291952375,
    "following": 264,
    "posts": 1657,
    "external_url": "http://empli.fi/nike",
    "profile_pic_url": "https://instagram.com/.../nike.jpg",
    "public_email": null,
    "public_phone_number": null
  }
}

Response fields

Fields returned by GET /v1/profile

FieldDescription
idNumeric account id (stable even if the username changes).
usernameThe account's @handle.
full_nameDisplay name shown on the profile.
biographyThe profile's bio text.
is_verifiedWhether the account has a verified badge.
is_privateWhether the account is private.
is_businessWhether this is a business/professional account.
categoryBusiness category label when set (e.g. "Sportswear"); null otherwise.
followersNumber of accounts following this account.
followingNumber of accounts this account follows.
postsTotal number of posts on the profile.
external_urlThe clickable link in the bio, if any.
profile_pic_urlURL of the account's profile picture.
public_emailPublic contact email, if the account exposes one; null otherwise.
public_phone_numberPublic contact phone number, if exposed; null otherwise.

No login required

Nothing to authenticate but your API key

No OAuth flow

One static API key in an Authorization: Bearer header. No redirect, no refresh tokens, no expiring session.

No Meta app review

Never touch Meta's developer platform, Business Verification, or a connected Facebook Page. Sign up directly with Instagram API.

Public data only

Every endpoint returns only what's already visible on Instagram without logging in. Private accounts are never accessible.

Pricing

1 credit per request. Credits start at $8.00 per 1,000 and drop to $6.00 per 1,000 at volume — no subscription, no minimums. New accounts get 50 free credits.

See full pricing

FAQ

Instagram Unofficial API, explained

Is there an official Instagram API for public data?

Not for arbitrary accounts. Meta's Instagram Graph API covers business and creator accounts you've connected, plus limited Business Discovery and hashtag search (capped at 30 unique hashtags per 7 days). Reading any public profile at scale requires an unofficial API.

What's the difference between the Instagram private API and an unofficial API?

The "private API" is the set of endpoints Instagram's own apps use. Unofficial APIs are tools built on top of them: self-hosted libraries like instagrapi, or hosted services like this one that handle the sessions and proxies for you.

Will using this get my Instagram account banned?

No. You never give us an Instagram login, and requests don't touch your account. You authenticate with an API key only.

Is this a good instagrapi alternative?

If you're using instagrapi to read public data (profiles, posts, followers, comments, hashtags), yes: the same data without account logins or proxy management. If you need write actions like posting or DMs, instagrapi does things this API deliberately doesn't.

How much does it cost?

Most lookups are 1–2 credits. Credits start at $8.00 per 1,000 with no subscription, and new accounts get 50 free.

Start pulling unofficial api data

Create a free key and make your first request in under a minute — 50 credits on us.