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 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

ScraperX

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 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 typeDescriptionExample value
idPost identifier including owner ID"3727992219681477950_173560420"
codeShortcode used in the post URL"DO8fSwLiNU-"
taken_atUnix timestamp when the post was created1758631325
like_countNumber of likes7141379
comment_countNumber of comments72516
media_typeMedia type (e.g., image, video, carousel)8
caption.textFull caption text"Happy Saudi National Day to everyone in Saudi Arabia! ๐Ÿ‡ธ๐Ÿ‡ฆ ..."
user.usernameOwnerโ€™s username"cristiano"
image_versions2.candidates[].urlDirect image URL(s) in multiple sizes"https://scontent-iad3-1.cdninstagram.com/v/t51.2885..."
product_typePost product type"carousel_container"
post_urlConstructed post URL for convenience"https://www.instagram.com/p/DO8fSwLiNU-/"
scraped_usernameUsername resolved from your input"cristiano"
scraped_atUnix timestamp when the scraper collected the post1758728197

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

  1. ๐Ÿ”‘ Sign in to Apify
    Log in to your Apify account (you can start on a free tier to test).

  2. ๐Ÿงญ Open the actor
    Find โ€œInstagram Posts Scraperโ€ in the Apify Store and click Try for free or Run.

  3. ๐Ÿ“ Add input data
    In the input, provide startUrls as a list of:

  4. โš™๏ธ 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.
  5. ๐Ÿ›ก๏ธ Proxy behavior
    The actor always uses residential proxy regardless of your selection to improve reliability.

  6. โ–ถ๏ธ Run the actor
    Click Start. The actor resolves the username, fetches authentication tokens, and begins scraping posts with pagination and retry logic.

  7. ๐Ÿ’พ 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 nameDescription
Digital marketing โ€“ competitor post analysisTrack public competitor profiles to measure publishing cadence, engagement (like_count, comment_count), and content formats using an Instagram post scraper.
Brand monitoring โ€“ owned profile trackingAggregate your brandโ€™s public posts for reporting, QA, and historical archives with a stable IG posts scraper.
Content analytics โ€“ caption text miningExport caption.text at scale to run NLP, keyword extraction, and sentiment analysis for campaign insights with an Instagram captions scraper.
Influencer research โ€“ profile vettingPull recent posts from public creator profiles to evaluate audience engagement and media types before collaborations.
Data science โ€“ engagement modelingFeed like_count, comment_count, and timestamps into forecasting or clustering models to study content performance drivers.
Academic research โ€“ social content studiesCollect structured, time-stamped post metadata from public profiles to study trends and content diffusion patterns.
BI pipeline โ€“ automated ingestionUse 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.

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.

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.

Scraper NameScraper Name
Instagram Comments ScraperInstagram Post Details Scraper
Instagram Dm AutomationInstagram Profile Post Scraper
Instagram Email ScraperInstagram Profile Reels Scraper
Instagram Followers Count ScraperInstagram Profile Scraper
Instagram Following ScraperInstagram Reels Scraper
Instagram Hashtag Username ScraperInstagram Related Hashtag Stats Scraper
Instagram Highlights ScraperInstagram Related Person Scraper
Instagram Likes ScraperInstagram Single Reels Scraper
Instagram Location ScraperInstagram Story Details Scraper
Instagram Mentions ScraperInstagram Tagged Mentions Posts Scraper
Instagram Phone Number ScraperInstagram Tagged Posts Scraper