Instagram Posts Scraper - Captions & Hashtags
Pricing
$1.50 / 1,000 posts
Instagram Posts Scraper - Captions & Hashtags
Scrape Instagram posts from any creator. Add usernames and extract captions, hashtags, mentions, tagged users, likes, comment counts, location, carousel images and timestamps. Filter posts by engagement or date and sort server-side. Export to JSON, CSV or Excel.
Pricing
$1.50 / 1,000 posts
Rating
0.0
(0)
Developer
orkait
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
📸 Instagram Posts Scraper
A creator's feed is a strategy document. This turns it into rows.
Scrape Instagram posts from any public creator. Just add Instagram usernames to get captions, hashtags, mentions, likes, comments, image URLs, location and timestamps. Export Instagram post data to JSON, CSV or Excel, or run it on a schedule.
✨ What makes this Instagram scraper different
| Most Instagram scrapers | This one | |
|---|---|---|
| Filtering | Returns everything, you filter afterwards | Filters before counting, so you pay for matches |
| Sorting | Whatever order the platform gave | Enforced with a stable tiebreaker, identical every run |
| Missing data | A silent 0 you cannot distinguish from a real zero | Named in meta.fields_unavailable |
| Bad input | Burns a run, then fails | Rejected before the request is made |
🎯 What can I do with Instagram Posts Scraper?
Audit a content strategy
Pull a year of posts, sort by likes, and the winning formats separate themselves.
{"targets": ["creator_username"],"limit": 200,"sortBy": "like_count","sortOrder": "desc"}
Get the hashtags without writing a regex
Hashtags and mentions arrive already parsed out of every caption.
{"targets": ["brand_account"],"filters": { "posted_after": "2026-01-01T00:00:00Z" }}
Monitor a brand account
Run it on a schedule and diff the output to catch new posts, campaigns and partnerships.
{"targets": ["brand_account"],"filters": { "paid_partnership_only": true }}
🧾 What can Instagram Posts Scraper do?
- Scrape all Instagram posts from any public account
- Get likes, comments and view counts per post
- Extract captions with hashtags and mentions already parsed out
- Get image URLs, dimensions and carousel counts
- Filter Instagram posts by engagement, date or hashtag
- Sort posts by newest or most liked
📋 What data can I scrape from Instagram posts?
| Field | Description |
|---|---|
id | Instagram media ID |
shortcode | Post shortcode |
url | Post permalink |
kind | post or reel |
caption | Post caption |
like_count | Likes |
comment_count | Comments |
view_count | Views |
taken_at | Publish time, UTC |
owner_username | Creator username |
owner_id | Creator Instagram ID |
hashtags | Hashtags parsed from the caption |
mentions | Mentions parsed from the caption |
image_urls | Image URLs, including carousels |
thumbnail_url | Cover image |
width / height | Media dimensions |
location | Tagged location |
is_paid_partnership | Sponsored content flag |
▶️ How to scrape Instagram posts
- Add your Instagram creator usernames to targets
- Set
limit, and optionally Sort by andfilters - Click Start
- Download the dataset as JSON, CSV, Excel or XML, or pull it from the API
⬇️ Input
| Field | Required | Description |
|---|---|---|
targets | yes | Instagram creator usernames. |
limit | no | Max items per target, applied after filtering. Default 15, max 5000. |
sortBy | no | Pick a field to order by. Leave empty for the default order. |
sortOrder | no | Highest first or lowest first. Defaults to highest first. |
filters | no | Applied before sorting and before the limit. |
{"targets": ["natgeo"],"limit": 50,"sortBy": "like_count","sortOrder": "desc","filters": {"posted_after": "2026-01-01T00:00:00Z"}}
🎛️ How to filter and sort Instagram posts
| Filter | Effect |
|---|---|
kind | post or reel |
min_like_count / min_comment_count | Engagement floors |
posted_after / posted_before | Date window |
caption_contains | Substring match on the caption |
hashtags_any | Keep posts using any of these hashtags |
paid_partnership_only | Only sponsored content |
Filters run before the row count, so a narrow filter costs less than a broad one. Sorting is applied with a stable tiebreaker, so two identical runs return identical order, and the sort you pick is applied server-side, not left to the platform.
⬆️ Output
One row per item, exportable as JSON, CSV, Excel or XML, or straight from the API.
📸 Extracted Instagram posts data sample
{"id": "3957463127796339198","shortcode": "Dbru79IAdH-","url": "https://www.instagram.com/p/Dbru79IAdH-/","kind": "post","caption": "A new era begins... #wildlife","like_count": 189113,"comment_count": 1241,"taken_at": "2026-08-06T14:04:20Z","owner_username": "natgeo","hashtags": ["wildlife"],"mentions": ["natgeowild"],"image_urls": ["https://..."],"is_paid_partnership": false}
🛡️ Why results stay reliable when Instagram changes
Instagram changes what it returns. When a field stops being available it does not
vanish from the schema: it comes back empty and meta.fields_unavailable names
it. You branch on that instead of guessing why a number is zero.
❓ FAQ
How many Instagram posts can I scrape?
Up to 5000 per username per run via limit, applied after filtering.
Can I scrape Instagram posts by date?
Yes. filters.posted_after and filters.posted_before set a date window, and naive values are read as UTC.
Can I get hashtags from Instagram posts?
Hashtags and mentions are parsed out of every caption into arrays, so you never write the regex yourself.
Can I scrape both Instagram posts and reels?
Yes, both come back by default. Set filters.kind to post or reel to narrow it.
How do I get the most liked Instagram posts?
Set Sort by to Likes.
Can I scrape Instagram carousel posts?
Yes. image_urls returns every image in a carousel, not only the cover.