Instagram Profile Scraper avatar
Instagram Profile Scraper

Pricing

Pay per event

Go to Apify Store
Instagram Profile Scraper

Instagram Profile Scraper

Scrape Instagram profiles instantly. Get follower counts, bios, recent posts, engagement rates, and related accounts. Just input usernames - no login required. Supports date filtering and Apify Proxy for reliable results.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Elliot Padfield

Elliot Padfield

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

12 days ago

Last modified

Share

Scrape Instagram profile data including bio, followers, posts, and engagement metrics. Just provide usernames and get structured JSON data back.

Features

  • Profile data - Username, bio, follower/following counts, profile pictures, verification status
  • Recent posts - Up to 12 posts with likes, comments, captions, and media URLs
  • Engagement metrics - Automatically calculated engagement rate
  • Related profiles - Suggested/similar accounts from Instagram
  • Date filtering - Only include posts newer than a specified date
  • Proxy support - Built-in Apify Proxy integration to avoid rate limiting
  • Error handling - Returns structured error objects instead of crashing

Input

FieldTypeDescription
usernamesarrayRequired. List of Instagram usernames to scrape (without @)
proxyConfigurationobjectProxy settings. Recommended to use Apify Proxy
maxRetriesintegerMax retry attempts per profile (default: 3)
delayBetweenRequestsintegerDelay in ms between requests (default: 1000)
onlyPostsNewerThanstringFilter posts by date. Accepts YYYY-MM-DD, ISO format, or relative like 30 days, 6 months, 1 year

Example Input

{
"usernames": ["instagram", "cristiano"],
"proxyConfiguration": {
"useApifyProxy": true
},
"onlyPostsNewerThan": "6 months"
}

Output

Each scraped profile is saved to the dataset with the following structure:

Successful Scrape

{
"username": "instagram",
"userId": "25025320",
"fullName": "Instagram",
"biography": "Discover what's new on Instagram",
"followerCount": 698856927,
"followingCount": 262,
"mediaCount": 8299,
"isVerified": true,
"isPrivate": false,
"isBusiness": false,
"isProfessional": true,
"profilePicUrl": "https://...",
"profilePicUrlHd": "https://...",
"externalUrl": "http://help.instagram.com/",
"bioLinks": [{"title": "", "url": "http://help.instagram.com", "link_type": "external"}],
"pronouns": [],
"categoryName": null,
"highlightReelCount": 15,
"posts": [
{
"id": "3808662901121777021",
"shortcode": "DTbFrq6kn19",
"displayUrl": "https://...",
"isVideo": true,
"postType": "video",
"likeCount": 192022,
"commentCount": 2878,
"caption": "the way he actually flew...",
"takenAt": 1768248111,
"videoUrl": "https://...",
"viewCount": 8343294
}
],
"relatedProfiles": [
{
"username": "nctwish_official",
"fullName": "NCT WISH",
"profilePicUrl": "https://...",
"isVerified": true,
"isPrivate": false
}
],
"engagementRate": 2.45,
"scrapedAt": "2025-01-13T12:00:00.000Z"
}

Error Response

{
"username": "nonexistent_user",
"error": "not_found",
"message": "Profile not found: nonexistent_user"
}

Error types: not_found, private, rate_limited, unknown

Post Types

The scraper handles all Instagram post types:

TypeDescriptionExtra Fields
imageSingle imagedisplayUrl
videoVideo/ReelvideoUrl, viewCount, thumbnailUrl
carouselMultiple images/videoscarouselItems[] with individual media

Proxy Configuration

Using Apify Proxy is highly recommended to avoid rate limiting:

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

For high-volume scraping, residential proxies provide better success rates.

Cost Estimation

  • ~1 request per profile
  • Average run: 1-2 seconds per profile
  • Memory: 256MB is sufficient for most runs

Limitations

  • Only public profiles can be fully scraped
  • Private profiles return an error response
  • Maximum 12 recent posts per profile (Instagram API limit)
  • Related profiles may not be available for all accounts

Local Development

# Install dependencies
pnpm install
# Run locally
echo '{"usernames": ["instagram"]}' > storage/key_value_stores/default/INPUT.json
pnpm run start:dev
# Build
pnpm run build

Deploy to Apify

$apify push

License

ISC