Instagram User Info API by Username
Send a username — or a numeric user ID, or a full profile URL — and get back structured account info: numeric ID, display name, bio, follower and following counts, verification status, and account type.
50 free credits on signup · no card required
curl "https://api.instagramapi.dev/v1/profile?handle=nike" \
-H "Authorization: Bearer $INSTAGRAMAPI_KEY"What you get
Structured JSON, not raw HTML
- ▹Accepts a username, numeric user ID, or full instagram.com URL in one handle param
- ▹Returns the account's stable numeric id, even if the username later changes
- ▹Full name, bio, category, and external link
- ▹Follower count, following count, and total posts
- ▹is_verified, is_private, and is_business flags for quick filtering
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
| Field | Description |
|---|---|
| id | Numeric account id (stable even if the username changes). |
| username | The account's @handle. |
| full_name | Display name shown on the profile. |
| biography | The profile's bio text. |
| is_verified | Whether the account has a verified badge. |
| is_private | Whether the account is private. |
| is_business | Whether this is a business/professional account. |
| category | Business category label when set (e.g. "Sportswear"); null otherwise. |
| followers | Number of accounts following this account. |
| following | Number of accounts this account follows. |
| posts | Total number of posts on the profile. |
| external_url | The clickable link in the bio, if any. |
| profile_pic_url | URL of the account's profile picture. |
| public_email | Public contact email, if the account exposes one; null otherwise. |
| public_phone_number | Public 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 pricingFAQ
Instagram User Info API by Username, explained
What formats does the username lookup accept?
The handle parameter accepts a plain username (nike), a numeric user ID (13460080), or a full profile URL (https://instagram.com/nike) — we detect and resolve whichever you send.
Does the response include the numeric user ID?
Yes — every response includes id, the account's permanent numeric identifier, which stays stable even if the account changes its username.
Can I batch-lookup many usernames at once?
Each request looks up one account. For bulk lookups, call the endpoint concurrently — there's no per-key concurrency limit beyond your plan's rate limit.
What happens if the username doesn't exist?
You get a 404 with a typed error body, and you aren't charged — billing only happens on requests that reach Instagram and return data.
Is there a rate limit?
Yes, scaled to your plan; see the docs for current limits. Most on-demand username lookups never come close to it.
Related
More ways to pull Instagram data
Start pulling api by username data
Create a free key and make your first request in under a minute — 50 credits on us.