Instagram Posts Scraper avatar

Instagram Posts Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Instagram Posts Scraper

Instagram Posts Scraper

πŸ“Έ Instagram Posts Scraper collects public captions, hashtags, media URLs, dates, likes & comments from profiles or hashtags. πŸ“Š Ideal for content research, competitor analysis & reporting. πŸš€ Export clean data for analytics, scheduling & UGC discovery.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeEngine

ScrapeEngine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Instagram Posts Scraper

Instagram Posts Scraper is a fast, reliable Instagram post data extractor that collects public feed posts from profile usernames, profile URLs, or post shortcodes at scale. It solves the pain of manual copy-paste by auto-detecting input types and resolving them to the right profile, so you can scrape Instagram posts quickly and consistently. Built for marketers, developers, data analysts, and researchers, this Instagram posts scraping tool preserves native JSON and adds helpful metadata for analytics-ready results β€” enabling large-scale content research, reporting, and automation. πŸš€

What data / output can you get?

This Instagram post scraper tool preserves Instagram’s original JSON structure and adds a few helpful fields for analytics and export. Below are common fields you’ll see in the dataset, with real examples:

Data typeDescriptionExample value
idUnique post identifier with owner suffix"3727992219681477950_173560420"
pkPost primary key"3727992219681477950"
codePost shortcode used in the URL"DO8fSwLiNU-"
post_urlDirect URL to the post (added by actor)"https://www.instagram.com/p/DO8fSwLiNU-/"
taken_atUnix timestamp when the post was published1758631325
like_countTotal number of likes7141379
comment_countTotal number of comments72516
media_typeType of media (e.g., 1=photo, 8=carousel)8
product_typePost product type"carousel_container"
image_versions2.candidates[0].urlA direct media URL (image/video variant)"https://scontent-iad3-1.cdninstagram.com/...n.jpg"
caption.textFull caption text (if available)"Happy Saudi National Day to everyone in Saudi Arabia! πŸ‡ΈπŸ‡¦ ..."
user.usernameOwner’s username"cristiano"
scraped_usernameResolved username for the scrape (added by actor)"cristiano"
scraped_atUnix timestamp when this actor scraped the post (added by actor)1758728197

Notes:

  • Each item includes the complete original post JSON (e.g., carousel_media, user, owner, image versions, accessibility captions, etc.), plus these additions: scraped_username, scraped_at, post_url.
  • Export your dataset to JSON, CSV, or Excel directly from the Apify UI for downstream analysis and reporting.

Key features

  • 🧠 Automatic input detection
    Paste profile URLs, raw usernames, or post shortcodes β€” the scraper validates inputs and extracts the correct profile username before scraping.

  • πŸ›‘οΈ Always-on residential proxy
    Enforces residential proxy for reliability by default, improving stability and reducing blocks on large runs.

  • πŸ” Robust pagination with backoff
    Fetches feed pages with retry logic and exponential backoff, handling rate limits gracefully to maximize successful retrievals.

  • 🧱 Original JSON preserved (+ helpful metadata)
    Keeps Instagram’s native post structure intact and adds scraped_username, scraped_at, and post_url so you can join, filter, and export easily.

  • ↕️ Sort by newest or oldest
    Use sortOrder to return the newest posts first (default) or oldest first after scraping.

  • πŸ“¦ Batch scraping & bulk automation
    Provide multiple profile inputs in one run to scale your Instagram profile posts scraper workflows and bulk download Instagram posts.

  • 🐍 Developer-friendly (Python on Apify)
    A production-ready Instagram scraper Python for posts: run in the Apify cloud, manage via the Apify API, and export clean data for your pipelines.

  • πŸ”§ Proxy fallback strategy
    Implements a fallback flow for proxy types when needed to improve resiliency during scraping.

How to use Instagram Posts Scraper - step by step

  1. πŸ”‘ Log in to Apify
    Sign up or log in to your Apify account.

  2. πŸ” Find the actor
    Open the Instagram Posts Scraper in the Apify Store.

  3. 🧾 Add input data
    In startUrls, provide one or more of the following (as strings):

  4. βš™οΈ Configure settings

    • maxPosts: limit posts per profile (1–1000; default 10)
    • sortOrder: "newest" (default) or "oldest"
    • maxComments: number of comments to extract per post (0–100; default 0)
    • proxyConfiguration: optional UI setting; note the actor always uses residential proxy regardless of selection
  5. ▢️ Run the actor
    Click Start. The actor validates inputs, resolves usernames, retrieves posts page by page, and handles backoff if rate-limited.

  6. πŸ“Š Monitor progress
    Watch logs for each processed input and running status (pages fetched, totals scraped).

  7. πŸ’Ύ Export results
    Open the run’s Dataset and export your results to JSON, CSV, or Excel for BI tools, dashboards, or automation workflows.

Pro tip: Use the Apify API to trigger runs programmatically and integrate this Instagram media scraper into your data stack for analytics, scheduling, or UGC workflows.

Use cases

Use caseDescription
Marketing + competitor feed analysisBenchmark posting cadence and engagement by exporting like_count, comment_count, and timestamps from public profiles.
Content research & captions miningCollect caption.text and media URLs to study messaging, visual patterns, and audience reactions using an Instagram captions scraper approach.
UGC discovery & media sourcingBulk download Instagram posts and surface image_versions2 variants for creative teams and asset managers.
Performance reportingExport Instagram posts to CSV for analytics, time-series dashboards, and campaign summaries.
Developer pipelines (API)Schedule runs via the Apify platform and export structured JSON for ingestion into data lakes or ETL flows.
Academic & social researchBuild datasets of public posts with timestamps and metadata for behavioral or trend analyses.
Brand monitoring of public profilesTrack public profile activity, capture new posts as they appear, and store structured metadata for alerts.

Why choose Instagram Posts Scraper?

Precision, resilience, and scale β€” engineered for production on Apify.

  • βœ… Accurate input handling β€” resolves usernames from profile URLs and shortcodes automatically.
  • βœ… Stable at scale β€” always-on residential proxy plus retry/backoff logic for high-success runs.
  • βœ… Developer-ready β€” clean JSON output and dataset exports for API-driven pipelines.
  • βœ… Ethical by design β€” targets public content only; no credentials required.
  • βœ… Cost-effective β€” start with included trial minutes and scale as you grow.
  • βœ… Better than extensions β€” no flaky browser hacks; production-ready backend execution.

In short, you get a reliable Instagram post metadata scraper that preserves native data structures and delivers consistent results for analytics and automation.

Yes β€” when used responsibly. This actor targets publicly available Instagram content only and does not access private accounts.

Guidelines:

  • Scrape public data from public profiles only.
  • Respect Instagram’s terms of service and platform policies.
  • Comply with applicable data protection laws (e.g., GDPR, CCPA) and internal policies.
  • Do not misuse or resell data in ways that violate rights or terms.
  • For edge cases, consult your legal team to ensure compliant usage.

Input parameters & output format

Example JSON input

{
"startUrls": [
"https://www.instagram.com/cristiano/",
"neymarjr",
"DO8fSwLiNU-"
],
"maxPosts": 10,
"sortOrder": "newest",
"maxComments": 0,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Parameters

NameTypeRequiredDefaultDescription
startUrlsarray of stringsYesβ€”List one or more Instagram profile URLs (e.g., https://www.instagram.com/username), usernames (e.g., username), or post shortcodes (e.g., ABC123DEF). The actor will automatically detect the input type and extract the profile username.
maxPostsintegerNo10Maximum number of posts to scrape per profile (1–1000).
sortOrderstring ("newest" or "oldest")No"newest"Order in which to sort the posts.
maxCommentsintegerNo0Maximum number of comments to extract per post (0–100).
proxyConfigurationobjectNo{"useApifyProxy": false}Note: This actor always uses residential proxy regardless of your selection. You can configure proxy settings here, but residential proxy will be used automatically.

Example JSON output

[
{
"id": "3727992219681477950_173560420",
"pk": "3727992219681477950",
"code": "DO8fSwLiNU-",
"taken_at": 1758631325,
"like_count": 7141379,
"comment_count": 72516,
"media_type": 8,
"product_type": "carousel_container",
"image_versions2": {
"candidates": [
{
"height": 1839,
"width": 1440,
"url": "https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/552825156_18648550693056421_6760424445129157822_n.jpg?stp=dst-jpg_e35_tt6..."
}
]
},
"caption": {
"text": "Happy Saudi National Day to everyone in Saudi Arabia! πŸ‡ΈπŸ‡¦ Wishing you a day filled with pride, unity, and celebration with your loved ones."
},
"user": {
"id": "173560420",
"username": "cristiano",
"full_name": "Cristiano Ronaldo",
"is_verified": true
},
"scraped_username": "cristiano",
"scraped_at": 1758728197,
"post_url": "https://www.instagram.com/p/DO8fSwLiNU-/"
}
]

Notes:

  • The actor pushes each post as a separate JSON record to the dataset.
  • Output fields are sourced from Instagram’s feed API and may include many additional keys (e.g., carousel_media, owner, accessibility captions, and more).
  • Added fields by the actor: scraped_username, scraped_at, post_url.

FAQ

Is there a free trial to test the Instagram Posts Scraper?

Yes. The Apify listing includes 120 trial minutes so you can evaluate the scraper before subscribing. Start a run and export results from the dataset within those trial limits.

Do I need to log in to Instagram or provide cookies?

No. The scraper targets public content and programmatically extracts necessary tokens from public pages to fetch feed data. It does not require your Instagram credentials.

Can I input usernames, profile URLs, or shortcodes?

Yes. You can pass any of these. The actor validates and extracts the correct profile username whether you provide a profile URL, a plain username, or a post shortcode.

Does this support hashtags or location pages?

No. This actor focuses on profile feeds. Provide profile URLs, usernames, or shortcodes that resolve to a profile; it will then scrape that profile’s posts.

How many posts can I scrape per profile?

You control this with maxPosts. Set it between 1 and 1000 (default 10) per profile. The actor paginates and stops when it reaches your limit or when no more posts are available.

What data does it collect about posts?

It preserves Instagram’s original post JSON (e.g., id, code, taken_at, like_count, comment_count, media_type, product_type, caption, image_versions2, user) and adds scraped_username, scraped_at, and post_url.

Does it fetch comment text?

By default, it captures engagement counts (comment_count). The input includes maxComments for comment extraction control, but the dataset focuses on post metadata and counts.

How reliable is it for large runs?

It runs with an always-on residential proxy and includes retry and exponential backoff logic. The code also implements a proxy fallback strategy to improve resilience when encountering rate limits.

Closing CTA / Final thoughts

Instagram Posts Scraper is built to extract structured post data from public Instagram profiles at scale. It auto-detects inputs, preserves Instagram’s native JSON, and adds helpful metadata for clean analytics and automation.

Whether you’re a marketer, developer, data analyst, or researcher, you can bulk download Instagram posts, sort by newest or oldest, and export to JSON/CSV/Excel for BI and reporting. Developers can trigger runs via the Apify platform and wire results into pipelines with ease.

Start extracting smarter, structured Instagram post datasets today β€” and turn public feeds into actionable insights. ✨