~ / endpoints / Profile API

Instagram Profile Scraper API

Our Instagram profile scraper turns any public username or profile URL into structured JSON: the exact follower count, following and posts totals, full bio, verified and private flags, category, and the avatar URL, all from a single request with no login.

Get a free API keyBrowse the endpoints
1,000
free requests / mo
2.6s
median response
JSON
structured output
1
call per profile

Use it for

>

Influencer vetting

Resolve a list of handles into exact follower_count, following_count, and posts_count so you can size creators and screen for bought audiences before you reach out.
>

Audience tracking

Poll a profile daily and store follower_count and posts_count to build the growth history Instagram never shows you in the app.
>

Creator databases

Enrich a spreadsheet of usernames into clean rows: full_name, biography, category, verified flag, and avatar for a searchable creator catalog.
>

Competitor monitoring

Watch rival brand accounts on a schedule and chart how their follower count and post cadence move week over week.

Quickstart

cURL
curl "https://api.instagramscraperapi.com/api/v1/instagram/profile?username=nasa&api_key=$API_KEY"
Python
import requests, os

BASE = "https://api.instagramscraperapi.com"
API_KEY = os.environ["API_KEY"]

# Pass a username (no leading @) or a full profile URL.
data = requests.get(
    f"{BASE}/api/v1/instagram/profile",
    params={"username": "nasa", "api_key": API_KEY},
    timeout=30,
).json()

print(data["full_name"], "-", data["follower_count"], "followers")
print(data["posts_count"], "posts | verified:", data["is_verified"])
print(data["biography"])

Response

200 OK
{
  "id": "528817151",
  "username": "nasa",
  "full_name": "NASA",
  "url": "https://www.instagram.com/nasa/",
  "biography": "Making the seemingly impossible, possible.",
  "profile_pic_url": "https://scontent-lax7-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
  "external_url": null,
  "category": null,
  "is_verified": true,
  "is_private": false,
  "is_business": null,
  "follower_count": 104390464,
  "following_count": 91,
  "posts_count": 4833,
  "posts": null,
  "og_description": "104M Followers, 95 Following, 4,833 Posts - See Instagram photos and videos from NASA (@nasa)",
  "source": "instagram",
  "data_source": "embedded"
}
FieldTypeDescription
idstringThe account's numeric Instagram user id (pk), the stable identifier that never changes.
usernamestringThe profile handle, e.g. nasa.
full_namestringThe display name shown on the profile.
urlstringThe canonical profile URL.
biographystringThe full bio text from the profile.
profile_pic_urlstringURL of the profile picture (the HD version when Instagram ships it).
external_urlstringThe link in the bio when present, otherwise null. Gated for many profiles logged-out.
categorystringThe business or creator category label when present, otherwise null.

How it works

  1. Send a GET request with your target and API key.
  2. We route through residential proxies, handle anti-bot, and parse the response.
  3. You get validated JSON back, ready to use.

How it compares

Our APIDIY (requests / headless)Instagram Graph API
Input by username or URLYes, handle or profile URLManual page fetch and parseBy owned account id only
Public profilesAny public accountPossible but parser breaks oftenOnly accounts you own or manage
SetupAPI key onlyResidential proxies, headless browser, parsersFacebook app, linked Business account, app review
Exact follower countFrom the embedded profile objectBuried in a hydrated blob you must locateAvailable for your own account
Anti-bot and proxiesBuilt in, residential USYou build and maintain itNot applicable
OutputValidated JSON, stable schemaRaw HTML you parse yourselfJSON, scoped to your assets

Pricing

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

What is an Instagram profile scraper?

An Instagram profile scraper is a tool that reads a public account's data and returns it in a structured format. Our Instagram profile scraper API takes a username or profile URL and returns the numeric id, full name, bio, exact follower_count, following_count, posts_count, verified and private flags, category, and avatar URL as JSON from a single request, with no login or Facebook app.

How do I scrape an Instagram profile without writing a parser?

Send one GET request to our instagram/profile endpoint with the username (or a profile URL) and your API key. We route through residential IPs, handle anti-bot checks, retry on failure, and parse the embedded profile object, so you get clean JSON back without maintaining selectors against Instagram's changing markup.

Can I get the exact follower count?

Yes, when Instagram ships it. We read the embedded profile object that carries the precise integer follower, following, and post counts, which is why the sample shows 104390464 rather than a rounded 104M. When that object is withheld for a given capture, we fall back to the abbreviated Open Graph counts and set data_source to opengraph so you can tell the two apart.

Why is the posts field null?

Instagram does not serve the post grid on the logged-out profile page. The timeline media loads over a separate authenticated GraphQL request, so the profile response returns posts_count (the total) but posts is always null. To pull actual media, use a hashtag or post endpoint rather than the profile endpoint. We keep the field null rather than inventing entries.

Do I need an Instagram or Facebook API key?

No. You only need an instagramscraperapi key passed as the api_key query parameter. There is no Facebook app to register, no Business or Creator account to link, and no app review. The official Instagram Graph API requires all three and still only returns data for accounts you own or manage, not arbitrary public profiles.

Can I scrape private accounts?

No. We only return data that a logged-out visitor can see on a public profile. For a private account the response reports is_private as true and does not expose posts or a follower list. Reading private content would require an authenticated session, which this endpoint does not use.

Get profile api as JSON
Free plan, 1,000 requests. No credit card required.
Get a free API key All endpoints