Insta Profile Fetcher Pro avatar

Insta Profile Fetcher Pro

Pricing

from $1.90 / 1,000 results

Go to Apify Store
Insta Profile Fetcher Pro

Insta Profile Fetcher Pro

Fast and reliable Instagram profile scraper for extracting public profile data without login or cookies. Fetch username, bio, followers, following, posts count, profile picture, verified badge, business category, external links, and more with clean JSON output and scalable performance.

Pricing

from $1.90 / 1,000 results

Rating

5.0

(1)

Developer

Ghost Rider

Ghost Rider

Maintained by Community

Actor stats

0

Bookmarked

55

Total users

10

Monthly active users

13 days ago

Last modified

Categories

Share

Apify actor that scrapes public Instagram profile data. It tries Instagram's web profile API first, then falls back to HTML if the API response is blocked or incomplete.

Version: 1.9

Features

  • Accepts usernames or full Instagram profile URLs
  • Deduplicates and normalizes input (@user, user, https://www.instagram.com/user/)
  • Returns profile metadata and, optionally, up to 12 latest posts
  • Session warmup, cookie reuse, and retries for blocks and transient errors
  • Proxy support: Apify residential, custom residential URL, or no proxy

Input

FieldTypeDefaultDescription
profilesstring[]—Required. Instagram usernames or profile URLs
proxyMode"none" | "residential" | "apify""apify"How requests are proxied
residentialProxyUrlstring—Full proxy URL when proxyMode is "residential" (e.g. http://user:pass@host:port). Can also be set via RESIDENTIAL_PROXY_URL
maxRequestRetriesinteger2Retries per failed username
desiredConcurrencyinteger1Target parallel requests. Keep low to reduce Instagram blocks
maxConcurrencyinteger1Maximum parallel requests
includeLatestPostsbooleantrueInclude up to 12 latest posts per profile

Example

{
"profiles": [
"instagram",
"https://www.instagram.com/cristiano/",
"@therock"
],
"proxyMode": "apify",
"maxRequestRetries": 2,
"desiredConcurrency": 1,
"maxConcurrency": 1,
"includeLatestPosts": true
}

Output

Each successful profile is pushed to the default dataset:

{
"inputUrl": "https://www.instagram.com/cristiano/",
"id": "173560420",
"username": "cristiano",
"url": "https://www.instagram.com/cristiano/",
"fullName": "Cristiano Ronaldo",
"biography": "...",
"externalUrl": "https://...",
"externalUrls": [
{
"title": "",
"lynx_url": "",
"url": "https://...",
"link_type": "external"
}
],
"followersCount": 650000000,
"followsCount": 580,
"postsCount": 3800,
"private": false,
"verified": true,
"isBusinessAccount": false,
"profilePicUrl": "https://...",
"profilePicUrlHD": "https://...",
"latestPosts": []
}

Failed usernames are also written to the dataset:

{
"success": false,
"failed": true,
"requestedUsername": "missing_user",
"username": "missing_user",
"error": "Profile not found for missing_user",
"errorType": "ProfileNotFoundError",
"retryCount": 0,
"timestamp": "2026-09-13T09:00:00.000Z"
}

Latest posts

When includeLatestPosts is enabled, each post can include id, type (Image, Video, Sidecar), shortCode, caption, hashtags, mentions, url, likesCount, commentsCount, displayUrl, timestamp, ownerUsername, ownerId, and sidecar childPosts.

How it works

  1. Normalize and dedupe usernames from input.profiles.
  2. Enqueue profile requests in batches of 500.
  3. Warm up an Instagram session (homepage + profile page) to collect cookies.
  4. Fetch https://www.instagram.com/api/v1/users/web_profile_info/?username=....
  5. If the API result is unusable, parse the public profile HTML instead.
  6. Push the result (or a failure record) to the Apify dataset.

Sessions rotate after 5 uses. Blocked and temporary errors are retried; not-found and invalid responses are not.

Local development

Requires Node.js 18+.

npm install
npm start

The actor reads input from Apify (Actor.getInput()). For a one-off local profile test:

$npm run test:profile -- cristiano

Optional env vars for the test script:

  • PROXY_MODE=apify (default) or none
  • RESIDENTIAL_PROXY_URL when using a custom residential proxy in a full actor run

Notes

  • Public profiles only. Private accounts will not return post content.
  • Instagram rate-limits aggressively. Prefer residential proxies and low concurrency.
  • This actor is for collecting publicly available profile information. Follow Instagram's terms and applicable law.