Instagram Posts Scraper – Profiles, Hashtags & URLs
Pricing
from $1.20 / 1,000 scraped posts
Instagram Posts Scraper – Profiles, Hashtags & URLs
Extract Instagram posts from profiles, hashtags and post URLs, with caption, likes, comments, post type, media URLs, mentions, tagged users and date. No login; works with Apify MCP and the API.
Pricing
from $1.20 / 1,000 scraped posts
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
72
Total users
6
Monthly active users
2 hours ago
Last modified
Categories
Share
What is Instagram Posts Scraper?
Instagram Posts Scraper turns Instagram profiles, hashtags or post links into one row per post: caption, hashtags, mentions, likes, comments, post type (image, carousel, video or Reel), publish time, image and video links, tagged users, and the account that posted it. Social media managers, brand and influencer marketers, researchers and AI agents use it to track what accounts post, how posts perform and what a hashtag looks like right now, with no Instagram login.
Why social teams use it for content research
- Profiles, hashtags and single posts in one run. Mix
natgeo,#travelphotographyand a post link together. - Performance at a glance.
like_count,comment_countandtimestampsit in every row for quick ranking. - Clean text fields.
hashtagsandmentionsare pulled out of the caption, ready for analysis. - Date filter.
onlyPostsNewerThankeeps only posts from the last few days, weeks or since a date. - Pay per post. One charge per post saved; repeated inputs are processed once.
How to use it
Latest posts from a few brands:
{"instagramUsernames": ["natgeo", "nasa", "https://www.instagram.com/nike/"],"maxPostsPerTarget": 20,"onlyPostsNewerThan": "30 days"}
What a hashtag looks like today, plus one specific post:
{"hashtags": ["#travelphotography", "streetphotography"],"directPostUrls": ["https://www.instagram.com/p/DdG4RIxIPyf/"],"maxPostsPerTarget": 10,"includeRecentComments": true}
| Input | What it controls |
|---|---|
instagramUsernames | Usernames, @handles or profile URLs |
hashtags | Hashtags, with or without # |
directPostUrls | Post, Reel or carousel links |
maxPostsPerTarget | Posts per profile or hashtag (default 50) |
onlyPostsNewerThan | A date like 2026-01-01 or a period like 7 days or 2 months |
includeRecentComments | Add up to 5 recent comments per post (default on) |
proxyConfiguration | Apify Proxy settings; Residential by default |
Want the full profile (followers, bio, contact) for these accounts? Continue with Instagram Profile Scraper linked below.
Output: Instagram post data you receive
A real row for a National Geographic Reel (long text and links shortened):
{"id": "3983118388705688735","shortcode": "DdG4RIxIPyf","url": "https://www.instagram.com/p/DdG4RIxIPyf/","post_type": "REEL","caption": "Presented by @Rolex. Welcome to Africa 🌍 Africa Earth’s Wild Home takes you deep into the heart of our wildest continent...","hashtags": ["rolex", "perpetualplanet"],"mentions": ["rolex", "wunmimosaku", "disneyplus", "hulu"],"like_count": 77869,"comment_count": 510,"is_video": true,"display_url": "https://scontent-iad3-1.cdninstagram.com/v/t51.82787-15/802503979_1869...","video_url": "https://scontent-iad3-1.cdninstagram.com/o1/v/t2/f2/m86/AQPDJtVww4K_68...","owner_username": "natgeo","owner_full_name": "National Geographic","owner_is_verified": true,"tagged_users": ["rolex"],"coauthors": ["rolex"],"is_sponsored": false,"timestamp": "2026-09-10T13:00:14.000Z","scraped_at": "2026-10-01T11:37:23.345Z","source_url": "https://www.instagram.com/p/DdG4RIxIPyf/"}
| Field | What it contains |
|---|---|
id, shortcode, url, post_type | The post and its type: IMAGE, CAROUSEL_ALBUM, VIDEO or REEL |
caption, hashtags, mentions, accessibility_caption | Post text, extracted tags and mentions, and Instagram's image description |
like_count, comment_count, video_view_count, video_duration | Engagement and video details when Instagram shows them |
display_url, media_urls, thumbnail_url, video_url | Image, carousel and video links |
owner_username, owner_full_name, owner_id, owner_is_verified | Who posted it |
tagged_users, coauthors, is_sponsored, is_pinned | Collaborations, paid partnerships and pinned posts |
location_name | The tagged place, when the post has one |
recent_comments | Up to 5 recent comments, with includeRecentComments |
timestamp, scraped_at, source_url | Publish time, collection time and the input that found the post |
OUTPUT in the default key-value store reports the run outcome and posts saved.
Example workflow: a monthly competitor content report
A skincare brand tracks five competitors. A scheduled task collects each account's posts with onlyPostsNewerThan set to 30 days. The team ranks posts by like_count, compares post_type counts to see who is leaning into Reels, and reads coauthors and is_sponsored to spot influencer partnerships. Then they collect the commenters on the top posts with Instagram Post Engagers Scraper to find engaged buyers.
Pricing
This Actor uses Pay per event plus Apify platform usage. You pay one event per post saved, a tiny per-result storage event, a start event and the platform usage of the run. The live Pricing tab on this page shows the current prices.
- 5 accounts × 20 posts = 100 post events + platform usage.
maxPostsPerTargetcaps each profile or hashtag, so it doubles as a cost ceiling.- Comments come at no extra event charge.
Post research with AI agents (MCP)
Connect this Actor to an AI agent through Apify MCP and ask in plain language:
Get NASA's Instagram posts from the last two weeks and tell me which ones got the most likes and comments.
Agent checklist:
- Put accounts in
instagramUsernames, tags inhashtags, or links indirectPostUrls. - Use
onlyPostsNewerThanfor recent posts and keepmaxPostsPerTargetclose to the request. - Read rows with
get-dataset-items; sort bylike_countorcomment_count. - Share
urlso the user can open each post.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~instagram-posts-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"instagramUsernames": ["natgeo"], "maxPostsPerTarget": 10, "onlyPostsNewerThan": "14 days"}'
Related Instagram tools from the same developer
| Your next step | Use | Why |
|---|---|---|
| When you then want account details | Instagram Profile Scraper | Followers, bio, website and public contacts |
| When you focus on Reels | Instagram Reels Scraper | Reels with video links, likes, comments and music |
| When you want the people engaging with posts | Instagram Post Engagers Scraper | Commenters on any public post |
| When you need emails and phones | Instagram Contact Scraper | Contacts from bio and contact button |
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| Tracking accounts over time | Schedule a task with onlyPostsNewerThan | Only new posts each run |
| Researching a trend | Add several related hashtags | A broad sample of current posts |
| Auditing one campaign | Paste the post links in directPostUrls | Exact stats for those posts |
| Lighter, faster runs | Turn off includeRecentComments | Post data without comment previews |
Builder's note
I found that most people judge posts by likes, comments and timing first, so those fields sit near the top of every row along with the post type. I learned that brand teams care a lot about partnerships, so coauthors, tagged_users and is_sponsored stay in the output for spotting influencer deals.
FAQ
Do I need an Instagram account?
No. The Actor reads public posts and needs no login or cookies.
How many posts can I get per account?
maxPostsPerTarget sets the number per profile or hashtag. Large accounts page through their post history until that number is reached.
Does it work with Reels and carousels?
Yes. post_type shows REEL, CAROUSEL_ALBUM, VIDEO or IMAGE, and media_urls lists every image in a carousel.
Why is video_view_count empty on some posts?
Instagram shows view counts for some videos and not others. Likes and comments are available on public posts that show them.
What happens with a username that does not exist?
It returns no posts and no post charge.
Responsible use
This Actor collects public Instagram posts, which can include personal data such as usernames and captions. Use it with a lawful basis under laws such as the GDPR and CCPA, respect creators' rights to their content, and follow Instagram's terms. Read Apify's guide on whether web scraping is legal for more context. Instagram is a trademark of Meta Platforms, Inc. This independent Actor is not affiliated with, associated with, or endorsed by Instagram or Meta. For questions or bugs, open a ticket in the Issues tab.