Instagram Profile API and MCP — Bio, Followers & Business Flags
Send an Instagram username or profile URL and this source returns the public profile as data: full name, bio, external links, follower and following counts, and whether the account is verified, private or a business account.
- You send
- An Instagram username or profile URL
- You get back
- The profile with bio, links, follower counts and account flags
- Coverage
- Public Instagram accounts, worldwide.
- Price
- Flat 5 points per successful lookup — $5 per 1,000
- A flat 5 points per profile that resolves. A username that doesn't exist costs nothing.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Checking profiles by hand | Open each profile and note the numbers | Free, and slow | Fine for a shortlist, not for vetting hundreds of accounts |
| Meta's Graph API | A business account, app review, permissions | Free, gated | Business discovery covers business and creator accounts only, through your own connected account |
| NeuralVerge | One request per username | $5 per 1,000, misses not billed | Public counts only — no audience demographics or reach, which only the account owner sees |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
total_items | number | 1 when the profile resolved. |
items[].id | string | Instagram's numeric account ID. |
items[].username | string | The account handle. |
items[].full_name | string | Display name. |
items[].url | string | Profile URL. |
items[].biography | string | Bio text. |
items[].external_urls | array | Links in the bio, with their titles. |
items[].followers_count | number | Followers at read time. |
items[].follows_count | number | Accounts the profile follows. |
items[].is_verified | boolean | Whether the account has a verified badge. |
items[].is_private | boolean | Whether the account is private. |
items[].is_business_account | boolean | Whether it is set up as a business account. |
items[].business_category | string | null | The business category, where the account shows one. |
items[].profile_pic_url | string | Profile picture. |
Example response
A real response, as returned.
{
"session_id": "b972bdf2-d22c-4334-be99-8b932399bc00",
"kind": "instagram_profile",
"username": "natgeo",
"partial": false,
"machine": {
"total_items": 1,
"items": [
{
"id": "787132",
"username": "natgeo",
"full_name": "National Geographic",
"url": "https://www.instagram.com/natgeo",
"biography": "Step into wonder and find your inner explorer with National Geographic 🌎",
"external_url": "http://visitstore.bio/natgeo",
"external_urls": [
{ "title": null, "url": "http://visitstore.bio/natgeo" },
{ "title": "Subscribe Here!", "url": "https://ngmdomsubs.nationalgeographic.com/servlet/OrdersGateway?cds_mag_code=NGM&cds_page_id=283562&cds_response_key=I5FX10002" }
],
"followers_count": 268279340,
"follows_count": 195,
"is_verified": true,
"is_private": false,
"is_business_account": true,
"business_category": null,
"joined_recently": false,
"related_profiles": [],
"latest_posts": []
}
],
"errors": []
},
"total_points": 5
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
This endpoint is synchronous: the call blocks until the lookup completes and returns the profile directly. username is required and accepts a handle (natgeo) or a profile URL.
curl -X POST https://api.neuralverge.ai/functions/v1/run-instagram-profile \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "username": "natgeo" }'What teams use it for
Where this field shows up in an actual workflow.
Check follower counts, verification and account type before you shortlist anyone.
Compare competitors' Instagram audiences side by side.
See where a brand sends its Instagram traffic — shop, booking page or campaign.
Add an Instagram audience figure to company or creator records.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Public Instagram accounts, worldwide.
Read at request time.
This source returns content an account published publicly, stamped with the URL it was read from and a session id you can trace. Accounts can belong to individuals as well as brands — use it for legitimate business purposes under your own lawful basis and check the acceptable use policy.
- —Private accounts return the basic profile only; their posts are not readable.
- —Follower counts include inactive and fake accounts — treat them as reach on paper, not engaged audience.
- —Some counts, like total posts, are not always shown and come back null.
Questions, answered
Yes — every Data Source endpoint, including this one, is synchronous: the lookup runs inside the request and the result comes back in the same response, no polling. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever records it collected so far — re-run with a smaller max_items to get a complete result instead of a partial one.
Related sources
Try instagram profile on your own data
One request format across every source in the catalog.