SOCIAL MEDIA

Instagram API: Get User ID, User Info and Posts by User

These operations read public Instagram identity data without an Instagram login, and they answer the three lookups developers search for most. To get a user ID, send a username to Get User Profile: it returns the numeric Instagram id as instagramId alongside the full public profile — bio, follower and following counts, post count, verified and business-account status and the profile picture URL. To get user info from an id you already hold, Get User By Id starts from the numeric id instead of a handle. On the anonymous surface it can return identity only — the username and profile picture — and says so in its detailLevel field; a count Instagram does not disclose comes back as null, never as zero followers. Check Account answers a narrower question — does a username, email address or phone number belong to an existing Instagram account, and which recovery channels does it expose — which is the check to run before a profile lookup that would otherwise come back empty. To get posts by user, take the id from either lookup and pass it to Get User Posts, covered on the Instagram Post Scraper API page linked below. None of these needs an Instagram account, password or session cookie; every call authenticates with your upAPI key alone. Instagram serves a logged-out visitor a blank shell rather than a clean error when it refuses a read, so these operations classify that shell and raise a real error instead of quietly returning an empty profile — a change verified against production on 2026-09-10. The exact price and cache lifetime are on this page’s FAQ, generated from the same catalog the calls run against.

Last updated

What data you get

Instagram Get User Profile

success
booleanrequired
fullName
stringrequired
username
stringrequired
biography
stringrequired
elapsedMs
integerrequired
fetchedAt
stringrequired
followers
integerrequired
following
integerrequired
isPrivate
booleanrequired
postCount
integerrequired
isVerified
booleanrequired
externalUrl
string
instagramId
stringrequired
categoryName
string
profilePicUrl
string
isBusinessAccount
booleanrequired

Instagram Get User By Id

pk
stringrequired
fbid
string
success
booleanrequired
bioLinks
arrayrequired
category
string
fullName
string
username
stringrequired
biography
string
elapsedMs
integerrequired
fetchedAt
stringrequired
isPrivate
boolean
isBusiness
boolean
isVerified
boolean
mediaCount
integer
detailLevel
stringrequired — 'stub' = identity only (what anonymous returns today); 'full' = counts and profile detail were disclosed
externalUrl
string
publicEmail
string
businessEmail
string
businessPhone
string
followerCount
integer — null = not disclosed by this surface, never 'zero followers'
profilePicUrl
string
followingCount
integer
isProfessional
boolean

Instagram Check Account

query
stringrequired
exists
booleanrequired
success
booleanrequired
elapsedMs
integerrequired
fetchedAt
stringrequired
queryType
string
canSendEmail
boolean
canSendPhone
boolean
canUseFacebook
boolean
canSendWhatsapp
boolean

Calling Instagram Get User Profile

A schema-derived request and response shape — not a captured production call, since upAPI has none to publish. Every field is real, from the operation’s own published schema.

bash
curl -X POST https://api.upapi.io/instagram-get-user-profile.post \
  -H "X-Api-Key: $UPAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "username": "torvalds"
}'
json — example response shape
{
  "success": false,
  "fullName": "example",
  "username": "torvalds",
  "biography": "example",
  "elapsedMs": 1,
  "fetchedAt": "example",
  "followers": 1,
  "following": 1,
  "isPrivate": false,
  "postCount": 1,
  "isVerified": false,
  "externalUrl": "example",
  "instagramId": "example",
  "categoryName": "example",
  "profilePicUrl": "example",
  "isBusinessAccount": false
}

Pricing

Every unit draws from one pooled monthly quota shared across the whole catalog. What a unit costs on each plan is on the pricing page, linked below.

Questions people actually ask

How do I get an Instagram user ID from a username?

Send the username, without the @, to Instagram Get User Profile. The response carries the numeric Instagram id as instagramId next to the rest of the public profile, so one call gives you both the user ID and the user info.

How do I get Instagram user info from a user ID?

Send the numeric id to Instagram Get User By Id. It returns the username and profile picture, and when Instagram discloses them also the bio, counts and business details. Its detailLevel field says whether you got only the identity or the full profile, and an undisclosed count is null rather than zero.

How do I get Instagram posts by user?

Resolve the username to a numeric id with Get User Profile, then pass that id as userId to Instagram Get User Posts, which returns the account’s recent posts with engagement metrics and a nextMaxId cursor for the next page. It is part of the Instagram Post Scraper API cluster.

What happens if the profile is private or does not exist?

Instagram answers a blocked or unknown read with a blank logged-out page rather than a clean 404, so upAPI classifies that shell and raises a real, typed error instead of returning an empty profile object that looks like a real (if boring) result.

How much does this cost?

Every operation in this cluster costs 15 weighted units per call, drawn from your plan’s pooled monthly quota — see upapi.io/pricing for what a unit costs on each tier.

How fresh is the data — is it cached?

Instagram Get User Profile is cached for 10 minutes; Instagram Get User By Id is cached for 5 minutes; Instagram Check Account is cached for 1 minute. A repeat call inside a cached window returns the cached response and is billed nothing.

Related

Start with the free plan

One key and one pooled monthly quota cover Instagram Get User Profile and every other API in the catalog. See what a unit costs on each plan, or run the operation first.