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 extracts public posts at scale โ€” captions, hashtags, images, video URLs, likes, comments, timestamps & engagement metrics. ๐Ÿš€ Perfect for social listening, competitor tracking, influencer research & content analysis. Exports CSV/JSON.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeFlow

ScrapeFlow

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, reliable Instagram post extractor that lets you scrape Instagram posts from public profiles at scale โ€” preserving the original Instagram JSON while adding lightweight metadata for analysis. This Instagram posts scraping tool helps marketers, developers, data analysts, and researchers quickly collect feed items without manual browsing, so you can analyze engagement, content, and media at scale. Use it to scrape Instagram posts reliably and export structured results for downstream workflows. ๐Ÿš€

What data / output can you get?

The actor preserves Instagramโ€™s native post structure and adds three helpful fields. Below are representative fields youโ€™ll find in each item:

Data typeDescriptionExample value
idUnique media identifier (composite)"3727992219681477950_173560420"
pkPrimary key for the media"3727992219681477950"
codePost shortcode used to build canonical URL"DO8fSwLiNU-"
product_typePost type (e.g., single photo, carousel)"carousel_container"
media_typeMedia type code (e.g., 1=photo, 8=carousel)8
taken_atUNIX timestamp when the post was published1758631325
like_countTotal likes7141379
comment_countTotal comments72516
caption.textCaption text as returned by Instagram"Happy Saudi National Day to everyone in Saudi Arabia! ..."
image_versions2.candidates[].urlDirect media URL(s) for images"https://scontent.../552825156_...n.jpg"
carousel_media_countNumber of items in a carousel3
user.usernamePost ownerโ€™s username"cristiano"
post_urlCanonical post URL (added by actor)"https://www.instagram.com/p/DO8fSwLiNU-/"
scraped_usernameProfile username that was scraped (added by actor)"cristiano"
scraped_atUNIX timestamp when the item was scraped (added by actor)1758728197

Notes:

  • The full Instagram item structure (e.g., caption, owner, user, image_versions2 variants, carousel_media, engagement counters) is preserved as returned by Instagramโ€™s endpoints.
  • You can export results to JSON, CSV, or Excel from the Apify Dataset UI โ€” perfect for a robust Instagram posts data exporter workflow.

Key features

  • ๐Ÿ”Ž Bold username resolution from flexible inputs
    Automatically detects and extracts the profile username from profile URLs, plain usernames, post URLs, or shortcodes using multiple strategies (post page parsing, embed page, GraphQL/web API, alternative headers).

  • ๐Ÿ›ก๏ธ Always-on residential proxy with smart fallback
    The actor always uses residential proxies by default and includes retry logic and proxy fallback routines to keep your jobs stable under rate limiting.

  • ๐Ÿ“„ High-fidelity JSON preservation
    Produces a minimal, developer-friendly payload by preserving Instagramโ€™s original item structure, plus three added fields: scraped_username, scraped_at, and post_url.

  • ๐Ÿ“ˆ Configurable limits & ordering
    Control throughput with maxPosts and choose sortOrder ("newest" or "oldest") to shape analysis flows for bulk download Instagram posts use cases.

  • โ˜๏ธ Scalable cloud automation
    Run at scale on Apify โ€” ideal for teams needing the best Instagram posts scraper for repeatable jobs and batch processing.

  • ๐Ÿ’พ Flexible exports for analytics
    Export datasets to JSON, CSV, or Excel, making it easy to integrate into BI dashboards, Python notebooks, or data lakes with your Instagram media scraper for posts workflows.

  • ๐Ÿ‘ฉโ€๐Ÿ’ป Developer-ready (Python + API)
    Built in Python and accessible via the Apify API for programmatic runs and automation. Great fit for Instagram posts scraper Python pipelines and CI/CD.

  • ๐Ÿ” Robust error handling
    Retries with exponential backoff and token refresh logic reduce failures from transient errors and rate limits.

How to use Instagram Posts Scraper - step by step

  1. ๐Ÿ”‘ Create or log in to your Apify account.
  2. ๐Ÿ” Find โ€œInstagram Posts Scraperโ€ in the Apify Store and open the actor.
  3. ๐Ÿงพ Add input data in the โ€œstartUrlsโ€ field:
  4. โš™๏ธ Configure settings:
    • maxPosts: limit the number of posts per profile.
    • sortOrder: choose "newest" or "oldest".
    • proxyConfiguration: optional; residential proxy is used automatically regardless of selection.
  5. โ–ถ๏ธ Run the actor. The scraper will fetch pages with pagination until it reaches your maxPosts or thereโ€™s no more data.
  6. โœ… Monitor logs for progress (rate-limit retries, page counts, and totals are logged).
  7. ๐Ÿ’พ Download your dataset in JSON, CSV, or Excel from the runโ€™s Dataset tab.

Pro Tip: Trigger runs and fetch datasets programmatically via the Apify API to build an Instagram posts scraper API workflow that pipes results straight into your analytics stack or a Python-based ETL.

Use cases

Use case nameDescription
Social listening & trend analysisMeasure engagement and content patterns across public profiles to guide strategy for campaigns and content calendars.
Competitor content benchmarkingTrack top-performing posts over time to understand creative direction, cadence, and audience response.
Influencer research & vettingPull engagement metrics and media structures to shortlist and evaluate potential partners based on public data.
Content performance reportingExport structured posts data (likes, comments, timestamps, media URLs) for dashboards and periodic reporting.
Data science & NLP on captionsFeed caption.text into NLP pipelines for sentiment, topic modeling, or clustering as an Instagram captions scraper workflow.
Academic & market researchCollect longitudinal datasets of public posts to study user behavior, diffusion of content, or cultural trends.
Automation & pipelines (API)Orchestrate runs via API and move data to warehouses or notebooks for scalable Instagram posts scraping software workflows.

Why choose Instagram Posts Scraper?

This production-ready scraper focuses on precision input handling, resilient networking, and high-fidelity JSON for analytics-ready outputs.

  • โœ… Accurate input detection: Resolves usernames from profile URLs, post URLs, and shortcodes using multiple extraction paths.
  • ๐ŸŒ Residential proxies by default: Built-in residential routing and backoff improve stability over extension-based or manual tools.
  • ๐Ÿ“ฆ Scale without friction: Set maxPosts, run in batches, and export cleanly โ€” ideal for bulk automation.
  • ๐Ÿ‘จโ€๐Ÿ’ป Developer control: Python-based actor with API access for CI/CD and pipeline orchestration.
  • ๐Ÿ”’ Public-data focus: Targets publicly accessible posts only, aligning with ethical data collection practices.
  • ๐Ÿ’ฐ Cost-effective & reliable: Cloud-native infrastructure removes overhead from managing rotating IPs and session retries.
  • ๐Ÿ”— Integration-ready: Treat it as your Instagram posts scraper API for instant feeds into analytics and automation tools.

Unlike browser extensions and unstable scripts, this actor runs on robust cloud infrastructure with proxies, retries, and dataset exports built in.

Yes โ€” when used responsibly. This actor targets publicly available Instagram posts and does not access private profiles or authenticated data.

Guidelines to stay compliant:

  • Only scrape publicly accessible content.
  • Review and respect Instagramโ€™s terms and applicable laws (e.g., GDPR, CCPA).
  • Use the data for analysis and research; avoid misuse or infringement.
  • Consult your legal team for edge cases or commercial redistribution scenarios.

Input parameters & output format

Example input

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

Input fields (from schema):

  • 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.
    Required: Yes | Default: None

  • maxPosts (integer)
    Description: Maximum number of posts to scrape per profile (1-1000).
    Required: No | Default: 10

  • sortOrder (string; enum: "newest", "oldest")
    Description: Order in which to sort the posts.
    Required: No | Default: "newest"

  • maxComments (integer)
    Description: Maximum number of comments to extract per post (0-100).
    Required: No | Default: 0

  • 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.
    Required: No | Default (prefill): {"useApifyProxy": false}

Example output

[
{
"id": "3727992219681477950_173560420",
"pk": "3727992219681477950",
"code": "DO8fSwLiNU-",
"product_type": "carousel_container",
"media_type": 8,
"taken_at": 1758631325,
"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"
}
]
},
"carousel_media_count": 3,
"carousel_media": [
{
"id": "3727992208725918329_173560420",
"media_type": 1,
"image_versions2": {
"candidates": [
{ "url": "https://scontent-iad3-1.cdninstagram.com/...n.jpg" }
]
}
}
],
"user": {
"id": "173560420",
"username": "cristiano",
"full_name": "Cristiano Ronaldo",
"is_verified": true
},
"owner": {
"id": "173560420",
"username": "cristiano"
},
"scraped_username": "cristiano",
"scraped_at": 1758728197,
"post_url": "https://www.instagram.com/p/DO8fSwLiNU-/"
}
]

Notes:

  • The actor pushes each post item individually to the dataset with the original Instagram fields plus scraped_username, scraped_at, and post_url.
  • Some nested fields may be null or absent depending on the specific post.
  • Export formats: JSON, CSV, and Excel are available directly from the Apify Dataset UI.

FAQ

Is there a free way to try this Instagram posts scraper?

Yes. You can run the actor on Apifyโ€™s free tier within platform limits, making it a practical way to test a free Instagram posts scraper workflow before scaling.

Do I need to log in or provide cookies?

No. The actor works without login by extracting tokens from publicly available pages and using public endpoints. It targets public profiles only.

Can I input usernames, profile URLs, and post shortcodes?

Yes. The startUrls field accepts profile URLs, plain usernames, post URLs, and shortcodes. The actor automatically detects and resolves the profile username.

Does this download images or videos?

It returns media URLs and variants from the Instagram payload. You can treat it like an Instagram media scraper for posts and use the URLs to download files in your own pipeline if needed.

How many posts can I scrape per profile?

Use maxPosts (1โ€“1000) to control volume. The actor paginates until it reaches your maxPosts or no more data is available, then sorts by your chosen sortOrder.

What data fields are included?

The scraper preserves Instagramโ€™s item structure (e.g., id, pk, code, taken_at, like_count, comment_count, caption, image_versions2, carousel_media, user/owner metadata) and adds scraped_username, scraped_at, and post_url.

Can I integrate this with Python or via API?

Yes. The actor is written in Python and exposes results through the Apify API. Itโ€™s ideal for Instagram posts scraper Python workflows and automated pipelines.

Yes, when you scrape public data responsibly and comply with Instagramโ€™s terms and applicable regulations. The actor does not access private profiles or authenticated data.

Closing CTA / Final thoughts

Instagram Posts Scraper is built for accurate, scalable extraction of public Instagram posts in analytics-ready JSON. With resilient proxying, flexible inputs, and clean exports, itโ€™s a dependable choice for social listening, competitor tracking, and research. Marketers, developers, analysts, and researchers can run it on-demand or via the Apify API for end-to-end automation. Start exporting structured post data to CSV/JSON/Excel and power your next insights workflow today.