Instagram Profile Post Scraper avatar

Instagram Profile Post Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Instagram Profile Post Scraper

Instagram Profile Post Scraper

Extract posts from any Instagram profile quickly and accurately. Collect captions, images, videos, likes, comments, hashtags, timestamps, and post URLs. Perfect for content analysis, competitor research, influencer tracking, and social media monitoring with structured data output.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeLabs

ScrapeLabs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Instagram Profile Post Scraper

The Instagram Profile Post Scraper is a purpose-built Instagram post scraper that extracts public posts from any Instagram profile, including images, carousels, reels, captions, hashtags, mentions, and engagement metrics. It solves the manual effort of collecting profile timelines by turning them into structured, export-ready datasets. Built for marketers, developers, data analysts, and researchers, this Instagram profile post downloader scales from one-off checks to bulk Instagram post scraper workflows and enables repeatable content analysis, competitor tracking, and social media monitoring at scale.

What data / output can you get?

Below are real output fields this Instagram profile posts extractor produces. Values may vary per post depending on media type and availability.

FieldDescriptionExample value
idUnique post identifier (string)"3776048697886076245_2535829435"
shortcodeInstagram post shortcode"DRnOEjME21V"
urlCanonical post URL"https://www.instagram.com/p/DRnOEjME21V/"
typePost type when API path is used (Image/Video/Carousel)"Video"
is_videoWhether the post is a video (including reels)true
captionPost caption text"Ronaldo vs My Goalie Robot..."
hashtagsArray of hashtags parsed from caption (API path)["sponsored"]
likes_countNumber of likes996806
comments_countNumber of comments5024
taken_at_timestampUNIX timestamp when posted1764360143
owner.usernameUsername of the profile owner"cristiano"
dimensions.width / dimensions.heightMedia dimensions2160 / 3840
image_links / video_linksCollected media URLs (API path)["https://...jpg"] / ["https://...mp4"]

Bonus fields when the API-based extraction is used can include rich metadata such as pk, post_url, product_type, is_carousel, is_pinned, posted, date, crawled_at, mentions, usertags, like_count, comment_count, views_count, view_count, video_duration, video_versions, images, carousel_media_count, carousel_media, coauthor_producers, expanded owner and user objects, account_username, account_verified, account_profile_picture, from_url, clips_metadata, comments, and latest_comments. Export results from the dataset as JSON, CSV, or Excel.

Key features

  • 🔗 Multi-input flexibility — Paste Instagram profile URLs, plain usernames, or post shortcodes into startUrls. The actor normalizes them into usernames automatically for a smooth “scrape Instagram posts by username” experience.

  • 📌 Pinned posts control — Fine-tune how pinned posts are handled with pinnedMode: include, skip, or only. Ideal for IG profile post scraper runs focused on highlighted content.

  • ⏱️ Freshness filter — Keep datasets current with recent. Use an absolute date (YYYY-MM-DD) or a relative value like “3 days”, “2 weeks”, or “1 month” to fetch only new items.

  • 📦 Scalable limits — Set maxPosts per profile to control volume. Use 0 for unlimited to build a complete archive when running a bulk Instagram post scraper.

  • 📹 Media-first coverage — Collect images, carousels, and reels (clips) along with captions, hashtags, mentions, and engagement metrics for a comprehensive Instagram user feed scraper.

  • 💬 Comment snapshots when available — The API-based path enriches records with comments and latest_comments, giving you context for sentiment and engagement analysis.

  • 🧩 Developer-ready — Integrate with Apify via API and official SDKs (Node.js & Python). Perfect for pipelines that need an Instagram profile data scraper or to Export Instagram profile posts JSON programmatically.

  • 💾 Easy exports — Download results from the dataset as JSON, CSV, or Excel, enabling an Instagram profile post exporter CSV workflow for BI tools and dashboards.

  • 🛡️ Proxy-ready reliability — Configure proxyConfiguration; residential proxies are recommended (and usually required) for stable Instagram media scraper for profiles operations.

How to use Instagram Profile Post Scraper - step by step

  1. Sign in to Apify — Create a free account or log in.

  2. Open the actor — Find “Instagram Profile Post Scraper” in the Apify Store.

  3. Add input data — In startUrls, paste Instagram profile URLs (e.g., https://www.instagram.com/username/), plain usernames (e.g., username), or post shortcodes (e.g., ABC123DEF).

  4. Set limits — Choose maxPosts (set 0 for unlimited). This controls how many posts per profile the Instagram user posts downloader will collect.

  5. Control pinned posts — Pick a pinnedMode value:

    • include (default): mix pinned and regular posts
    • skip: ignore pinned posts
    • only: return only pinned posts if available
  6. Filter by date (optional) — Use recent as an absolute date (YYYY-MM-DD) or a relative time like “2 weeks” to focus on fresh content.

  7. Configure proxies — Use proxyConfiguration. Residential proxies are strongly recommended for reliable runs of an Instagram profile scraper.

  8. Run the actor — Click Start. The scraper fetches posts, media URLs, captions, hashtags, mentions, and engagement metrics.

  9. Export results — Download the dataset as JSON, CSV, or Excel, or connect via the Apify API for automation.

Pro Tip: Combine pinnedMode with recent to track only newly pinned highlights, use maxPosts=0 for full archives, and programmatically trigger runs via the Apify API to power automated Instagram profile post downloader pipelines.

Use cases

Use caseDescription
Influencer & competitor analysisMeasure posting cadence, format mix (reels vs. images), and engagement using an Instagram user feed scraper to benchmark performance.
Content research & SEOExport Instagram profile posts JSON to cluster topics, mine hashtags/mentions, and identify trends for editorial planning.
Campaign reportingTrack pre/post-campaign metrics (likes, comments, views) and collect creatives for performance analysis.
Brand & UGC monitoringMonitor mentions and collect references across profiles with an Instagram profile data scraper for brand safety and inspiration.
Market & consumer researchAnalyze captions and comments to surface keywords and voice-of-customer insights.
Data pipelines & automationFeed BI/ETL workflows with a bulk Instagram post scraper, export to CSV/JSON, and push to warehouses or dashboards.

Why choose Instagram Profile Post Scraper?

This Instagram post scraping tool is engineered for precision, stability, and automation — ideal for both exploratory analysis and production pipelines.

  • 🎯 Accurate, structured data — Consistent field naming and clean JSON for downstream analytics.

  • 🚀 Built for scale — Control per-profile volume with maxPosts, including unlimited mode for archives.

  • 💻 Developer access — Works seamlessly with the Apify API and SDKs (Node.js & Python) for automation.

  • 🔗 Easy integrations — Export JSON/CSV/Excel and connect to your tools for “Instagram profile post exporter CSV” workflows.

  • 🛡️ Public data focus — Designed for public, non-private profiles; compliance-minded defaults help you stay responsible.

  • 💸 Cost-effective operations — Tune limits and filters to control runtime and throughput in your Instagram post scraping tool workflows.

  • 🧰 Production ready — Proxy configuration support with a recommendation for residential proxies ensures reliability versus browser extensions and unstable alternatives.

Is it legal / ethical to use Instagram Profile Post Scraper?

Yes — when used responsibly. This actor collects publicly available content from Instagram profiles and does not access private accounts.

Guidelines for compliant use:

  • Collect only public data; do not attempt to access private profiles.
  • Ensure a lawful basis for processing data (e.g., legitimate interest) and comply with GDPR/CCPA as applicable.
  • Respect platform terms and use results responsibly.
  • Store data securely and avoid collecting unnecessary personal information.
  • Consult your legal team for edge cases or specific regulatory requirements.

Input parameters & output format

Example JSON input

{
"startUrls": [
"https://www.instagram.com/cristiano/",
"mrbeast",
"DRnOEjME21V"
],
"maxPosts": 10,
"pinnedMode": "include",
"recent": "2 weeks",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Parameters

FieldTypeRequiredDefaultDescription
startUrlsarrayYesList 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.
maxPostsintegerNo10How many posts to scrape per profile. Set to 0 for unlimited posts (use with care for very large profiles).
pinnedModestring (enum: include, skip, only)No"include"Choose how to handle pinned posts: include mixes pinned and regular posts; skip ignores pinned posts; only returns only pinned posts when available.
recentstringNoFilter posts by date. 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.
proxyConfigurationobjectNoConfigure which proxies to use for scraping. Residential proxies are strongly recommended (and usually required) for reliable Instagram scraping.

Example JSON output

{
"id": "3776048697886076245_2535829435",
"shortcode": "DRnOEjME21V",
"taken_at_timestamp": 1764360143,
"display_url": "https://scontent-iad3-2.cdninstagram.com/v/t51.82787-15/587802055_18371174326085436_6013193979793540191_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=1&ig_cache_key=Mzc3NjA0ODY5Nzg4NjA3NjI0NTE4MzcxMTc0MzIzMDg1NDM2.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6InhwaWRzLjE1NDB4MjczNi5zZHIuQzMifQ%3D%3D&_nc_ohc=WwXAOR6TvcsQ7kNvwGogKJB&_nc_oc=AdmDnq-QC6eVENMXcspUYgZ-JqOTaDpvTUO8eziKb0G91ea9Z672zM1UKgFnNETivDU&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_gid=lgytAp0cE0ABGcbRXVKK4g&oh=00_AfgUpVTgAZ_CIGSgz0GaKjgZuWWDI-RB3uHH_8unxjR65w&oe=69305E68",
"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"
}

Note: Depending on the extraction path, records may include additional fields such as pk, post_url, type, product_type, is_carousel, is_pinned, posted, date, crawled_at, hashtags, mentions, usertags, like_count, comment_count, views_count, view_count, video_duration, video_links, video_versions, image_links, images, carousel-related fields, owner/user metadata, account_* fields, from_url, clips_metadata, comments, and latest_comments.

FAQ

Is there a free way to try this Instagram post scraping tool?

Yes. The listing includes trial minutes (120) so you can run small tests before upgrading. This is ideal to validate inputs and outputs for your Instagram profile post scraper workflow.

Can I scrape Instagram posts by username, profile URL, or shortcode?

Yes. Add any mix of profile URLs, plain usernames, or post shortcodes to startUrls. The actor normalizes them into usernames automatically.

Can it download Instagram posts from profile including reels and carousels?

Yes. The scraper handles standard images, videos, and carousels. Reels (clips) are supported via the API-based extraction path where available.

How do I include or exclude pinned posts?

Use pinnedMode. Set include (default) to mix pinned and regular posts, skip to ignore pinned items, or only to return pinned posts when available.

How do I limit or maximize how many posts are scraped?

Set maxPosts to control per-profile limits. Use 0 for unlimited posts to build a full archive with this Instagram profile posts extractor.

How do I capture only new posts?

Set recent to an absolute date (YYYY-MM-DD) or a relative period like “1 month” or “2 weeks” to filter for fresh content.

Can it scrape private accounts?

No. This Instagram profile scraper collects public data only. Private profiles are not supported.

How do I export results to CSV or JSON?

Open the run’s dataset in Apify and export as JSON, CSV, or Excel. This makes it easy to run an Instagram profile post exporter CSV workflow for analytics and reporting.

Does it support API or Python integration?

Yes. As an Apify actor, you can start runs and fetch datasets via the Apify API or SDKs (Node.js and Python), enabling automated Instagram media scraper for profiles pipelines.

Final thoughts

The Instagram Profile Post Scraper is built to extract structured, post-level data from public Instagram profiles at scale. With flexible inputs, pinned post handling, date filtering, and export-ready outputs, it serves marketers, analysts, researchers, and developers alike. Use the Apify API or SDKs to automate your Instagram profile post downloader workflows, export to CSV/JSON/Excel, and power data-driven content and competitive analysis. Start extracting smarter, structured Instagram insights today.