Instagram Posts Scraper
Pricing
$19.99/month + usage
Instagram Posts Scraper
๐ธ Instagram Posts Scraper extracts captions, hashtags, likes, comments, media URLs & timestamps from public posts at scale. ๐ Perfect for analytics, social listening, competitor research & influencer marketing. ๐ Clean JSON/CSV output for fast insights & growth.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapeBase
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Instagram Posts Scraper
Instagram Posts Scraper is a fast, reliable Instagram post data extractor that collects public profile posts at scale โ including captions, media URLs, engagement metrics, and timestamps โ in clean, structured JSON. Built for marketers, developers, data analysts, and researchers, this Instagram profile posts scraper helps you analyze content performance, benchmark competitors, and power automation pipelines without manual copyโpaste. With automatic username detection, robust pagination, and production-ready proxies, it enables scalable data collection across many profiles for growth and insights. ๐
What data / output can you get?
Below are real output fields this Instagram posts scraping tool returns (from the dataset). Example values are taken from an actual run:
| Data type | Description | Example value |
|---|---|---|
| id | Composite post identifier | "3727992219681477950_173560420" |
| pk | Post primary key | "3727992219681477950" |
| code | Post shortcode used in URLs | "DO8fSwLiNU-" |
| taken_at | Post publish timestamp (epoch) | 1758631325 |
| like_count | Number of likes | 7141379 |
| comment_count | Number of comments | 72516 |
| media_type | Media type (e.g., 1=photo, 8=carousel) | 8 |
| product_type | Post product type | "carousel_container" |
| 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." |
| image_versions2.candidates[0].url | Direct media URL (one of many sizes) | "https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/552825156_18648550693056421_6760424445129157822_n.jpg?..." |
| user.username | Owner username | "cristiano" |
| carousel_media_count | Number of items in a carousel | 3 |
| scraped_username | Username the actor scraped | "cristiano" |
| scraped_at | Scrape timestamp (epoch) | 1758728197 |
| post_url | Canonical post URL | "https://www.instagram.com/p/DO8fSwLiNU-/" |
Notes:
- Output preserves Instagramโs native structure (e.g., image_versions2, carousel_media, caption, user) and adds minimal metadata: scraped_username, scraped_at, post_url.
- Export your dataset in JSON, CSV, or Excel directly from Apify for downstream analytics and reporting.
Key features
-
๐ Automatic input detection
Provide profile URLs, plain usernames, or post shortcodes โ the actor validates and extracts the correct profile to scrape. -
๐งญ Reliable pagination with retry logic
Robust request retries, backoff, and pagination keep your runs stable even when rate limits occur. -
๐งฑ Original Instagram structure + minimal enrichments
Keeps Instagramโs post JSON intact while adding scraped_username, scraped_at, and post_url for easier joins and auditability. -
๐ก๏ธ Always-on residential proxy
The scraper automatically uses a residential proxy for stability and success; no proxy setup required on your end. -
โก Scalable batch runs
Queue multiple profiles/usernames at once to bulk download Instagram posts for research, benchmarking, and analysis. -
๐งโ๐ป Developer-friendly (Apify datasets & API)
Query datasets via the Apify API and plug results into pipelines โ perfect for an Instagram posts scraper API workflow in Python or any stack. -
๐ Sorted output control
Choose sortOrder (newest or oldest) and limit by maxPosts for predictable, consistent exports. -
๐งฐ Production-ready infrastructure
Built on Apify with retrying, proxy fallback strategies, and clean output โ ideal for teams needing the best Instagram posts scraper for automation.
How to use Instagram Posts Scraper - step by step
-
๐ Sign in to Apify
Create a free Apify account or log in. -
๐ Find the actor
Search for โInstagram Posts Scraperโ in the Apify Store and open the actor. -
๐งพ Add input data
In the โInputโ tab, paste Instagram profile URLs (e.g., https://www.instagram.com/username/), usernames (e.g., username), or post shortcodes. -
โ๏ธ Configure options
- maxPosts: Limit how many posts to collect per profile.
- sortOrder: Choose "newest" or "oldest".
- proxyConfiguration: Optional in UI; the actor will use a residential proxy automatically.
-
โถ๏ธ Run the actor
Click Start. The scraper will detect usernames, fetch tokens, handle pagination, and collect structured post data. -
โณ Monitor progress
Watch logs for real-time status (pages scraped, rate-limit handling, and totals). -
๐พ Download your data
Go to the Dataset tab to export results in JSON, CSV, or Excel for analytics, BI tools, or warehousing.
Pro tip: Orchestrate scheduled runs and consume the dataset through the Apify API to build an Instagram feed scraper pipeline that updates your dashboards or ML models automatically.
Use cases
| Use case name | Description |
|---|---|
| Digital marketing โ competitor post tracking | Benchmark posting cadence, formats, and engagement by extracting public posts from competitor profiles and measuring like_count and comment_count. |
| Social listening โ content themes | Analyze captions and media from public profiles to identify themes that resonate and drive growth with an Instagram photo and caption scraper workflow. |
| Influencer & creator research | Evaluate creatorsโ recent posts and engagement before campaigns, using an Instagram profile posts scraper to audit performance at scale. |
| Analytics & BI enrichment | Pipe structured post metadata into dashboards to track performance over time using an Instagram post metadata scraper approach. |
| Editorial & content research | Compile visual references and captions for trend reporting by exporting media URLs and captions from public feeds. |
| Academic & research studies | Study public user behavior and posting patterns by collecting time series data (taken_at) for longitudinal analysis. |
| Developer pipelines (API) | Integrate datasets into Python/ETL jobs to automate bulk download Instagram posts and run downstream processing. |
Why choose Instagram Posts Scraper?
Built for precision, automation, and reliability, this Instagram posts scraping tool outperforms unstable, extension-based alternatives.
- โ Accurate, structured data: Keeps Instagramโs native JSON fields for easy parsing and joins.
- ๐ Public data only: No login required; designed for public profiles and responsible use.
- ๐ Scales with your needs: Batch scrape many profiles with stable pagination and retries.
- ๐ Developer access: Fetch datasets via the Apify API โ ideal for an Instagram posts scraper API or Python workflows.
- ๐ก๏ธ Safe & robust: Always-on residential proxy and fallback strategies reduce blocks and rate-limit issues.
- ๐ฐ Cost-effective: Test on the free tier, then scale as your volume grows.
- ๐ Integration-ready: Export to JSON/CSV/Excel and connect to your BI or automation stack.
In short, itโs a production-grade Instagram post scraper tool for teams that value clean structure, stability, and automation.
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 accounts or require authentication.
Guidelines for compliant use:
- Scrape only public content and respect platform terms.
- Use data for analysis, research, or monitoring โ not misuse or spam.
- Ensure adherence to applicable laws and regulations (e.g., GDPR, CCPA) and consult your legal team for edge cases.
- Avoid collecting or republishing sensitive or personal information.
Input parameters & output format
Example JSON input
{"startUrls": ["https://www.instagram.com/cristiano/","neymarjr"],"maxPosts": 10,"sortOrder": "newest","maxComments": 0,"proxyConfiguration": { "useApifyProxy": false }}
Parameters
-
startUrls (array of strings, required)
Description: Instagram profile URLs (e.g., https://www.instagram.com/username), usernames (e.g., username), or post shortcodes (e.g., ABC123DEF). Automatically detects type and extracts the profile username.
Default: none (required). -
maxPosts (integer, optional)
Description: Maximum number of posts to scrape per profile (1โ1000).
Default: 10. -
sortOrder (string, optional)
Description: Order in which to sort the posts. One of ["newest", "oldest"].
Default: "newest". -
maxComments (integer, optional)
Description: Maximum number of comments to extract per post (0โ100).
Default: 0. -
proxyConfiguration (object, optional)
Description: You can configure proxy settings here, but this actor always uses a residential proxy automatically regardless of your selection.
Default prefill: { "useApifyProxy": false }.
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","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?..."}]},"user": {"username": "cristiano"},"carousel_media_count": 3,"scraped_username": "cristiano","scraped_at": 1758728197,"post_url": "https://www.instagram.com/p/DO8fSwLiNU-/"}]
Notes:
- The actor preserves Instagramโs original response fields and adds: scraped_username, scraped_at, post_url.
- Some fields may be absent on certain posts (e.g., carousel_media on single-image posts), depending on the source data.
FAQ
Is there a free Instagram posts scraper option?
Yes. You can start on Apifyโs free tier to test this Instagram posts scraper tool with limited runs and exports before scaling up.
Do I need to log in to scrape Instagram posts?
No. This Instagram post data extractor targets publicly available profiles and does not require login or cookies. It fetches public post data and metadata.
Can I scrape Instagram posts by hashtag or location?
This actor focuses on profiles, usernames, and post shortcodes. It does not accept hashtag or location inputs โ use profile-based inputs to scrape Instagram user posts reliably.
Does it download photos and videos or just links?
It returns media URLs (e.g., image_versions2 candidates) so you can download assets downstream if needed. The actor itself stores structured links and metadata in the dataset.
Can I integrate the results via API or Python?
Yes. Results are stored in an Apify dataset you can access via the Apify API, making it easy to build an Instagram posts scraper API workflow or connect to Python ETL pipelines.
How many posts can I scrape per run?
You control this with maxPosts (1โ1000). The actor handles pagination with retries and proxy fallbacks to improve stability at scale.
Does it extract comments?
The output includes comment_count for each post. Comment text is not fetched in this actorโs current implementation.
How does it handle blocks or rate limits?
The actor always uses a residential proxy and implements retry/backoff logic. It also includes proxy fallback strategies to maximize success rates on consecutive pages.
Closing CTA / Final thoughts
Instagram Posts Scraper is built for scalable, structured extraction of public Instagram profile posts. It delivers clean JSON with original Instagram fields, post URLs, and helpful metadata โ ideal for marketers, analysts, researchers, and developers.
Start tracking competitors, enriching BI dashboards, and automating workflows with a reliable Instagram feed scraper. Developers can plug into the Apify dataset API for streamlined pipelines and bulk automation. Begin extracting smarter Instagram insights today and turn public content into actionable data. โจ