Instagram Scraper
Get Instagram Profile
Retrieves comprehensive public Instagram profile information including biography, bio links, follower and following counts, verification status, and profile picture URLs. Also returns recent timeline posts with engagement metrics such as likes, comments, and video view counts, plus a list of related profiles. Useful for account overview, audience analysis, or discovering similar creators. Video play counts are separate from video view counts. Profile-pinned videos may have video_play_count=null when their count is not found in a short recent-Reels scan; available pinned counts are kept and non-pinned videos require numeric plays. Use /v1/instagram/post with an individual post or reel URL for a deeper play-count lookup. Instagram may return media_count as null or return only the current post batch in edge_owner_to_timeline_media.count. Use Profile Post Count when you specifically need the total number of posts. An explicit rendered age gate (for example, You must be 21 years old or over to see this profile. This means Instagram identified an existing profile but requires an age-verified login to view it; we do not bypass the gate. It applies to GET, trimmed GET, and POST handle requests. The age_restricted field is omitted when age gating has not been explicitly confirmed; its absence is not proof that the account has no age limit. For GET handle requests, Profile is private means Instagram returned is_private=true. Account doesn't exist means the handle lookup returned no matching account, not confirmed deletion. A legacy Profile is restricted placeholder means the profile reports content but its public timeline returned no items. HTTP 500 with Shoot, IG is blocking us. Try again and it should work. Do not label generic login prompts or unavailable responses as age-restricted.
Endpoint
Parameters
| Name | Type | Required | Note |
|---|---|---|---|
| handlestring · required | string | required | Instagram handle |
| trimboolean · optional | boolean | optional | Set to true to get a trimmed response |
| cache_max_agestring · optional | string | optional | See the Caching page for details. One of: |
Response schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": true
}