Instagram Posts Scraper
Pricing
$19.99/month + usage
Instagram Posts Scraper
๐ธ Instagram Posts Scraper scrapes Instagram posts at scale โ captions, hashtags, media URLs, likes, comments, views, location, timestamps & mentions. โ๏ธ Clean, exportable CSV/JSON data for analytics, social listening, competitor research & influencer marketing. ๐
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScraperForge
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Instagram Posts Scraper
The Instagram Posts Scraper is a fast, reliable Apify actor that lets you scrape Instagram posts from public profiles at scale โ no login required. This Instagram scraper solves the pain of manual scrolling by collecting clean, structured post data (IDs, captions, media URLs, engagement, timestamps, and more) you can export for analysis. Designed for marketers, developers, data analysts, and researchers, this Instagram posts scraper tool works as an Instagram profile posts scraper and Instagram post data extractor to power social listening, competitor monitoring, and content intelligence at scale. ๐
What data / output can you get?
Below are real fields produced by the actor. The scraper keeps Instagramโs original item structure and adds three minimal metadata fields for traceability.
| Data type | Description | Example value |
|---|---|---|
| id | Combined post and user identifier | "3727992219681477950_173560420" |
| pk | Post primary key | "3727992219681477950" |
| code | Instagram shortcode for the post | "DO8fSwLiNU-" |
| post_url | Canonical post URL (added by actor) | "https://www.instagram.com/p/DO8fSwLiNU-/" |
| taken_at | Unix timestamp when the post was published | 1758631325 |
| like_count | Number of likes | 7141379 |
| comment_count | Number of comments | 72516 |
| caption.text | Full 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.username | Post ownerโs username | "cristiano" |
| media_type | Media type (e.g., 8 = carousel_container) | 8 |
| product_type | Media product subtype | "carousel_container" |
| original_width | Original media width | 1440 |
| original_height | Original media height | 1839 |
| image_versions2.candidates[].url | Direct media URL(s) | "https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/552825156_..." |
| carousel_media_count | Number of items in carousel | 3 |
| scraped_username | Resolved profile username (added by actor) | "cristiano" |
| scraped_at | Unix timestamp when the post was scraped (added by actor) | 1758728197 |
Notes:
- The actor preserves Instagramโs response shape (e.g., caption, user, image_versions2, carousel_media, and engagement metrics). It only adds scraped_username, scraped_at, and post_url for lineage.
- Export results from the Apify dataset in JSON or CSV for downstream analysis and reporting.
Key features
-
๐ Robust username resolution from any input
Feed it profile URLs, plain usernames, or post shortcodes โ the scraper validates input and extracts the correct username using multiple strategies (post page patterns, embed page, GraphQL/web endpoints, and alternative headers). -
๐งญ Public data, no login
A streamlined Instagram scraping tool without API keys or logins. It targets publicly available Instagram post data for safe, frictionless extraction. -
๐ฆ Structured Instagram post metadata
Works as an Instagram post metadata scraper and Instagram content scraper, capturing fields like code, id, caption, like_count, comment_count, product_type, original dimensions, and media URLs. -
๐ผ๏ธ Media and carousel support
Functions as an Instagram image scraper with image_versions2 candidates and carousel_media items to help you analyze assets and creatives reliably. -
๐งฐ Batch scraping at scale
Add multiple inputs to startUrls to run this bulk Instagram posts scraper across many profiles in one run, with respectful delays and pagination. -
๐ Sorting and limits you control
Choose sortOrder ("newest" or "oldest") and set maxPosts per profile (1โ1000) to tune result volume and ordering for your workflow. -
๐งช Resilient by design
Built-in retries, backoff, and a proxy strategy that always uses residential proxy โ with fallback logic โ to minimize blocks and maximize stability. -
๐ Developer-friendly Python foundation
Implemented as an Apify actor in Python (apify SDK), making it easy to incorporate into data pipelines as an Instagram post scraper Python solution.
How to use Instagram Posts Scraper - step by step
-
๐ Sign in to Apify
Create a free account or log in to your Apify workspace. -
๐ Find the actor
Open the โInstagram Posts Scraperโ actor from your dashboard or the Apify Store. -
๐งพ Add input data
In the startUrls field, paste any mix of Instagram profile URLs (e.g., https://www.instagram.com/username/), plain usernames (e.g., username), or post shortcodes (e.g., ABC123DEF). The scraper will auto-detect and resolve the profile. -
โ๏ธ Configure settings
- maxPosts: Set how many posts to collect per profile (1โ1000).
- sortOrder: Choose "newest" or "oldest".
- maxComments: Optional limit for comments per post (0โ100).
- proxyConfiguration: You can configure a proxy block, but the actor always enforces a residential proxy internally for reliability.
-
โถ๏ธ Run the actor
Click Start. The job will resolve usernames, fetch tokens, paginate posts, and push items to the runโs dataset. -
๐ฅ Download results
When finished, open the Dataset tab and export your results in JSON or CSV for analysis, dashboards, or BI tools.
Pro tip: You can paste an Instagram post shortcode directly โ the actor will resolve the ownerโs username automatically and then scrape posts from that profile.
Use cases
| Use case name | Description |
|---|---|
| Marketing + competitor post tracking | Benchmark competitors by extracting post cadence, captions, and engagement to power content strategy and reporting. |
| Social analytics + content research | Scrape Instagram posts to study formats, carousel use, and message themes that correlate with higher like_count and comment_count. |
| Influencer vetting | Pull recent profile posts and engagement signals to assess authenticity and brand fit before outreach. |
| Brand monitoring (public profiles) | Monitor official brand profilesโ Instagram feed for campaign launches and messaging shifts in near real time. |
| Creative asset analysis | Use media URLs and original dimensions from image_versions2 to analyze creative specs and build asset libraries. |
| Data engineering pipeline | Ingest structured JSON from Apify datasets into warehouses for modeling, dashboards, and enrichment. |
| Academic & trend research | Extract public Instagram post data for longitudinal studies of content dynamics, narratives, and attention patterns. |
Why choose Instagram Posts Scraper?
This Instagram public posts scraper is built for precision, resiliency, and clean output โ ideal for production data pipelines.
- โ Always-on residential proxy with fallback for high reliability and fewer blocks
- โ Accurate username extraction from profile URLs, usernames, and post shortcodes
- โ Scalable batch runs with pagination, retry logic, and backoff
- โ Clean, structured JSON output with minimal, helpful additions (scraped_username, scraped_at, post_url)
- โ Developer-friendly Python implementation and Apify Actor workflow
- โ No login required for public data, reducing operational risk
- โ Cost-efficient way to scrape Instagram posts at scale with exportable datasets
Compared to browser extensions or unstable scripts, this production-ready Instagram feed scraper emphasizes durability, structure, and control.
Is it legal / ethical to use Instagram Posts Scraper?
Yes โ when used responsibly. This actor targets publicly available Instagram content from public profiles only and does not access private accounts or authenticated data.
Guidelines:
- Scrape public data only; do not attempt to access private or gated content.
- Review and respect Instagramโs terms of service and platform policies.
- Ensure your use complies with relevant laws (e.g., GDPR, CCPA) and your organizationโs policies.
- Use scraped data ethically โ for analysis and research, not misuse or spam.
When in doubt, consult your legal team for edge cases and region-specific requirements.
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:
- startUrls (array of strings) โ List one or more Instagram profile URLs (e.g., https://www.instagram.com/username), usernames (e.g., username), or post shortcodes (e.g., ABC123DEF). Required: Yes. Default: none.
- maxPosts (integer) โ Maximum number of posts to scrape per profile (1โ1000). Required: No. Default: 10.
- sortOrder (string) โ Order in which to sort the posts. Allowed: "newest", "oldest". Required: No. Default: "newest".
- maxComments (integer) โ Maximum number of comments to extract per post (0โ100). Required: No. Default: 0.
- proxyConfiguration (object) โ Note: This actor always uses residential proxy regardless of your selection. You can configure proxy settings here, but residential proxy will be used automatically. Required: No. Default: none.
Example JSON output
[{"pk": "3727992219681477950","id": "3727992219681477950_173560420","code": "DO8fSwLiNU-","taken_at": 1758631325,"like_count": 7141379,"comment_count": 72516,"media_type": 8,"product_type": "carousel_container","original_width": 1440,"original_height": 1839,"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": {"username": "cristiano","full_name": "Cristiano Ronaldo","id": "173560420","is_private": false,"is_verified": true},"image_versions2": {"candidates": [{"url": "https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/552825156_18648550693056421_6760424445129157822_n.jpg?stp=dst-jpg_e35_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0uaW1hZ2VfdXJsZ2VuLjE0NDB4MTgzOS5zZHIuZjgyNzg3LmRlZmF1bHRfaW1hZ2UuYzIifQ&_nc_ht=scontent-iad3-1.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2QFvPs4_7bJA1wNH6A8Y2tjrpHqNFqgNbxmJsCfqXon_Lo966YDIWGrQEhVtCi4HnaE&_nc_ohc=vp-5n-VyKUEQ7kNvwEz3Ay7&_nc_gid=DdTMO_kwa7DY7-2K9i8CPA&edm=ACWDqb8BAAAA&ccb=7-5&ig_cache_key=MzcyNzk5MjIwODcyNTkxODMyOQ%3D%3D.3-ccb7-5&oh=00_Afas91ktiY2-as8Q8bCHnetzJMlyIguEbzsg6OQ1hlmu-A&oe=68D9D1B5&_nc_sid=ee9879","width": 1440,"height": 1839}]},"carousel_media_count": 3,"scraped_username": "cristiano","scraped_at": 1758728197,"post_url": "https://www.instagram.com/p/DO8fSwLiNU-/"}]
Notes:
- Output objects mirror Instagramโs โitemsโ structure and include the additional fields scraped_username, scraped_at, and post_url.
- Some nested fields (e.g., carousel_media, usertags) may be absent depending on the post type.
FAQ
Do I need to log in to scrape Instagram posts?
No. This Instagram public posts scraper targets publicly available data and does not require login or cookies. It fetches public profile posts using tokens extracted from public pages.
Can I input post shortcodes instead of profile URLs?
Yes. You can paste a post shortcode, and the scraper will resolve the owning username using multiple methods before scraping posts from that profile.
How many posts can I scrape per profile?
You control this via maxPosts. The supported range is 1 to 1000 per profile. The scraper paginates through the Instagram feed until the limit is reached or no more posts are available.
Does it extract comments content?
It records comment_count for each post when available. The current workflow focuses on post-level data and metadata; it does not output full comment threads.
What fields are included in the output?
Youโll receive core post metadata like id, pk, code, taken_at, like_count, comment_count, product_type, media_type, dimensions and media URLs (image_versions2), plus nested objects such as caption and user where present. The actor adds scraped_username, scraped_at, and post_url for traceability.
Does it work in bulk across multiple profiles?
Yes. Provide a list of profile URLs, usernames, or shortcodes in startUrls to run this bulk Instagram posts scraper across many profiles in one run.
What about proxies and blocking?
The actor always uses a residential proxy (enforced internally) and includes retries, backoff, and fallback logic to reduce rate limits and improve stability.
Is this an Instagram scraping tool without API keys?
Yes. It does not require official API keys. The scraper extracts public data and necessary tokens from public pages to collect Instagram feed data programmatically.
Closing CTA / Final thoughts
Instagram Posts Scraper is built to reliably extract structured, public Instagram post data at scale. With robust username resolution, residential proxies, and clean JSON/CSV output, it equips marketers, analysts, developers, and researchers to analyze content, monitor competitors, and power BI pipelines.
Add your profile URLs, usernames, or shortcodes, set maxPosts and sortOrder, and export results in minutes. Developers can leverage the Python-based actor design for automation and integration into data workflows. Start scraping smarter, more reliable Instagram datasets today.