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 post data at scale โ€” captions, hashtags, likes, comments, timestamps & media URLs. ๐Ÿ“Š Ideal for social listening, competitor research, content planning & analytics. โš™๏ธ Fast, reliable, and API-friendly. ๐Ÿš€

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeMesh

ScrapeMesh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Instagram Posts Scraper

The Instagram Posts Scraper is a fast, reliable Instagram post extractor that collects public posts from Instagram profiles at scale โ€” including captions, media URLs, timestamps, and engagement metrics โ€” and delivers them in structured datasets for analysis. It solves the pain of manual copy-paste by letting you scrape Instagram posts programmatically from profile URLs, usernames, and even post shortcodes, making it ideal for marketers, developers, data analysts, and researchers. With built-in sorting and limits, this Instagram posts scraping tool helps you automate social listening, competitor tracking, and content analysis with ease.

What data / output can you get?

Below are examples of real output fields as pushed to the Apify dataset. Results retain Instagramโ€™s native structure with a few added metadata fields.

Data typeDescriptionExample value
idPost identifier including owner ID"3727992219681477950_173560420"
codeShortcode used in post URLs"DO8fSwLiNU-"
taken_atUnix timestamp when the post was published1758631325
like_countNumber of likes on the post7141379
comment_countNumber of comments on the post72516
media_typeType of media (e.g., 1 photo, 8 carousel)8
product_typePost product type"carousel_container"
caption.textFull caption text"Happy Saudi National Day to everyone in Saudi Arabia! ๐Ÿ‡ธ๐Ÿ‡ฆ ..."
user.usernameUsername of the post owner"cristiano"
image_versions2.candidates[].urlDirect media URL (multiple resolutions)"https://scontent-.../552825156_..._n.jpg"
carousel_media_countNumber of items in a carousel3
post_urlCanonical URL to the post"https://www.instagram.com/p/DO8fSwLiNU-/"

Notes:

  • Bonus metadata includes nested objects like caption, user, owner, image_versions2, and (when present) carousel_media with per-item candidates.
  • You can export results to JSON, CSV, or Excel from the Apify dataset.

Key features

  • ๐Ÿš€ Automatic input detection Detects and normalizes inputs as profile URLs, plain usernames, post URLs, or post shortcodes โ€” then resolves to the correct username for scraping.

  • ๐Ÿ”’ Residential proxy enforced Always uses a residential proxy automatically for higher reliability and fewer blocks (the actor enforces this regardless of your proxy selection).

  • โš™๏ธ Scrape limits & sorting Control depth and ordering with maxPosts and sortOrder ("newest" or "oldest") for consistent, repeatable IG posts scraper runs.

  • ๐Ÿง  Resilient request strategy Implements retries with exponential backoff for token extraction and feed requests to improve success rates during rate limiting.

  • ๐Ÿงพ Structured datasets & easy exports Results are pushed to an Apify dataset so you can download as JSON, CSV, or Excel โ€” perfect for a bulk Instagram post downloader or Instagram posts to CSV scraper workflow.

  • ๐Ÿ’ป Developer-friendly automation Designed for integration into pipelines and โ€œInstagram API scraping for postsโ€ scenarios on Apify โ€” ideal for analysts and engineers.

  • ๐Ÿ” Scrape Instagram posts without login Works without storing login sessions; tokens are extracted from public pages to collect profile feed data programmatically.

How to use Instagram Posts Scraper - step by step

  1. ๐Ÿ”‘ Sign in to Apify Create a free Apify account or log in to your existing workspace.

  2. ๐Ÿ” Open the actor Find โ€œInstagram Posts Scraperโ€ in the Apify Store and click Try for free.

  3. ๐Ÿงพ Add input data In โ€œstartUrlsโ€, enter one or more items as:

  4. โš™๏ธ Configure settings

    • maxPosts: limit posts per profile (1โ€“1000)
    • sortOrder: choose "newest" or "oldest"
    • maxComments: cap comments per post (0โ€“100)
    • proxyConfiguration: optional field, but note the actor always uses residential proxies internally
  5. โ–ถ๏ธ Run the actor Click Start. The scraper will extract authentication tokens from the public profile page and fetch posts via Instagram web endpoints.

  6. โฑ Monitor progress Watch logs for page-by-page scraping status and rate-limit handling with retries.

  7. ๐Ÿ’พ Download results Open the dataset tab for the run and export your data as JSON, CSV, or Excel for use in analytics and reporting.

Pro Tip: Chain this IG posts scraper with your data stack or marketing tools to automate content tracking, or pull data programmatically from the Apify dataset API.

Use cases

Use case nameDescription
Digital marketing competitor analysisTrack competitorsโ€™ posting cadence, captions, and engagement to inform content strategy and audience insights.
Social listening & brand monitoringMonitor public posts from partner or brand profiles to analyze sentiment and creative direction over time.
Content planning for creatorsGather inspiration via an Instagram captions scraper and Instagram photo scraper to identify high-performing themes.
Analytics & reportingBuild a repeatable Instagram feed scraper that exports to CSV/JSON and powers dashboards and KPI tracking.
Research & academiaCollect public posts for longitudinal studies, audience behavior analysis, or media research.
Developer pipelines (API)Use this Instagram web scraper for posts as part of a data ingestion pipeline for enrichment, ML training, or audits.

Why choose Instagram Posts Scraper?

Built for precision and automation, this IG posts scraper balances reliability with developer-ready workflows.

  • โœ… Accurate profile targeting via automatic input detection (URLs, usernames, post URLs, or shortcodes)
  • โœ… Enforced residential proxy for higher success rates without manual configuration
  • โœ… Scalable scraping with maxPosts limits and time-ordered results
  • โœ… Developer-friendly datasets for quick export to JSON/CSV/Excel and downstream automations
  • โœ… Works without login, relying on public pages and web endpoints
  • โœ… Cost-effective for ongoing monitoring and bulk Instagram post downloader needs
  • โœ… More reliable than ad-hoc browser extensions or manual copy-paste alternatives

In short, itโ€™s a production-ready Instagram posts scraping tool designed for teams that value reliability, scalability, and clean outputs.

Yes โ€” when done responsibly. This actor targets publicly available data from public Instagram profiles and does not access private accounts or authenticated data.

Guidelines:

  • Scrape only public content and respect platform terms.
  • Comply with applicable data protection laws (e.g., GDPR, CCPA).
  • Avoid misuse (e.g., do not resell scraped content in violation of rights).
  • Consult your legal team for edge cases or regulated use.

Input parameters & output format

Example JSON input

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

Notes:

  • The actor will automatically detect input types and extract usernames from profile URLs, post URLs, and shortcodes.
  • Residential proxy use is always enforced by the actor, regardless of proxyConfiguration.

Parameter reference

FieldTypeDescriptionDefaultRequired
startUrlsarray of stringsInstagram profile URLs (e.g., https://www.instagram.com/username), usernames (e.g., username), or post shortcodes (e.g., ABC123DEF). The actor auto-detects input type and extracts the profile username.โ€”Yes
maxPostsintegerMaximum number of posts to scrape per profile (1โ€“1000).10No
sortOrderstring enumOrder in which to sort the posts. One of: "newest", "oldest"."newest"No
maxCommentsintegerMaximum number of comments to extract per post (0โ€“100).0No
proxyConfigurationobjectProxy settings editor. Note: the actor always uses residential proxy regardless of your selection.{"useApifyProxy": false}No

Example JSON output

Each item in the dataset is an Instagram post object (original Instagram fields) with minimal additions: scraped_username, scraped_at, and post_url.

{
"id": "3727992219681477950_173560420",
"pk": "3727992219681477950",
"code": "DO8fSwLiNU-",
"media_type": 8,
"product_type": "carousel_container",
"taken_at": 1758631325,
"like_count": 7141379,
"comment_count": 72516,
"caption": {
"pk": "18057741581412011",
"created_at": 1758631327,
"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_verified": true
},
"image_versions2": {
"candidates": [
{
"url": "https://scontent-.../552825156_..._n.jpg",
"width": 1080,
"height": 1379
},
{
"url": "https://scontent-.../552825156_..._s640x640.jpg",
"width": 640,
"height": 817
}
]
},
"carousel_media_count": 3,
"carousel_media": [
{
"id": "3727992208725918329_173560420",
"media_type": 1,
"image_versions2": {
"candidates": [
{
"url": "https://scontent-.../552825156_..._n.jpg",
"width": 1080,
"height": 1379
}
]
}
}
],
"scraped_username": "cristiano",
"scraped_at": 1758728197,
"post_url": "https://www.instagram.com/p/DO8fSwLiNU-/"
}

Notes:

  • Nested objects like image_versions2 and carousel_media include multiple media candidates at different resolutions.
  • Additional Instagram-native fields (e.g., owner, display_uri, etc.) may be present depending on the post.

FAQ

Do I need to log in to scrape Instagram posts?

โœ… No. This Instagram web scraper for posts works without login. It extracts tokens from public pages and uses web endpoints to scrape Instagram posts without login.

Can I input post URLs or shortcodes instead of usernames?

โœ… Yes. You can paste post URLs or shortcodes, and the scraper will resolve the ownerโ€™s username automatically before scraping.

How many posts can I scrape per profile?

๐Ÿ“ˆ You control this with maxPosts (1โ€“1000). The actor paginates the profile feed and stops when the limit is reached or when no more posts are available.

What data fields are included in the output?

๐Ÿ“ฆ The actor preserves Instagramโ€™s native post structure (e.g., id, code, taken_at, media_type, product_type, like_count, comment_count, caption, user, image_versions2, carousel_media) and adds scraped_username, scraped_at, and post_url.

Can I export results to CSV or Excel?

๐Ÿ’พ Yes. Open the runโ€™s dataset in Apify and export your results in JSON, CSV, or Excel โ€” perfect for an Instagram posts to CSV scraper workflow.

Does it use proxies?

๐Ÿ›ก๏ธ Yes. The actor always uses residential proxies automatically (enforced) to improve reliability, regardless of the proxyConfiguration you select.

โš–๏ธ Yes, when done responsibly. Only scrape public content, comply with platform terms, and follow applicable privacy laws. Consult your legal team for specific use cases.

Can developers integrate this into pipelines?

๐Ÿ’ป Absolutely. Use Apifyโ€™s dataset API to pull results into your analytics stack or automation workflows for โ€œInstagram API scraping for postsโ€ scenarios.

Closing CTA / Final thoughts

The Instagram Posts Scraper is built to automate accurate, scalable extraction of public Instagram profile posts. With automatic input detection, enforced residential proxies, and structured outputs, itโ€™s a reliable IG posts scraper for marketers, developers, data analysts, and researchers. Export clean datasets (JSON/CSV/Excel), sort results by time, and integrate with your data pipelines to move faster from collection to insight. Start scraping smarter and turn public Instagram feeds into actionable intelligence today.