Instagram Posts Scraper
Pricing
$19.99/month + usage
Instagram Posts Scraper
๐ธ Instagram Posts Scraper pulls public Instagram posts at scale โ captions, hashtags, likes, comments, dates, media URLs & metadata from profiles, hashtags & locations. ๐ Perfect for marketing, competitor analysis & content planning. ๐ Fast, reliable & API-ready. ๐ Export CSV/JSON.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScraperX
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 an Apify actor that collects recent posts from public Instagram profiles using usernames, profile URLs, or post shortcodes โ a fast, reliable Instagram post scraper for marketers, developers, data analysts, and researchers. It replaces manual scrolling and copy-paste with automated Instagram post data extraction, returning structured JSON objects with captions, media, and engagement metrics you can export to CSV/JSON for analytics. As an Instagram scraper tool and Instagram API alternative for scraping, it helps teams scrape Instagram posts at scale for content analysis, competitor tracking, and reporting workflows.
What data / output can you get?
Below are real fields the actor stores to the Apify dataset for each post (original Instagram fields with minimal added metadata):
| Data type | Description | Example value |
|---|---|---|
| id | Post identifier including owner ID | "3727992219681477950_173560420" |
| code | Shortcode used in the post URL | "DO8fSwLiNU-" |
| taken_at | Unix timestamp when the post was created | 1758631325 |
| like_count | Number of likes | 7141379 |
| comment_count | Number of comments | 72516 |
| media_type | Media type (e.g., image, video, carousel) | 8 |
| caption.text | Full caption text | "Happy Saudi National Day to everyone in Saudi Arabia! ๐ธ๐ฆ ..." |
| user.username | Ownerโs username | "cristiano" |
| image_versions2.candidates[].url | Direct image URL(s) in multiple sizes | "https://scontent-iad3-1.cdninstagram.com/v/t51.2885..." |
| product_type | Post product type | "carousel_container" |
| post_url | Constructed post URL for convenience | "https://www.instagram.com/p/DO8fSwLiNU-/" |
| scraped_username | Username resolved from your input | "cristiano" |
| scraped_at | Unix timestamp when the scraper collected the post | 1758728197 |
Notes:
- Data is exported via the Apify dataset in standard formats such as JSON, CSV, or Excel, ideal if you want to export Instagram posts to CSV or download Instagram posts in bulk.
- The actor preserves Instagramโs original JSON structure and adds only three fields for convenience: scraped_username, scraped_at, and post_url.
Key features
-
๐ Robust input handling (URLs, usernames, shortcodes)
Resolves usernames from profile URLs, raw usernames, post URLs, and shortcodes via a multi-method strategy (page parsing, embed endpoint, and web API fallbacks). Perfect for Instagram profile posts scraper workflows. -
๐ก๏ธ Residential proxy โ always on
Automatically uses Apify residential proxies regardless of your proxy selection to improve stability and reduce blocking for IG posts scraper runs. -
๐ Pagination with retry & backoff
Fetches posts page by page with intelligent retry logic, exponential backoff on 429s, and graceful fallbacks to keep runs stable. -
๐๏ธ Sort control and post limits
Configure maxPosts per profile and choose sortOrder ("newest" or "oldest") to tailor datasets for your analysis. -
๐ก Minimal, developer-friendly schema
Outputs original Instagram post objects, adding only scraped_username, scraped_at, and post_url โ ideal for BI pipelines and Instagram content scraper use cases. -
โ๏ธ Async performance
Built with aiohttp and asyncio for efficient HTTP requests and fast response handling, enabling you to scrape Instagram posts at scale. -
๐งฉ Apify-native workflow
Results go directly into an Apify dataset for easy API access and automation โ a practical Instagram post extractor for analytics stacks. -
๐งฑ Production-ready resilience
Authentication token extraction, request header management, and proxy fallbacks keep extractions reliable over time.
How to use Instagram Posts Scraper - step by step
-
๐ Sign in to Apify
Log in to your Apify account (you can start on a free tier to test). -
๐งญ Open the actor
Find โInstagram Posts Scraperโ in the Apify Store and click Try for free or Run. -
๐ Add input data
In the input, provide startUrls as a list of:- Profile URLs, e.g. https://www.instagram.com/cristiano/
- Usernames, e.g. cristiano
- Post shortcodes, e.g. DO8fSwLiNU-
-
โ๏ธ Configure settings
- maxPosts controls how many posts to collect per profile.
- sortOrder can be "newest" or "oldest".
- maxComments is available in the input schema but comment bodies are not extracted; the actor returns comment_count from Instagramโs metadata.
-
๐ก๏ธ Proxy behavior
The actor always uses residential proxy regardless of your selection to improve reliability. -
โถ๏ธ Run the actor
Click Start. The actor resolves the username, fetches authentication tokens, and begins scraping posts with pagination and retry logic. -
๐พ Download results
When the run finishes, open the Dataset tab to export your data as JSON, CSV, or Excel for analysis or ingestion.
Pro tip: Connect your dataset via the Apify API to automate reporting, dashboards, or enrichment โ a streamlined Instagram data scraper workflow for recurring analytics.
Use cases
| Use case name | Description |
|---|---|
| Digital marketing โ competitor post analysis | Track public competitor profiles to measure publishing cadence, engagement (like_count, comment_count), and content formats using an Instagram post scraper. |
| Brand monitoring โ owned profile tracking | Aggregate your brandโs public posts for reporting, QA, and historical archives with a stable IG posts scraper. |
| Content analytics โ caption text mining | Export caption.text at scale to run NLP, keyword extraction, and sentiment analysis for campaign insights with an Instagram captions scraper. |
| Influencer research โ profile vetting | Pull recent posts from public creator profiles to evaluate audience engagement and media types before collaborations. |
| Data science โ engagement modeling | Feed like_count, comment_count, and timestamps into forecasting or clustering models to study content performance drivers. |
| Academic research โ social content studies | Collect structured, time-stamped post metadata from public profiles to study trends and content diffusion patterns. |
| BI pipeline โ automated ingestion | Use the Apify dataset and API to pipe post objects into warehouses for dashboards and monitoring โ an Instagram content scraper ready for ETL. |
Why choose Instagram Posts Scraper?
Precision, automation, and reliability โ designed to extract structured post data from public Instagram profiles at scale.
-
๐ฏ Accurate username resolution
Detects and resolves usernames from profile URLs, post URLs, raw usernames, or shortcodes with multiple fallback methods. -
๐ก๏ธ Stable by design
Enforces residential proxy usage and includes retry/backoff to minimize rate-limit issues and maximize successful fetches. -
โก Scalable pagination
Pulls posts page by page with configurable limits (maxPosts) and sort control for consistent datasets. -
๐ป Developer-friendly output
Keeps the original Instagram JSON structure and adds only scraped_username, scraped_at, and post_url for straightforward downstream use. -
๐ Workflow-ready on Apify
Export to JSON/CSV/Excel and integrate via the Apify API โ a dependable Instagram API alternative for scraping public content. -
๐ No login required
Works with publicly available Instagram content only; no cookies or account authentication needed.
In short, this Instagram post extractor avoids brittle browser extensions and delivers clean, consistent data for production workflows.
Is it legal / ethical to use Instagram Posts Scraper?
Yes โ when used responsibly. This actor is designed to extract data from publicly accessible Instagram content only and does not log in or access private profiles.
Guidelines:
- Scrape public data only; do not target private or restricted content.
- Review and comply with Instagramโs terms and any applicable platform policies.
- Ensure your use complies with data protection laws (e.g., GDPR, CCPA) and organizational policies.
- Do not misuse or resell data in ways that violate rights or terms.
- Consult your legal team for edge cases and jurisdiction-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}}
Parameter reference
-
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.
- Default: none
- Required: Yes
-
maxPosts (integer)
- Description: Maximum number of posts to scrape per profile (1-1000).
- Default: 10
- Required: No
-
sortOrder (string; enum: "newest", "oldest")
- Description: Order in which to sort the posts.
- Default: "newest"
- Required: No
-
maxComments (integer)
- Description: Maximum number of comments to extract per post (0-100).
- Default: 0
- Required: No
- Note: The actor outputs comment_count from Instagram metadata but does not fetch comment bodies.
-
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.
- Default: { "useApifyProxy": false }
- Required: No
Example JSON output (single post object in an array)
[{"id": "3727992219681477950_173560420","code": "DO8fSwLiNU-","taken_at": 1758631325,"like_count": 7141379,"comment_count": 72516,"media_type": 8,"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_private": false,"is_verified": true},"image_versions2": {"candidates": [{"height": 1839,"width": 1440,"url": "https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/552825156_18648550693056421_6760424445129157822_n.jpg"}]},"product_type": "carousel_container","scraped_username": "cristiano","scraped_at": 1758728197,"post_url": "https://www.instagram.com/p/DO8fSwLiNU-/"}]
Notes:
- The dataset contains one item per post. Fields mirror Instagramโs own JSON structure; availability may vary by post.
- The actor adds scraped_username, scraped_at, and post_url for convenience.
FAQ
Do I need to log in to use this Instagram Posts Scraper?
No. The actor works with publicly available Instagram content and does not require login or cookies. Itโs suitable for workflows that need an Instagram scraper tool without the official API.
Can I input usernames, profile URLs, or post shortcodes?
Yes. Provide any mix of profile URLs, raw usernames, or post shortcodes in startUrls. The actor automatically detects the input type and resolves the profile username.
What fields are included in the output?
The actor outputs Instagramโs original post objects (e.g., id, code, taken_at, like_count, comment_count, media_type, caption, user, image_versions2, product_type) and adds scraped_username, scraped_at, and post_url.
How do I control how many posts are scraped?
Use maxPosts to set the number of posts to collect per profile (1โ1000). You can also set sortOrder to "newest" or "oldest" to control the order of items in the dataset.
Does this Instagram comments and likes scraper collect comment text?
It returns comment_count from Instagram metadata but does not fetch comment bodies at this time, even though maxComments exists in the input schema.
What proxies does the scraper use?
The actor always uses residential proxies regardless of your proxy selection, improving reliability and reducing blocking during runs.
Can I integrate results with Python or APIs?
Yes. Results are stored in an Apify dataset, which you can access via the Apify API from any language (including Python). This makes it easy to build an Instagram post extractor pipeline for analytics or enrichment.
Is scraping Instagram posts legal?
Yes, when done responsibly. Scrape only public profiles, respect Instagramโs terms, and ensure your use complies with applicable laws and policies. Consult your legal team for specific compliance requirements.
Closing CTA / Final thoughts
Instagram Posts Scraper is built to extract structured post data from public Instagram profiles at scale. With robust username detection, enforced residential proxies, pagination, and developer-friendly output, it delivers clean datasets for analytics, marketing, and research. Whether youโre a marketer, developer, data analyst, or researcher, you can export JSON/CSV/Excel and automate pipelines via the Apify API to power reporting and insight workflows. Start extracting smarter Instagram post datasets โ reliably, at scale, and without the official API.
What are other Instagram scraping tools?
If you want to scrape specific Instagram data, you can use any of the dedicated scrapers below for faster and more targeted results.