Instagram Scraper All-in-One
Pricing
from $2.00 / 1,000 post or reels
Instagram Scraper All-in-One
Scrape Instagram profiles, posts, reels, tagged posts, hashtags, search results, story highlights, reels by audio and video transcripts from one actor.
Pricing
from $2.00 / 1,000 post or reels
Rating
0.0
(0)
Developer
Andrew
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape Instagram profiles, posts, reels, tagged posts, hashtag feeds, search results, story highlights, reels by audio track and video transcripts from a single actor. Pick a scrape type, paste your usernames, URLs, hashtags or keywords, and get clean, flat records you can export to JSON, CSV, Excel or Google Sheets. No login, no cookies, no proxies to manage.
What you can scrape
| Scrape type | What you get | Input field |
|---|---|---|
| Profile details (full) | Followers, following, post count, bio, bio links, contact email/phone, verification, business category, plus the 12 latest posts | Usernames |
| Profile details (basic) | The same profile record without the latest posts (cheaper, faster) | Usernames |
| User posts | Every post and reel from a profile grid with likes, comments, plays, media URLs and music | Usernames |
| User reels | Reels from the reels tab with play counts, duration and audio info | Usernames |
| Tagged posts | Posts where the account was tagged by other users | Usernames |
| Story highlights list | Every highlight cover on a profile with its ID, title and story count | Usernames |
| Story highlight items | Every story saved inside a highlight, with image/video URLs, links and mentions | Highlight IDs |
| Post / Reel details | Full metadata for a single post or reel, including carousel images and tagged users | Post URLs |
| Video transcript | Speech-to-text transcript of a reel or video post | Post URLs |
| Hashtag posts | Posts and reels under a hashtag, optionally reels-only or restricted to a date window | Hashtags |
| Search | Accounts, hashtags and places matching a keyword | Search queries |
| Search profiles | Full profile records (bio, follower counts, contact details) for every account matching a keyword | Search queries |
| Search reels by keyword | Reels matching a keyword, optionally restricted to a date window | Search queries |
| Reels using an audio | Every reel that uses a given audio track or original sound | Audio IDs |
Quick start
- Choose a scrape type from the dropdown.
- Fill in the input field shown in brackets next to it. Usernames accept plain handles,
@handlesor profile URLs; post URLs accept/p/,/reel/and/tv/links or bare shortcodes; hashtags work with or without#. - Set Max results per target for list-based types (default 100,
0for unlimited). - Click Start. Results stream into the Dataset tab as they arrive.
Example input:
{"scrapeType": "posts","usernames": ["natgeo", "nasa"],"maxItems": 50}
Output format
Every record carries a type field so mixed exports stay easy to filter. Posts and reels share one flat shape:
{"type": "reel","id": "3957463127796339198","shortCode": "Dbru79IAdH-","url": "https://www.instagram.com/reel/Dbru79IAdH-/","mediaType": "Video","caption": "This young cub could be king…","hashtags": ["natgeolion"],"mentions": ["disneyplus", "hulu"],"timestamp": "2026-08-06T14:00:02.000Z","username": "natgeo","fullName": "National Geographic","ownerId": "787132","ownerIsVerified": true,"likesCount": 212542,"commentsCount": 1623,"videoPlayCount": 9376735,"videoDuration": 62.08,"displayUrl": "https://…jpg","videoUrl": "https://…mp4","images": [],"music": { "audioId": "28139527835659346", "songName": "Original audio", "artistName": "natgeo" },"taggedUsers": [],"locationName": null,"isPaidPartnership": false,"source": "natgeo"}
Profiles:
{"type": "profile","id": "787132","username": "natgeo","fullName": "National Geographic","biography": "Step into wonder and find your inner explorer…","externalUrl": "http://visitstore.bio/natgeo","bioLinks": [],"followersCount": 268605892,"followsCount": 194,"postsCount": 31964,"isVerified": true,"isPrivate": false,"isBusinessAccount": true,"accountType": "business","businessCategory": null,"publicEmail": null,"publicPhone": null,"profilePicUrl": "https://…jpg","url": "https://www.instagram.com/natgeo/","latestPosts": [ { "type": "reel", "shortCode": "…" } ]}
Highlights (type: "highlight") return id, title, coverUrl, mediaCount and url; highlight items (type: "story") return displayUrl, videoUrl, timestamp, links and mentions. Search results are account, hashtag or place records with the matching query. Transcripts (type: "transcript") return language, transcript and the post's engagement metrics.
Need a field that is not in the normalized output? Turn on Include all available fields and every record carries the complete upstream payload under raw.
Use cases
- Influencer discovery — search profiles by keyword, then pull follower counts and contact details for outreach lists
- Competitor tracking — scrape a competitor's posts and reels on a schedule and watch engagement over time
- Content research — find the best-performing reels for a hashtag or keyword before planning a campaign
- Audio trend spotting — pull every reel built on a trending sound to see how creators are using it
- Video SEO and repurposing — transcribe reels into captions, blog posts or subtitles
- Lead generation — export business accounts with public emails and phone numbers from hashtag and search results
Options
- Max results per target — caps results per username, hashtag, query or audio ID. Applies to list-based scrape types.
- Only content posted within — restricts hashtag posts and reel searches to the last hour, day, week, month or year.
- Hashtag media type — return posts and reels, or reels only.
- Include all available fields — append the full upstream payload to each record under
raw.
Notes and limits
- Only public data is returned. Private accounts expose profile metadata but not their posts.
- Video transcripts work on videos up to 25 MB, take a few seconds each, and require a paid Apify plan. Videos with no speech return an empty transcript.
- Hashtag and keyword searches are ranked by Instagram and typically cap out at around 100–150 results per query. When a date filter is active on a ranked feed, the actor stops after several pages with no matching results to keep runs fast.
- Story highlight items need a highlight ID, which you get from the Story highlights list scrape type. Audio IDs come from the
music.audioIdfield of any reel result or from ainstagram.com/reels/audio/…URL. - On the free plan each run returns up to 20 results per target. Any paid plan lifts the limit.
Pricing
This actor uses pay per event: you are charged per record written to the dataset, so runs that return nothing cost nothing.
| Event | Charged for |
|---|---|
profile-result | Each profile returned |
post-result | Each post or reel from a profile, hashtag, keyword search or audio track |
post-detail-result | Each post or reel looked up by its own URL |
search-result | Each account, hashtag, place or profile returned by a search |
highlight-result | Each highlight cover returned by the highlights list |
story-result | Each story returned from a highlight |
transcript-result | Each started minute of audio transcribed (a 45-second reel is one event, a 90-second reel is two) |
Cap the spend of any run with the maximum cost option in the run settings. The actor stops cleanly when the cap is reached and keeps everything collected up to that point.
Integrations
Results land in a standard Apify dataset. Export them as JSON, CSV, Excel or XML, push them to Google Sheets, or fetch them from the Apify API, webhooks, Zapier and Make.