Instagram Profile Post Scraper
Pricing
$19.99/month + usage
Instagram Profile Post Scraper
๐ธ Instagram Profile Post Scraper pulls post data from public profiles: captions, hashtags, dates, media URLs, likes & comments counts, engagement rates. ๐ Export to CSV/JSON. ๐ Perfect for influencer vetting, competitor insights & content strategy. ๐
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScraperForge
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Instagram Profile Post Scraper
The Instagram Profile Post Scraper is a purpose-built tool that lets you scrape Instagram user posts from public profiles at scale โ including images, videos, carousels, captions, hashtags, and engagement metrics โ without the official API. It solves the pain of manual collection by turning any IG profile timeline into clean, structured datasets you can export to CSV/JSON/Excel or stream via API. Built for marketers, developers, data analysts, and researchers, this Instagram profile posts scraper helps you benchmark competitors, vet influencers, and fuel content strategy with real performance data. At scale, this Instagram post extractor enables automated monitoring, reporting, and analytics pipelines across dozens or thousands of profiles. ๐
What data / output can you get?
Below are real field names produced by the actor when it saves results to the dataset. Example values illustrate typical outputs from scraping public posts (including Reels/clips and carousels).
| Data field | Description | Example value |
|---|---|---|
| id | Unique post identifier (may include user pk) | "3776048697886076245_2535829435" |
| pk | Media primary key (API path) | "3776048697886076245" |
| shortcode | Instagram shortcode for the post | "DRnOEjME21V" |
| url | Canonical post URL | "https://www.instagram.com/p/DRnOEjME21V/" |
| type | Resolved media type | "Video" |
| is_pinned | Whether the item is pinned on profile | false |
| taken_at_timestamp | Unix timestamp when posted | 1764360143 |
| posted | Human-readable posted time | "29 Nov 2025, 07:02:23 am" |
| caption | Full caption text | "Ronaldo vs My Goalie Robot... #sponsored" |
| hashtags | Array of hashtags parsed from caption | ["sponsored"] |
| mentions | Array of @mentions parsed from caption | ["tmobile", "cristiano"] |
| likes_count | Number of likes | 996806 |
| comments_count | Number of comments | 5024 |
| views_count | Video play count (videos only) | 12003001 |
| image_links | List of image URLs (single or carousel) | ["https://.../n.jpg"] |
| video_links | List of video URLs (videos only) | ["https://.../n.mp4"] |
| dimensions | Original media dimensions | {"width": 1080, "height": 1350} |
| owner.username | Post ownerโs username | "cristiano" |
| latest_comments | Snapshot of recent comments (when available) | [{"id":"111","text":"Great!"...}] |
Bonus outputs include: product_type (e.g., "clips" for Reels), carousel_media and carousel_media_count, user and owner objects (with profile metadata), clips_metadata for Reels, usertags, coauthor_producers, and multiple thumbnail/image aliases (display_url, thumbnail, image). You can export Instagram profile posts to CSV, JSON, or Excel directly from the Apify dataset.
Key features
- ๐ Robust profile parsing & post extraction โ Converts Instagram timelines into structured post records with captions, hashtags, mentions, media URLs, and engagement stats. Handles images, videos, and carousels; captures Reels via product_type "clips".
- ๐ Pinned post controls โ Control how pinned posts are handled using pinnedMode with include, skip, or only to suit your workflow.
- โฑ๏ธ Freshness filter โ Use recent to scrape Instagram posts by username only within an absolute date (YYYY-MM-DD) or a relative window like "2 weeks" or "1 month".
- ๐ Engagement & media coverage โ Collect like and comment counts, and for videos, views_count/view_count and video_versions with direct media URLs. Great for an Instagram media scraper for profiles.
- ๐ฌ Comment snapshots โ Returns embedded preview comments when available and provides latest_comments for quick sentiment cues.
- ๐งฐ Developer-friendly โ Stream results to your stack via the Apify API or SDKs (Node.js & Python). Ideal for โInstagram profile post scraper Pythonโ workflows and automated pipelines.
- ๐พ Flexible exports โ Export results to CSV/JSON/Excel from the Apify dataset, or pipe them downstream for analytics and reporting.
- ๐ก๏ธ Proxy-ready for reliability โ Built with proxy support; residential proxies are recommended for consistent, large-scale runs.
How to use Instagram Profile Post Scraper - step by step
- Create or log in to your Apify account.
- Open the Instagram Profile Post Scraper in the Apify Store.
- Add input data in Start URLs:
- Accepts profile URLs like "https://www.instagram.com/username/"
- Plain usernames like "username"
- Post shortcodes like "ABC123DEF" (the actor resolves the owner username from the post page)
- Configure options:
- maxPosts to limit how many posts per profile (set 0 for unlimited)
- pinnedMode to include, skip, or only pinned posts
- recent as an absolute date (YYYY-MM-DD) or relative value like "2 weeks"
- proxyConfiguration to use Apify proxies (RESIDENTIAL recommended)
- Start the run โ The IG profile post scraper collects posts, media URLs, and engagement metrics in real time.
- Monitor progress โ The run logs show which users are processed and how many posts are saved.
- Download or integrate โ Export the dataset to CSV, JSON, or Excel, or connect to your internal tools via the Apify API and webhooks.
Pro tip: For automation, schedule recurring runs and consume results with the Apify SDK or REST API to build a โdownload all posts from Instagram profileโ workflow that refreshes your BI dashboards.
Use cases
| Use case | Description |
|---|---|
| Influencer vetting & benchmarking | Compare posting cadence, format mix (Reels vs. images), and engagement rates across creators to inform partnerships. |
| Competitor content tracking | Monitor competitorsโ Instagram profile photos and videos to analyze content themes, CTAs, and performance patterns. |
| Content research & ideation | Extract captions, hashtags, and mentions to spot trends and build an Instagram profile content scraper pipeline for ideation. |
| Campaign reporting | Aggregate likes/comments/views pre/post-campaign to quantify lift and document creatives. |
| Market & consumer insights | Mine captions and latest_comments for voice-of-customer signals and topic clusters. |
| Data pipelines & research | Use the Instagram post scraper tool via API for academic studies or downstream ML (NER, topic modeling). |
Why choose Instagram Profile Post Scraper?
This IG profile post scraper is engineered for precision, automation, and reliability โ delivering structured post data without manual effort.
- โ Accurate, structured output: Clean JSON with consistent field names across media types.
- ๐ Scalable by design: Handle batches of profiles with per-profile limits and date cutoffs.
- ๐ Developer-first: Integrate via API/SDKs for Python or Node.js workflows; automate end-to-end.
- ๐พ Flexible exports: Export to CSV/JSON/Excel for analytics, BI, or enrichment.
- ๐ก๏ธ Safe & public-only: Designed for public profiles; aligns with responsible data use.
- ๐ธ Cost-conscious: Control volume with maxPosts and recent filters to keep runs efficient.
- ๐ง More reliable than extensions: Avoid brittle browser add-ons with production-ready infrastructure.
Bottom line: If you need an Instagram profile scraper without API complexity, this tool delivers dependable results for teams and pipelines.
Is it legal / ethical to use Instagram Profile Post Scraper?
Yes โ when used responsibly. This actor extracts publicly available data from Instagram profiles and does not access private profiles.
Guidelines for responsible use:
- Collect public content only and avoid private or non-consensual data.
- Review and respect Instagramโs Terms of Use.
- Ensure a lawful basis for processing (e.g., legitimate interest) and comply with applicable laws (e.g., GDPR/CCPA).
- Store results securely and use them for legitimate analytical purposes.
- Consult your legal team for edge cases or jurisdiction-specific requirements.
Input parameters & output format
Example input
{"startUrls": ["https://www.instagram.com/cristiano/","mrbeast","DRnOEjME21V"],"maxPosts": 25,"pinnedMode": "include","recent": "2 weeks","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Input fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| startUrls | array (stringList) | Yes | โ | List one or more Instagram profile URLs (e.g. https://www.instagram.com/username), plain usernames (e.g. username), or post shortcodes (e.g. ABC123DEF). The actor will normalize everything into usernames for you. |
| maxPosts | integer | No | 10 | How many posts to scrape per profile. Set to 0 for unlimited posts (use with care for very large profiles). |
| pinnedMode | string (enum: include, skip, only) | No | "include" | Choose how to handle pinned posts: include (mix pinned + regular posts), skip (ignore pinned posts), or only (return only pinned posts when available). |
| recent | string | No | โ | Filter posts by date to keep results fresh. Use an absolute date (YYYY-MM-DD) or a relative value like "3 days", "2 weeks", or "1 month". Leave empty to scrape all available posts. |
| proxyConfiguration | object | No | โ | Configure which proxies to use for scraping. Residential proxies are strongly recommended (and usually required) for reliable Instagram scraping. |
Notes:
- startUrls accepts profile URLs, usernames, and shortcodes. Shortcodes are resolved to the corresponding profile automatically.
- When maxPosts is 0, the scraper paginates until no more posts are available (or safety limits are reached).
Output format
Depending on the extraction path, the actor pushes one of the following JSON shapes to the dataset. Both are valid and analysis-ready.
Profile page extraction example
{"id": "3776048697886076245","shortcode": "DRnOEjME21V","taken_at_timestamp": 1764360143,"display_url": "https://scontent-iad3-2.cdninstagram.com/v/t51.82787-15/587802055_18371174326085436_6013193979793540191_n.jpg","is_video": true,"likes_count": 996806,"comments_count": 5024,"caption": "Ronaldo vs My Goalie Robot. Thanks to @tmobile for helping me get my latest invention ready to take on @cristiano at his own game! #sponsored","accessibility_caption": null,"dimensions": {"height": 3840,"width": 2160},"owner": {"id": "2535829435","username": "cristiano"},"url": "https://www.instagram.com/p/DRnOEjME21V/","scraped_at": "2025-11-29T07:07:19.094367"}
API extraction example (extended fields)
{"id": "3776048697886076245_2535829435","pk": "3776048697886076245","shortcode": "DRnOEjME21V","url": "https://www.instagram.com/p/DRnOEjME21V/","post_url": "https://www.instagram.com/p/DRnOEjME21V/","type": "Video","product_type": "clips","is_video": true,"is_carousel": false,"is_pinned": false,"has_audio": true,"posted": "29 Nov 2025, 07:02:23 am","taken_at_timestamp": 1764360143,"date": "2025-11-29T07:02:23Z","crawled_at": "2026-04-12T05:00:00Z","caption": "Ronaldo vs My Goalie Robot... #sponsored","accessibility_caption": null,"hashtags": ["sponsored"],"mentions": ["tmobile", "cristiano"],"usertags": null,"likes_count": 996806,"like_count": 996806,"comments_count": 5024,"comment_count": 5024,"views_count": 12003001,"view_count": 12003001,"video_duration": 14.2,"video_links": ["https://video.cdninstagram.com/v/t50.2886-16/....mp4"],"video_versions": [{ "width": 720, "height": 1280, "url": "https://.../video-720.mp4", "type": 101 }],"display_url": "https://scontent.cdninstagram.com/.../n.jpg","thumbnail": "https://scontent.cdninstagram.com/.../n.jpg","image": "https://scontent.cdninstagram.com/.../n.jpg","image_links": ["https://scontent.cdninstagram.com/.../n.jpg"],"images": [{ "url": "https://scontent.cdninstagram.com/.../n.jpg", "width": 1080, "height": 1350 }],"dimensions": { "width": 1080, "height": 1350 },"carousel_media_count": null,"carousel_media": null,"coauthor_producers": [],"owner": {"id": "2535829435","pk": "2535829435","username": "cristiano","profile_pic_url": "https://scontent.cdninstagram.com/.../profile.jpg","is_verified": true,"is_private": false},"user": {"pk": "2535829435","id": "2535829435","username": "cristiano","full_name": "Cristiano Ronaldo","profile_pic_url": "https://scontent.cdninstagram.com/.../profile.jpg","hd_profile_pic_url_info": { "url": "https://scontent.cdninstagram.com/.../profile_hd.jpg" },"is_verified": true,"is_private": false},"account_username": "cristiano","account_verified": true,"account_profile_picture": "https://scontent.cdninstagram.com/.../profile.jpg","from_url": "https://www.instagram.com/cristiano/","clips_metadata": {"audio_type": "original_sounds","achievements_info": {"num_earned_achievements": 0,"show_achievements": false}},"comments": [{"id": "111","text": "Great!","created_at": 1764360200,"created_at_utc": 1764360200,"user": {"pk": "555","username": "fan1","full_name": "Fan One","profile_pic_url": "","is_verified": false,"is_private": false},"comment_like_count": 10,"has_liked_comment": false}],"latest_comments": [{"id": "111","text": "Great!","created_at": 1764360200,"created_at_utc": 1764360200,"user": {"pk": "555","username": "fan1","full_name": "Fan One","profile_pic_url": "","is_verified": false,"is_private": false},"comment_like_count": 10,"has_liked_comment": false}]}
Notes:
- For videos, views_count/view_count and video_versions are present; for images they may be null/empty.
- accessibility_caption, usertags, carousel_media, clips_metadata, and latest_comments may be null or empty depending on the post.
FAQ
Is there a free way to try this Instagram profile post downloader?
Yes. You can start with a free Apify plan to test small runs and validate that fields and formats match your needs before scaling.
Do I need to log in or use the official API?
No. This Instagram profile scraper works on publicly available profiles without the official API or login. It wonโt access private accounts.
Can it scrape Reels and carousels from profiles?
Yes. Reels are included via product_type "clips" and carousels are handled with carousel_media and image_links, making it a reliable Instagram profile photos and videos scraper.
How do I scrape Instagram posts by username?
Add usernames (e.g., "brandname"), profile URLs, or post shortcodes to startUrls. The actor normalizes inputs to usernames and fetches posts accordingly.
Can I export Instagram profile posts to CSV?
Yes. After a run, open the dataset and export to CSV, JSON, or Excel. This makes it easy to share or analyze results in spreadsheets and BI tools.
How many posts can I collect per profile?
Use maxPosts to control volume. Set a specific limit (e.g., 50) or 0 for unlimited. Combine with recent to fetch only fresh posts and keep datasets lean.
Does it support Python integrations?
Yes. You can launch runs and fetch datasets via the Apify API or SDKs (including Python), making it a great Instagram post scraper tool for automated pipelines.
Can it scrape private accounts?
No. Only public profiles are supported. If an account is private or unavailable, results may be empty for that username.
Closing thoughts
Instagram Profile Post Scraper is built to turn public IG profiles into structured, analysis-ready datasets fast. With pinned post handling, date filtering, engagement metrics, and rich media URLs, itโs ideal for marketers, analysts, and developers who need dependable post-level data. Run it ad hoc or automate it via API/SDKs (including Python) to power dashboards, research, and content strategy workflows. Start extracting smarter Instagram insights today. ๐