Instagram Posts Scraper – Profiles, Hashtags & URLs avatar

Instagram Posts Scraper – Profiles, Hashtags & URLs

Pricing

from $1.20 / 1,000 scraped posts

Go to Apify Store
Instagram Posts Scraper – Profiles, Hashtags & URLs

Instagram Posts Scraper – Profiles, Hashtags & URLs

Extract Instagram posts at scale from profiles and direct URLs. Get captions, likes, comments, media URLs, timestamps, tagged users, and more. Works without login. Stealth Playwright with rotating proxies.

Pricing

from $1.20 / 1,000 scraped posts

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

🔥 Instagram Posts Scraper – Profiles, Hashtags & URLs

Extract Instagram posts from any combination of profiles, hashtags, and direct post URLs — all in one actor. No login required. Returns captions, engagement metrics, media URLs, location, tagged users, and more.


What does Instagram Posts Scraper do?

Instagram Posts Scraper is a powerful, multi-input actor that extracts structured post data from Instagram's public pages. Unlike other scrapers that force you to use separate tools for profiles vs. hashtags, this actor handles all three input types in a single run: usernames, hashtags, and direct post URLs.

Feed it a mix of inputs and get back clean, structured JSON with everything you need — captions, hashtags, engagement metrics, media URLs, location tags, co-authors, tagged users, and optional recent comments.


Why use Instagram Posts Scraper?

  • All-in-one input — scrape profile posts, hashtag feeds, and specific post URLs in one run
  • Rich data output — 30+ fields including accessibility captions, co-authors, tagged users, and pinned/sponsored flags that basic scrapers miss
  • Date filtering — skip posts older than a specified date without wasting credit
  • No login required — works entirely on public Instagram data
  • MCP & AI ready — semantic field names and rich schema for seamless integration with Claude, ChatGPT, and other AI workflows
  • Competitive pricing — $0.0012/post on free tier, down to $0.0003 at Diamond

What data can Instagram Posts Scraper extract?

FieldTypeDescription
idstringInstagram internal post ID
shortcodestringShortcode used in the post URL
urlstringDirect link to the post
post_typestringIMAGE, VIDEO, CAROUSEL_ALBUM, or REEL
captionstringFull caption text
hashtagsarrayExtracted hashtags (no # symbol)
mentionsarrayExtracted @mentions
accessibility_captionstringAI-generated image alt text
like_countintegerNumber of likes
comment_countintegerNumber of comments
video_view_countintegerViews (videos/reels only)
video_play_countintegerPlays (videos/reels only)
video_durationnumberDuration in seconds
thumbnail_urlstringMain post thumbnail
display_urlstringFull resolution image URL
media_urlsarrayAll images in a carousel
video_urlstringDirect video file URL
owner_usernamestringPost author's username
owner_full_namestringPost author's display name
owner_is_verifiedbooleanVerified badge status
owner_follower_countintegerAuthor's follower count
location_namestringTagged location
location_idstringInstagram location ID
tagged_usersarrayUsers tagged in the post
coauthorsarrayCollaboration co-author usernames
is_pinnedbooleanWhether the post is pinned
is_sponsoredbooleanPaid partnership flag
is_reelbooleanWhether it's a Reel
comments_disabledbooleanWhether comments are off
timestampstringPost publish date (ISO 8601)
scraped_atstringScrape timestamp (ISO 8601)
recent_commentsarrayUp to 5 recent comments with text, username, timestamp, likes

How to use Instagram Posts Scraper

Step 1 — Choose your input type

You can mix and match all three input types in a single run:

By username (profile posts):

natgeo
nasa
https://www.instagram.com/natgeo/

By hashtag:

travel
#photography
nature

By direct post URL:

https://www.instagram.com/p/CxABCde1234/
https://www.instagram.com/reel/CxABCde5678/

Step 2 — Set your limits

  • Max Posts Per Target — How many posts to fetch per profile or hashtag (default: 50, max: 500)
  • Only Posts Newer Than — Skip old posts. Accepts YYYY-MM-DD or relative values like 7 days, 2 months, 1 year

Step 3 — Run and export

Click Start and your data will appear in the Output tab. Export as JSON, CSV, or Excel.

API usage example

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('khadinakbar/instagram-posts-scraper').call({
instagramUsernames: ['natgeo', 'nasa'],
hashtags: ['photography'],
maxPostsPerTarget: 100,
onlyPostsNewerThan: '30 days',
includeRecentComments: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} posts`);

Pricing

This actor uses Pay Per Event pricing — you only pay for posts that are successfully scraped.

PlanPrice Per Post
Free$0.0012
Bronze$0.0010
Silver$0.0009
Gold$0.0007
Platinum$0.0005
Diamond$0.0003

Example cost: Scraping 1,000 posts on a free plan = $1.20

There is also a small actor start fee of $0.00005 per run.


Use cases

Social media analytics — Track posting frequency, engagement trends, and content format performance across competitor profiles.

Influencer research — Identify high-performing creators in a niche by scraping hashtag posts and sorting by engagement rate.

Brand monitoring — Monitor @mentions and brand hashtags to discover user-generated content and brand conversations.

Content strategy — Analyze which post types (image, reel, carousel) get the most engagement in your niche.

Market research — Scrape posts from industry accounts and hashtags to identify trends and content gaps.

Lead generation — Extract public contact info and profile data from business accounts in your target market.

AI training data — Collect captioned images with accessibility_caption fields for computer vision and NLP model training.

Competitive intelligence — Monitor competitor brands' posting schedules, hashtag strategies, and engagement patterns.


Frequently asked questions

Does it require Instagram login? No. This scraper only collects publicly available data from Instagram's public pages. No login credentials are required.

Why do some posts have null values? Instagram doesn't always return every field for every post, especially video view counts for older content. Missing values are returned as null rather than empty strings.

Can I scrape private accounts? No. Only public Instagram profiles and posts are accessible without login.

What proxies does it use? The actor uses Apify's residential proxy pool by default, which is recommended for Instagram. Datacenter proxies are frequently blocked by Instagram's bot detection.

Can I schedule automatic runs? Yes — use Apify Scheduler to run the actor on any schedule (daily, weekly, etc.) and save your results to a dataset for trend analysis.

Why am I getting fewer posts than expected? Instagram limits how many posts are visible on public pages without authentication. The practical limit is typically 50-200 posts per profile scroll. For comprehensive historical data, consider multiple scheduled runs.

Does it work with Instagram Reels? Yes. Reels are returned with post_type: "REEL" and is_reel: true, including view counts and video duration.


Other actors you might find useful


This actor is designed for collecting publicly available data from Instagram in compliance with applicable laws. Users are solely responsible for ensuring their use complies with Instagram's Terms of Service, applicable privacy laws (including GDPR and CCPA), and any other relevant regulations. The actor author does not endorse or encourage any use that violates these terms. Data collected should not be used to harass, spam, or target individuals without their consent.

Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools and AI workflows.