Get an Instagram account profile
One public Instagram account’s profile, by username or profile URL. Returns the display name, bio, unwrapped bio links, avatar, the verified, private and memorialised flags, pronouns, badges, the follower and following counts — and highlights, the title and cover of every story highlight kept on the profile, which almost nothing else returns. Two things to expect rather than debug. stats.postCount is always null: Instagram publishes no post count to a signed-out reader, and the response says so — "The source does not publish a post count for a signed-out reader; read the account's posts to count them." And a highlight’s contents are not public; only its title and cover are. A private account still returns its full profile — only its posts are withheld. Billing: 1 credit.
/user-profile Accounts https://api.fetchlayer.dev/instagram/user-profile Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
username string required A username with or without the leading @, or a profile URL.
format string optional json or markdown. Markdown returns a rendered summary instead of the structured record. (default: json)
timeoutMs integer optional Time limit for each individual page read, in milliseconds (max 60000). It bounds one page, not the whole request.
Response Fields
user-profile
Get an Instagram account profile
transport string The upstream source. Always "instagram".
notes string[] Caveats you can act on — a ceiling Instagram imposes, a counter it withholds, a list that stopped early. Several real limits are reported only here, so read them. An empty result always comes with a note explaining it, never as an unexplained empty array.
pagesFetched number Pages of results read, which is what the request costs: one credit per page. resolve-url reports 0 and is not billed.
profile.id string Instagram’s numeric account id.
profile.username string The handle, without the @.
profile.url string Canonical profile URL.
profile.fullName string The display name.
profile.biography string The bio text.
profile.profilePicUrl string Avatar image. Pass it to GET /media to re-fetch it after Instagram’s signed link expires.
profile.verified boolean Whether Instagram shows the verification badge.
profile.privateAccount boolean Whether the account is private. A private account still returns this profile; its posts are withheld.
profile.memorialized boolean Whether the account is memorialised.
profile.pronouns string[] The pronouns on the profile, where set.
profile.badges object[] Badges Instagram shows on the profile.
profile.hasReels boolean Whether the account publishes reels — i.e. whether user-reels will return anything.
profile.textAppUsername string The linked Threads handle, or null.
profile.stats.followerCount number Followers, as Instagram publishes it.
profile.stats.followingCount number Accounts this one follows.
profile.stats.postCount number Always null. Instagram does not publish a post count to a signed-out reader — read user-posts and count them. The note on the response says so.
profile.bioLinks object[] title, url, linkType and pinned. Unwrapped to their real destinations rather than Instagram’s tracking links.
profile.highlights object[] id, title and coverUrl for every story highlight on the profile. The contents of a highlight are not public.
Request
curl -X POST "https://api.fetchlayer.dev/instagram/user-profile" \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"username":"@nasa"}'Response
{
"transport": "instagram",
"notes": [
"The source does not publish a post count for a signed-out reader; read the account's posts to count them."
],
"pagesFetched": 1,
"profile": {
"id": "528817151",
"username": "nasa",
"url": "https://www.instagram.com/nasa/",
"fullName": "NASA",
"biography": "Making the seemingly impossible, possible. ✨",
"profilePicUrl": "https://scontent-fra5-1.cdninstagram.com/v/t51.2885-19/...",
"verified": true,
"privateAccount": false,
"memorialized": false,
"pronouns": [],
"badges": [],
"hasReels": true,
"textAppUsername": "nasa",
"stats": {
"followerCount": 104352683,
"followingCount": 91,
"postCount": null
},
"bioLinks": [
{
"title": "NASA.gov Homepage",
"url": "https://www.nasa.gov",
"linkType": "external",
"pinned": false
},
{
"title": "NASA Internships",
"url": "http://intern.nasa.gov",
"linkType": "external",
"pinned": false
}
],
"highlights": [
{
"id": "18195781759377100",
"title": "Roman",
"coverUrl": "https://scontent-fra5-1.cdninstagram.com/v/t51.71878-15/..."
},
{
"id": "18123023338592759",
"title": "Wallpapers",
"coverUrl": "https://scontent-fra5-1.cdninstagram.com/v/t51.71878-15/..."
}
]
}
}