Instagram Profile & Posts Scraper avatar

Instagram Profile & Posts Scraper

Pricing

Pay per usage

Go to Apify Store
Instagram Profile & Posts Scraper

Instagram Profile & Posts Scraper

Extract Instagram profile and post data. 530+ runs. Pay-per-result. Get followers, bio, posts, engagement rates, profile details.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Web Data Labs

Web Data Labs

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

8

Monthly active users

a day ago

Last modified

Share

Extract public Instagram profile data and recent posts at scale — follower counts, bios, engagement metrics, media URLs, and more. No official Instagram API key or login required. Works with any public Instagram profile.

Why use this scraper?

Instagram's official API is limited to your own accounts and requires app review. This actor scrapes public profile pages directly, giving you structured data from any public Instagram profile in seconds. Perfect for market research, influencer vetting, competitive analysis, and social listening.

Key features

  • No API key needed — scrapes public profile pages directly
  • Batch processing — scrape multiple profiles in a single run
  • Two modes — get full profile info or posts only
  • Up to 50 recent posts per profile with engagement metrics
  • Smart input parsing — accepts @handle, plain usernames, or full profile URLs
  • Pay per result — only pay for data you actually receive
  • Session cookie support — optionally provide your session cookie for richer data

Use cases

1. Influencer marketing & vetting

Verify follower counts, engagement rates, and content quality before signing influencer deals. Compare multiple creators side-by-side.

2. Competitive analysis

Track competitor follower growth, posting frequency, and content strategy. Monitor how their audience engagement compares to yours.

3. Social media monitoring

Keep tabs on brand mentions, campaign hashtags, and user-generated content across multiple accounts.

4. Lead generation for agencies

Build prospecting lists of businesses and creators by scraping profiles in your target niche. Export contact info from bios.

5. Academic & market research

Collect public social media data for research projects, trend analysis, and audience demographics studies.

6. Content strategy planning

Analyze what types of posts (images, videos, carousels) drive the most engagement for accounts in your space.

7. Brand monitoring & reputation management

Monitor your brand's Instagram presence alongside competitors. Track follower trends and sentiment through post engagement.

8. Recruitment & talent sourcing

Find and evaluate creators, designers, and photographers by analyzing their public portfolio and engagement metrics.

Input parameters

ParameterTypeRequiredDefaultDescription
usernamestring✅ YesInstagram username or comma-separated list. Accepts @handle, handle, or full profile URLs like https://instagram.com/natgeo
actionstringNo"profile""profile" = profile info + recent posts, "posts" = posts only
maxPostsintegerNo12Maximum number of recent posts to return per profile (1–50)
sessionCookiestringNoInstagram sessionid cookie value for accessing richer data. Optional — the scraper works without it but may return limited data. Stored securely.

Example input

{
"username": "natgeo, nasa, openai",
"action": "profile",
"maxPosts": 20
}

Input tips

  • Multiple profiles: Separate usernames with commas: "nike, adidas, puma"
  • URLs work too: "https://instagram.com/natgeo" is automatically parsed
  • @ prefix is fine: "@natgeo" works the same as "natgeo"

Output format

Profile mode (default)

{
"username": "natgeo",
"fullName": "National Geographic",
"biography": "Experience the world through the eyes of National Geographic photographers.",
"followerCount": 283000000,
"followingCount": 156,
"postCount": 28400,
"isVerified": true,
"profilePicUrl": "https://instagram.com/...",
"externalUrl": "https://www.nationalgeographic.com",
"recentPosts": [
{
"shortcode": "ABC123def",
"caption": "A rare glimpse of the northern lights over Iceland",
"likeCount": 1250000,
"commentCount": 3420,
"mediaUrl": "https://instagram.com/...",
"timestamp": "2026-03-28T14:30:00Z",
"type": "image",
"url": "https://www.instagram.com/p/ABC123def/"
}
]
}

Posts-only mode

When action is set to "posts", each item in the dataset is a single post object with the username field attached.

Data fields reference

Profile fields

FieldTypeDescription
usernamestringInstagram handle (without @)
fullNamestringDisplay name
biographystringBio text
followerCountintegerNumber of followers
followingCountintegerNumber of accounts followed
postCountintegerTotal posts published
isVerifiedbooleanBlue checkmark status
profilePicUrlstringHD profile picture URL
externalUrlstringLink from bio
recentPostsarrayRecent post objects

Post fields

FieldTypeDescription
shortcodestringInstagram post ID
captionstringPost caption text
likeCountintegerNumber of likes
commentCountintegerNumber of comments
mediaUrlstringImage or video thumbnail URL
timestampstringISO 8601 publish date
typestringimage, video, or carousel
urlstringDirect link to the post

How to use with Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("cryptosignals/instagram-profile-scraper").call(
run_input={
"username": "openai, anthropic, google",
"action": "profile",
"maxPosts": 10,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"@{item['username']}{item.get('followerCount', 0):,} followers")
print(f" Bio: {item.get('biography', '')[:80]}")
for post in item.get("recentPosts", [])[:3]:
print(f" {post.get('likeCount', 0):,} likes — {post.get('caption', '')[:60]}")

How to use with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('cryptosignals/instagram-profile-scraper').call({
username: 'openai, anthropic',
action: 'profile',
maxPosts: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(`@${item.username}${(item.followerCount || 0).toLocaleString()} followers`);
console.log(` Bio: ${(item.biography || '').slice(0, 80)}`);
for (const post of (item.recentPosts || []).slice(0, 3)) {
console.log(` ${(post.likeCount || 0).toLocaleString()} likes — ${(post.caption || '').slice(0, 60)}`);
}
}

How to use via API

You can also start the actor directly via the Apify REST API:

curl -X POST "https://api.apify.com/v2/acts/cryptosignals~instagram-profile-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "natgeo", "action": "profile", "maxPosts": 12}'

Pricing

This actor uses Apify's Pay Per Result model. You only pay for successful data extraction — no charges for failed requests or empty results. Try it for free on Apify's free tier to test with your target profiles before committing.

PlanIncluded resultsBest for
FreeTrial usageTesting and evaluation
PersonalLow-volumeIndividual researchers
TeamMedium-volumeAgencies and small teams
BusinessHigh-volumeEnterprise data pipelines

Integrations

Connect this actor to your existing workflow:

  • Google Sheets — export results directly to a spreadsheet
  • Webhooks — trigger actions when a run completes
  • Zapier / Make — connect to 5,000+ apps
  • Amazon S3 — store results in your data lake
  • Slack — get notifications when data is ready
  • Apify API — programmatic access from any language

Tips for best results

  1. Start small — test with 1-2 profiles before running large batches
  2. Use session cookies for accounts that show limited public data
  3. Respect rate limits — the actor handles delays automatically, but very large batches may take longer
  4. Check profile privacy — private profiles will return limited data

Frequently Asked Questions

Does this scraper require an Instagram account or API key?

No. The scraper works with public profiles without any authentication. The optional session cookie parameter can unlock additional data for some profiles, but it is not required.

Can I scrape private Instagram profiles?

No. This scraper only accesses publicly available data. Private profiles will return limited information (username and basic metadata only).

How many profiles can I scrape at once?

There is no hard limit on the number of profiles per run. Pass a comma-separated list of usernames. The actor processes them sequentially with built-in delays to avoid rate limiting.

What happens if Instagram blocks the request?

The actor includes automatic retry logic with up to 3 retries per profile. If a profile cannot be fetched after retries, the result will include an error message explaining why.

How fresh is the data?

Data is scraped in real-time on every run. You always get the most current public information available on the profile page.

Can I schedule regular scraping runs?

Yes. Use Apify's built-in scheduler to run this actor on any schedule — hourly, daily, weekly, or custom cron expressions. Great for tracking follower growth over time.

What output formats are supported?

Results are available as JSON, CSV, Excel, or XML. You can also push results directly to Google Sheets, webhooks, Amazon S3, and more via Apify integrations.

Scraping publicly available data is generally considered legal in most jurisdictions (see the 2022 US appeals court ruling in hiQ v. LinkedIn). However, you should always review Instagram's Terms of Service and your local regulations. This actor only accesses public data — it does not bypass any login walls or access controls.

How is this different from the official Instagram API?

The official Instagram Graph API only allows access to accounts you own or manage, requires app review, and has strict rate limits. This scraper works with any public profile and requires no API key or approval process.

Can I export results to Google Sheets?

Yes. Apify has a built-in Google Sheets integration. After your run completes, you can automatically export results to a spreadsheet with one click.


⭐ Like this actor? Leave a review!

If this scraper saved you time, please leave a quick review on the Apify Store listing. Even a one-line review helps other developers find this tool.

How to review: Go to the actor page → scroll to Reviews → click Write a review.