Instagram Posts Scraper avatar

Instagram Posts Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Instagram Posts Scraper

Instagram Posts Scraper

📸 Instagram Posts Scraper (instagram-posts-scraper) pulls posts, captions, hashtags, likes, comments, media URLs & timestamps from public profiles and hashtags. 🔍 Perfect for competitor analysis, content planning, trend tracking & reporting. 📊 Export to CSV/JSON & automate at scale. 🚀

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

Scrapium

Scrapium

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Instagram Posts Scraper

Instagram Posts Scraper is a fast, scalable tool that lets you scrape Instagram posts from public profiles without the official API. It automatically detects usernames from profile URLs, post URLs, or shortcodes, then extracts post metadata like captions, media URLs, engagement counts, and timestamps in structured formats. Built for marketers, developers, data analysts, and researchers, this instagram post scraper enables competitor monitoring, content planning, and analytics at scale.

What data / output can you get?

The actor preserves Instagram’s native post structure and adds a few helper fields for usability. Below are common fields you’ll see in the dataset, with real examples taken from a sample run. You can export results to JSON, CSV, or Excel from the Apify dataset.

Data typeDescriptionExample value
idUnique post identifier with owner suffix"3727992219681477950_173560420"
pkPost primary key"3727992219681477950"
codePost shortcode used to build the post URL"DO8fSwLiNU-"
taken_atUNIX timestamp when the post was published1758631325
like_countTotal likes on the post7141379
comment_countTotal comments on the post72516
media_typeMedia type (e.g., 1=photo, 8=carousel)8
product_typePost type label"carousel_container"
caption.textCaption text content"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].urlDirect media URL (largest candidate example)"https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/552825156_18648550693056421_6760424445129157822_n.jpg?stp=dst-jpg_e35_tt6&efg=..."
scraped_usernameUsername the run was targeted at"cristiano"
post_urlCanonical Instagram post URL built from code"https://www.instagram.com/p/DO8fSwLiNU-/"

Notes:

  • You’ll also receive rich objects such as caption, user, owner, image_versions2 (with multiple resolutions), and carousel_media for multi-image posts.
  • The actor adds three fields to each item: scraped_username, scraped_at (UNIX time), and post_url.
  • Export formats: CSV, JSON, Excel (via Apify dataset exports).

Key features

  • 🚦 Always-on residential proxy The actor enforces residential proxies automatically for higher reliability and lower blocks. A robust fallback strategy switches proxies if a request fails.

  • 🧠 Smart input detection Paste profile URLs, usernames, post URLs, or shortcodes—the actor validates inputs and extracts the correct username before scraping.

  • 🔁 Pagination with backoff Built-in retry and exponential backoff logic handles 429 rate limits, paginates through profile feeds, and resumes until your maxPosts target is met.

  • 🗂 Original IG structure preserved Results keep Instagram’s native post schema (e.g., caption, user, image_versions2, carousel_media), with only minimal additions: scraped_username, scraped_at, post_url.

  • 🧭 Sorting controls Choose sortOrder = newest or oldest to return posts in your preferred order for dashboards, reports, or analytics.

  • 📈 Engagement and timestamps Collects taken_at, like_count, and comment_count directly from the feed response, ideal for trend tracking and benchmarking.

  • 💾 Flexible exports Export Instagram posts to CSV, JSON, or Excel from the Apify dataset. Perfect for pipelines in BI tools or downstream analysis.

  • 👩‍💻 Developer-friendly Access results via the Apify API, schedule runs, and integrate with your instagram posts scraper Python workflows or automation tools.

How to use Instagram Posts Scraper - step by step

  1. 🔑 Sign in to Apify Create a free account or log in to your existing Apify workspace.

  2. 🔎 Find the actor Search for “Instagram Posts Scraper” in the Apify Store and open the actor.

  3. 🧾 Add input data In startUrls, enter one or more inputs as strings. Accepted formats:

  4. ⚙️ Configure settings

    • maxPosts: Limit posts per profile (1–1000)
    • sortOrder: "newest" or "oldest"
    • maxComments: Max comments to extract per post (0–100). Note: current output includes comment_count from the feed.
  5. 🛰 Proxy settings The actor always uses a residential proxy automatically (regardless of your selection). You can still supply proxyConfiguration, but residential will be enforced.

  6. ▶️ Run the actor Click Start. The run logs will show page-by-page progress with retry and backoff handling as needed.

  7. 📥 Download results Open the run’s Dataset to view results and export to JSON, CSV, or Excel. Use the Apify API for programmatic access.

Pro tip: Chain this instagram post data extractor into Make, n8n, or your own scripts to scrape instagram posts without api credentials and update dashboards on a schedule.

Use cases

Use case nameDescription
Digital marketing competitor analysisBenchmark rivals by tracking like_count, comment_count, and posting cadence from their instagram profile posts scraper output.
Content planning for social teamsMine captions, media types, and timing from public feeds to inform creative decisions and posting calendars.
Reporting & analyticsExport instagram posts to csv/JSON and feed BI tools with engagement metrics and timestamps for trend analysis.
Influencer & brand monitoringMonitor public creators’ feeds for new posts and media to spot collaborations or track brand mentions in captions.
Academic & research studiesCollect structured post-level data from public profiles for longitudinal studies and content analysis.
Developer pipelinesPull structured items via the Apify API in your instagram posts scraper python scripts for automation and enrichment.

Why choose Instagram Posts Scraper?

This production-ready instagram content scraper prioritizes reliability, scale, and clean structure—built for teams who need accurate, repeatable extraction.

  • ✅ Accuracy-first: Preserves Instagram’s native post fields; no lossy transformations.
  • ✅ Always-on residential proxy: Enforced by default, with fallback strategies to minimize blocks.
  • ✅ Scales to thousands of posts: Pagination with retries/backoff to keep large jobs stable.
  • ✅ Developer access: Pull results via API, schedule runs, and integrate with python workflows.
  • ✅ Safe & ethical defaults: Designed for public data from public profiles only.
  • ✅ Cost-effective automation: Export in minutes to CSV/JSON/Excel for immediate analysis.
  • ✅ Robust vs. browser extensions: Avoid flaky extensions—use a stable, cloud-native scraper.

Bottom line: If you need the best instagram post scraping tool for dependable, structured outputs, this actor is optimized for your workflows.

Yes—when done responsibly. This actor is designed for extracting publicly available data from public Instagram profiles. It does not access private profiles or require authentication.

Guidelines:

  • Only target public content.
  • Review and respect Instagram’s terms of service.
  • Comply with applicable data protection regulations (e.g., GDPR, CCPA).
  • Use the data for lawful purposes and consult your legal team for edge cases.

Input parameters & output format

Example JSON input

{
"startUrls": [
"https://www.instagram.com/cristiano/",
"neymarjr",
"https://www.instagram.com/p/DO8fSwLiNU-/"
],
"maxPosts": 10,
"sortOrder": "newest",
"maxComments": 0,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Input fields:

  • startUrls (array of string, required)
    • 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
  • maxPosts (integer, optional)
    • Description: Maximum number of posts to scrape per profile (1-1000).
    • Default: 10
  • sortOrder (string, optional; enum: "newest", "oldest")
    • Description: Order in which to sort the posts.
    • Default: "newest"
  • maxComments (integer, optional)
    • Description: Maximum number of comments to extract per post (0-100).
    • Default: 0
  • proxyConfiguration (object, optional)
    • 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 }

Example JSON output

Each dataset item is an Instagram post object enriched with three fields: scraped_username, scraped_at, and post_url. The rest of the fields come directly from Instagram’s feed response.

{
"id": "3727992219681477950_173560420",
"pk": "3727992219681477950",
"code": "DO8fSwLiNU-",
"taken_at": 1758631325,
"media_type": 8,
"product_type": "carousel_container",
"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?stp=dst-jpg_e35_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0uaW1hZ2VfdXJsZ2VuLjE0NDB4MTgzOS5zZHIuZjgyNzg3LmRlZmF1bHRfaW1hZ2UuYzIifQ&_nc_ht=scontent-iad3-1.cdninstagram.com&_nc_cat=1&_nc_oc=...&_nc_sid=ee9879"
}
]
},
"user": {
"username": "cristiano"
},
"scraped_username": "cristiano",
"scraped_at": 1758728197,
"post_url": "https://www.instagram.com/p/DO8fSwLiNU-/"
}

Notes:

  • Fields included depend on Instagram’s response (e.g., user, owner, image_versions2, carousel_media). Some fields may be absent if not applicable to a post.

FAQ

Do I need to log in or provide cookies?

No. This Instagram Posts Scraper works without login and targets publicly available profile data. It uses web endpoints with built-in token extraction and residential proxies.

Can I scrape Instagram posts without the official API?

Yes. This is an instagram posts scraper tool that operates without the official API by fetching public profile feed endpoints and parsing structured JSON.

How many posts can I scrape per profile?

You control this with maxPosts. The supported range is 1–1000 per profile, and the actor paginates until your limit is reached or no more posts are available.

What data points are included?

Common fields include id, pk, code, taken_at, like_count, comment_count, media_type, product_type, caption, user and media URLs (image_versions2). The actor also adds scraped_username, scraped_at, and post_url.

Does it download media files?

The actor provides direct media URLs (e.g., image_versions2.candidates.url) so you can use them in downstream pipelines or an instagram post downloader workflow. It doesn’t store binary media; it outputs links.

Can I export Instagram posts to CSV or JSON?

Yes. After the run, open the Dataset and export results to CSV, JSON, or Excel. You can also pull data programmatically via the Apify API.

Is there a free trial?

Yes. The actor listing includes trial minutes so you can evaluate the scraper before subscribing. Check the actor page for current trial availability.

Can I integrate this with Python or automation tools?

Yes. Access results through the Apify API in your instagram posts scraper python scripts, or plug the dataset into Make, n8n, or your internal workflows.

Closing CTA / Final thoughts

Instagram Posts Scraper is built for reliable, structured extraction of public Instagram profile posts at scale. With automatic username detection, enforced residential proxies, robust pagination, and clean outputs, it helps marketers, analysts, researchers, and developers move from manual copy-paste to automated pipelines. Export to CSV/JSON, connect via API, or integrate into your python workflows—and start extracting smarter, faster insights from Instagram posts today.