Instagram Posts Scraper avatar

Instagram Posts Scraper

Pricing

from $1.50 / 1,000 posts

Go to Apify Store
Instagram Posts Scraper

Instagram Posts Scraper

Scrape Instagram posts like a pro! Extract likes, text, hashtags, and media URLs in seconds. Perfect for market research, competitor analysis, and trend spotting. Fast, reliable, and scalable. Download data in CSV or JSON. Automate your IG research now!

Pricing

from $1.50 / 1,000 posts

Rating

5.0

(1)

Developer

Always Prime

Always Prime

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

4 days ago

Last modified

Share

Instagram Posts Scraper 📸

Scrape recent posts from one or multiple Instagram profiles and get clean structured data in your Apify dataset.

This actor is built for users who want a simple way to collect Instagram post data for monitoring, research, lead generation, trend analysis, or content pipelines, without dealing with browser automation or messy exports.

Why use this actor? 🚀

  • Scrape posts from one profile or many profiles in a single run
  • Collect recent Instagram posts with pagination support
  • Get structured output for images, videos, and carousel posts
  • Receive results progressively while the run is still in progress
  • Keep the input simple with just profiles and post limits

The progressive dataset delivery is especially useful for longer runs: users can start working with data before the actor finishes.

What data will you get? 📦

Each dataset item represents one Instagram post and can include:

  • Profile username
  • Post ID
  • Shortcode
  • Post URL
  • Post type
  • Image or thumbnail URL
  • Video URL when available
  • Caption
  • Likes count
  • Comments count
  • Video view count
  • Post timestamp
  • Accessibility caption
  • Image resource URLs

Typical use cases 💼

  • Track content posted by competitors
  • Monitor brand, influencer, or creator accounts
  • Build datasets for content research and publishing analysis
  • Export Instagram post URLs and media links for internal workflows
  • Collect profile post history for dashboards and reporting

How it works ⚙️

The actor requests Instagram profile and feed endpoints, fetches recent posts, paginates until the requested limit is reached, and pushes each batch to the Apify dataset as soon as it is processed.

That means:

  • you do not need to wait for the entire run to complete before seeing results
  • long runs become easier to monitor
  • downstream automations can start consuming data earlier

Input example 🧩

{
"usernames": ["instagram", "natgeo"],
"maxPosts": 30
}

You can also use a single profile:

{
"username": "instagram",
"maxPosts": 24
}

Input fields explained 📝

  • username: Optional single Instagram username, kept for backward compatibility
  • usernames: List of Instagram usernames without @
  • maxPosts: Maximum number of recent posts to fetch per profile

Output example 📄

{
"profileUsername": "instagram",
"scrapedAt": "2026-03-20T20:10:15Z",
"source": "instagram-web-and-feed",
"id": "1234567890",
"shortcode": "ABCDEF123",
"url": "https://www.instagram.com/p/ABCDEF123/",
"typeName": "GraphImage",
"isVideo": false,
"caption": "Example caption",
"displayUrl": "https://example.com/image.jpg",
"thumbnailUrl": "https://example.com/thumb.jpg",
"videoUrl": "",
"commentsCount": 128,
"likesCount": 4521,
"videoViewCount": 0,
"takenAtTimestamp": 1710000000,
"ownerUsername": "instagram",
"accessibilityCaption": "",
"displayResources": [
"https://example.com/image-small.jpg",
"https://example.com/image-large.jpg"
]
}

Why it stands out ✨

  • Fast HTTP-based scraping flow
  • Clean flat output that works well in tables, exports, and automations
  • Progressive dataset updates during the run
  • Minimal input that is easy for non-technical users
  • Supports multi-profile scraping in one job
  • Ready for Apify Store usage and integrations

Simple to run 🙌

The actor is designed to stay easy to use in the Apify Store. Users only need to provide profile names and the number of posts to fetch. No extra cookie, proxy group, country, or timeout fields are required in the public input.

Limitations ⚠️

  • Instagram may change or restrict the underlying endpoints at any time
  • Some profiles may be harder to access depending on Instagram restrictions
  • This actor is focused on profile posts, not comments, followers, or DMs
  • Availability of some fields depends on what Instagram returns for a given post

Good fit for ✅

  • Analysts
  • Growth teams
  • Agencies
  • Media monitoring workflows
  • Research and content intelligence pipelines

Not the best fit for ❌

  • Full Instagram account management
  • Messaging automation
  • Deep engagement scraping beyond post-level data

Ready to export and automate 🤖

The output can be used directly in:

  • Apify datasets
  • webhooks
  • Make
  • Zapier
  • Google Sheets workflows
  • internal ETL pipelines

If you need Instagram post data in a structured format with batch-by-batch delivery to the dataset, this actor is built exactly for that.

Proxy setup

If you want to run the actor through a proxy on Apify, set the proxy URL in the actor environment variables.

  • INSTAGRAM_PROXY_URL
  • PROXY_URL

INSTAGRAM_PROXY_URL has priority. If neither variable is set, the actor sends requests directly without a proxy.

Session setup

If Instagram requires login for the endpoint, set the session cookie in the actor environment variables.

  • INSTAGRAM_SESSION_ID
  • SESSION_ID

INSTAGRAM_SESSION_ID has priority. The actor no longer accepts sessionId in the public input.