Instagram Posts Scraper
Pricing
$19.99/month + usage
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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 type | Description | Example value |
|---|---|---|
| id | Unique post identifier with owner suffix | "3727992219681477950_173560420" |
| pk | Post primary key | "3727992219681477950" |
| code | Post shortcode used in the URL | "DO8fSwLiNU-" |
| post_url | Direct URL to the post (added by actor) | "https://www.instagram.com/p/DO8fSwLiNU-/" |
| taken_at | Unix timestamp when the post was published | 1758631325 |
| like_count | Total number of likes | 7141379 |
| comment_count | Total number of comments | 72516 |
| media_type | Type of media (e.g., 1=photo, 8=carousel) | 8 |
| product_type | Post product type | "carousel_container" |
| image_versions2.candidates[0].url | A direct media URL (image/video variant) | "https://scontent-iad3-1.cdninstagram.com/...n.jpg" |
| caption.text | Full caption text (if available) | "Happy Saudi National Day to everyone in Saudi Arabia! πΈπ¦ ..." |
| user.username | Ownerβs username | "cristiano" |
| scraped_username | Resolved username for the scrape (added by actor) | "cristiano" |
| scraped_at | Unix 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
-
π Log in to Apify
Sign up or log in to your Apify account. -
π Find the actor
Open the Instagram Posts Scraper in the Apify Store. -
π§Ύ Add input data
In startUrls, provide one or more of the following (as strings):- Profile URL: https://www.instagram.com/username/
- Username: username
- Post shortcode: ABC123DEF (the actor will resolve it to the profile)
-
βοΈ 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
-
βΆοΈ Run the actor
Click Start. The actor validates inputs, resolves usernames, retrieves posts page by page, and handles backoff if rate-limited. -
π Monitor progress
Watch logs for each processed input and running status (pages fetched, totals scraped). -
πΎ 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 case | Description |
|---|---|
| Marketing + competitor feed analysis | Benchmark posting cadence and engagement by exporting like_count, comment_count, and timestamps from public profiles. |
| Content research & captions mining | Collect caption.text and media URLs to study messaging, visual patterns, and audience reactions using an Instagram captions scraper approach. |
| UGC discovery & media sourcing | Bulk download Instagram posts and surface image_versions2 variants for creative teams and asset managers. |
| Performance reporting | Export 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 research | Build datasets of public posts with timestamps and metadata for behavioral or trend analyses. |
| Brand monitoring of public profiles | Track 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.
Is it legal / ethical to use Instagram Posts Scraper?
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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| startUrls | array of strings | Yes | β | 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. |
| maxPosts | integer | No | 10 | Maximum number of posts to scrape per profile (1β1000). |
| sortOrder | string ("newest" or "oldest") | No | "newest" | Order in which to sort the posts. |
| maxComments | integer | No | 0 | Maximum number of comments to extract per post (0β100). |
| proxyConfiguration | object | No | {"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. β¨