Instagram Posts Scraper
Pricing
$19.99/month + usage
Instagram Posts Scraper
๐ธ Instagram Posts Scraper extracts public posts at scale โ captions, hashtags, images, video URLs, likes, comments, timestamps & engagement metrics. ๐ Perfect for social listening, competitor tracking, influencer research & content analysis. Exports CSV/JSON.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapeFlow
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 extractor that lets you scrape Instagram posts from public profiles at scale โ preserving the original Instagram JSON while adding lightweight metadata for analysis. This Instagram posts scraping tool helps marketers, developers, data analysts, and researchers quickly collect feed items without manual browsing, so you can analyze engagement, content, and media at scale. Use it to scrape Instagram posts reliably and export structured results for downstream workflows. ๐
What data / output can you get?
The actor preserves Instagramโs native post structure and adds three helpful fields. Below are representative fields youโll find in each item:
| Data type | Description | Example value |
|---|---|---|
| id | Unique media identifier (composite) | "3727992219681477950_173560420" |
| pk | Primary key for the media | "3727992219681477950" |
| code | Post shortcode used to build canonical URL | "DO8fSwLiNU-" |
| product_type | Post type (e.g., single photo, carousel) | "carousel_container" |
| media_type | Media type code (e.g., 1=photo, 8=carousel) | 8 |
| taken_at | UNIX timestamp when the post was published | 1758631325 |
| like_count | Total likes | 7141379 |
| comment_count | Total comments | 72516 |
| caption.text | Caption text as returned by Instagram | "Happy Saudi National Day to everyone in Saudi Arabia! ..." |
| image_versions2.candidates[].url | Direct media URL(s) for images | "https://scontent.../552825156_...n.jpg" |
| carousel_media_count | Number of items in a carousel | 3 |
| user.username | Post ownerโs username | "cristiano" |
| post_url | Canonical post URL (added by actor) | "https://www.instagram.com/p/DO8fSwLiNU-/" |
| scraped_username | Profile username that was scraped (added by actor) | "cristiano" |
| scraped_at | UNIX timestamp when the item was scraped (added by actor) | 1758728197 |
Notes:
- The full Instagram item structure (e.g., caption, owner, user, image_versions2 variants, carousel_media, engagement counters) is preserved as returned by Instagramโs endpoints.
- You can export results to JSON, CSV, or Excel from the Apify Dataset UI โ perfect for a robust Instagram posts data exporter workflow.
Key features
-
๐ Bold username resolution from flexible inputs
Automatically detects and extracts the profile username from profile URLs, plain usernames, post URLs, or shortcodes using multiple strategies (post page parsing, embed page, GraphQL/web API, alternative headers). -
๐ก๏ธ Always-on residential proxy with smart fallback
The actor always uses residential proxies by default and includes retry logic and proxy fallback routines to keep your jobs stable under rate limiting. -
๐ High-fidelity JSON preservation
Produces a minimal, developer-friendly payload by preserving Instagramโs original item structure, plus three added fields: scraped_username, scraped_at, and post_url. -
๐ Configurable limits & ordering
Control throughput with maxPosts and choose sortOrder ("newest" or "oldest") to shape analysis flows for bulk download Instagram posts use cases. -
โ๏ธ Scalable cloud automation
Run at scale on Apify โ ideal for teams needing the best Instagram posts scraper for repeatable jobs and batch processing. -
๐พ Flexible exports for analytics
Export datasets to JSON, CSV, or Excel, making it easy to integrate into BI dashboards, Python notebooks, or data lakes with your Instagram media scraper for posts workflows. -
๐ฉโ๐ป Developer-ready (Python + API)
Built in Python and accessible via the Apify API for programmatic runs and automation. Great fit for Instagram posts scraper Python pipelines and CI/CD. -
๐ Robust error handling
Retries with exponential backoff and token refresh logic reduce failures from transient errors and rate limits.
How to use Instagram Posts Scraper - step by step
- ๐ Create or log in to your Apify account.
- ๐ Find โInstagram Posts Scraperโ in the Apify Store and open the actor.
- ๐งพ Add input data in the โstartUrlsโ field:
- Accepts profile URLs (e.g., https://www.instagram.com/username/), plain usernames (e.g., username), or post shortcodes (e.g., ABC123DEF).
- โ๏ธ Configure settings:
- maxPosts: limit the number of posts per profile.
- sortOrder: choose "newest" or "oldest".
- proxyConfiguration: optional; residential proxy is used automatically regardless of selection.
- โถ๏ธ Run the actor. The scraper will fetch pages with pagination until it reaches your maxPosts or thereโs no more data.
- โ Monitor logs for progress (rate-limit retries, page counts, and totals are logged).
- ๐พ Download your dataset in JSON, CSV, or Excel from the runโs Dataset tab.
Pro Tip: Trigger runs and fetch datasets programmatically via the Apify API to build an Instagram posts scraper API workflow that pipes results straight into your analytics stack or a Python-based ETL.
Use cases
| Use case name | Description |
|---|---|
| Social listening & trend analysis | Measure engagement and content patterns across public profiles to guide strategy for campaigns and content calendars. |
| Competitor content benchmarking | Track top-performing posts over time to understand creative direction, cadence, and audience response. |
| Influencer research & vetting | Pull engagement metrics and media structures to shortlist and evaluate potential partners based on public data. |
| Content performance reporting | Export structured posts data (likes, comments, timestamps, media URLs) for dashboards and periodic reporting. |
| Data science & NLP on captions | Feed caption.text into NLP pipelines for sentiment, topic modeling, or clustering as an Instagram captions scraper workflow. |
| Academic & market research | Collect longitudinal datasets of public posts to study user behavior, diffusion of content, or cultural trends. |
| Automation & pipelines (API) | Orchestrate runs via API and move data to warehouses or notebooks for scalable Instagram posts scraping software workflows. |
Why choose Instagram Posts Scraper?
This production-ready scraper focuses on precision input handling, resilient networking, and high-fidelity JSON for analytics-ready outputs.
- โ Accurate input detection: Resolves usernames from profile URLs, post URLs, and shortcodes using multiple extraction paths.
- ๐ Residential proxies by default: Built-in residential routing and backoff improve stability over extension-based or manual tools.
- ๐ฆ Scale without friction: Set maxPosts, run in batches, and export cleanly โ ideal for bulk automation.
- ๐จโ๐ป Developer control: Python-based actor with API access for CI/CD and pipeline orchestration.
- ๐ Public-data focus: Targets publicly accessible posts only, aligning with ethical data collection practices.
- ๐ฐ Cost-effective & reliable: Cloud-native infrastructure removes overhead from managing rotating IPs and session retries.
- ๐ Integration-ready: Treat it as your Instagram posts scraper API for instant feeds into analytics and automation tools.
Unlike browser extensions and unstable scripts, this actor runs on robust cloud infrastructure with proxies, retries, and dataset exports built in.
Is it legal / ethical to use Instagram Posts Scraper?
Yes โ when used responsibly. This actor targets publicly available Instagram posts and does not access private profiles or authenticated data.
Guidelines to stay compliant:
- Only scrape publicly accessible content.
- Review and respect Instagramโs terms and applicable laws (e.g., GDPR, CCPA).
- Use the data for analysis and research; avoid misuse or infringement.
- Consult your legal team for edge cases or commercial redistribution scenarios.
Input parameters & output format
Example input
{"startUrls": ["https://www.instagram.com/cristiano/","neymarjr","DO8fSwLiNU-"],"maxPosts": 10,"sortOrder": "newest","maxComments": 0,"proxyConfiguration": {"useApifyProxy": false}}
Input fields (from schema):
-
startUrls (array of string)
Description: 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.
Required: Yes | Default: None -
maxPosts (integer)
Description: Maximum number of posts to scrape per profile (1-1000).
Required: No | Default: 10 -
sortOrder (string; enum: "newest", "oldest")
Description: Order in which to sort the posts.
Required: No | Default: "newest" -
maxComments (integer)
Description: Maximum number of comments to extract per post (0-100).
Required: No | Default: 0 -
proxyConfiguration (object)
Description: 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 (prefill): {"useApifyProxy": false}
Example output
[{"id": "3727992219681477950_173560420","pk": "3727992219681477950","code": "DO8fSwLiNU-","product_type": "carousel_container","media_type": 8,"taken_at": 1758631325,"like_count": 7141379,"comment_count": 72516,"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."},"image_versions2": {"candidates": [{"url": "https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/552825156_18648550693056421_6760424445129157822_n.jpg"}]},"carousel_media_count": 3,"carousel_media": [{"id": "3727992208725918329_173560420","media_type": 1,"image_versions2": {"candidates": [{ "url": "https://scontent-iad3-1.cdninstagram.com/...n.jpg" }]}}],"user": {"id": "173560420","username": "cristiano","full_name": "Cristiano Ronaldo","is_verified": true},"owner": {"id": "173560420","username": "cristiano"},"scraped_username": "cristiano","scraped_at": 1758728197,"post_url": "https://www.instagram.com/p/DO8fSwLiNU-/"}]
Notes:
- The actor pushes each post item individually to the dataset with the original Instagram fields plus scraped_username, scraped_at, and post_url.
- Some nested fields may be null or absent depending on the specific post.
- Export formats: JSON, CSV, and Excel are available directly from the Apify Dataset UI.
FAQ
Is there a free way to try this Instagram posts scraper?
Yes. You can run the actor on Apifyโs free tier within platform limits, making it a practical way to test a free Instagram posts scraper workflow before scaling.
Do I need to log in or provide cookies?
No. The actor works without login by extracting tokens from publicly available pages and using public endpoints. It targets public profiles only.
Can I input usernames, profile URLs, and post shortcodes?
Yes. The startUrls field accepts profile URLs, plain usernames, post URLs, and shortcodes. The actor automatically detects and resolves the profile username.
Does this download images or videos?
It returns media URLs and variants from the Instagram payload. You can treat it like an Instagram media scraper for posts and use the URLs to download files in your own pipeline if needed.
How many posts can I scrape per profile?
Use maxPosts (1โ1000) to control volume. The actor paginates until it reaches your maxPosts or no more data is available, then sorts by your chosen sortOrder.
What data fields are included?
The scraper preserves Instagramโs item structure (e.g., id, pk, code, taken_at, like_count, comment_count, caption, image_versions2, carousel_media, user/owner metadata) and adds scraped_username, scraped_at, and post_url.
Can I integrate this with Python or via API?
Yes. The actor is written in Python and exposes results through the Apify API. Itโs ideal for Instagram posts scraper Python workflows and automated pipelines.
Is it legal to scrape Instagram posts?
Yes, when you scrape public data responsibly and comply with Instagramโs terms and applicable regulations. The actor does not access private profiles or authenticated data.
Closing CTA / Final thoughts
Instagram Posts Scraper is built for accurate, scalable extraction of public Instagram posts in analytics-ready JSON. With resilient proxying, flexible inputs, and clean exports, itโs a dependable choice for social listening, competitor tracking, and research. Marketers, developers, analysts, and researchers can run it on-demand or via the Apify API for end-to-end automation. Start exporting structured post data to CSV/JSON/Excel and power your next insights workflow today.