Insta Profile Fetcher Pro
Pricing
from $1.90 / 1,000 results
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
Maintained by CommunityActor 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
| Field | Type | Default | Description |
|---|---|---|---|
profiles | string[] | — | Required. Instagram usernames or profile URLs |
proxyMode | "none" | "residential" | "apify" | "apify" | How requests are proxied |
residentialProxyUrl | string | — | Full proxy URL when proxyMode is "residential" (e.g. http://user:pass@host:port). Can also be set via RESIDENTIAL_PROXY_URL |
maxRequestRetries | integer | 2 | Retries per failed username |
desiredConcurrency | integer | 1 | Target parallel requests. Keep low to reduce Instagram blocks |
maxConcurrency | integer | 1 | Maximum parallel requests |
includeLatestPosts | boolean | true | Include 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
- Normalize and dedupe usernames from
input.profiles. - Enqueue profile requests in batches of 500.
- Warm up an Instagram session (homepage + profile page) to collect cookies.
- Fetch
https://www.instagram.com/api/v1/users/web_profile_info/?username=.... - If the API result is unusable, parse the public profile HTML instead.
- 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 installnpm 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) ornoneRESIDENTIAL_PROXY_URLwhen 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.