Insta Post Insight Fetcher
Pricing
from $1.10 / 1,000 results
Go to Apify Store

Insta Post Insight Fetcher
Scrape public Instagram post and reel metrics by username, usernames list, post URL, or reel URL. Get likes, comments, views, captions, timestamps, and media links in structured JSON.
Pricing
from $1.10 / 1,000 results
Rating
0.0
(0)
Developer
Ghost Rider
Maintained by CommunityActor stats
0
Bookmarked
37
Total users
20
Monthly active users
4 days ago
Last modified
Categories
Share
Insta-Post-Insight-Fetcher
Apify actor that scrapes publicly visible Instagram post and reel metrics by username, usernames list, or direct Instagram URLs.
What it does
- Accepts an Instagram
username,@handle, or full profile URL. - Accepts bulk
usernamesinput with up to1000usernames per run. - Accepts direct Instagram
urlsfor posts and reels. - Scrapes recent public posts from a profile and/or direct media details from URLs.
- Returns public metrics such as likes, comments, views, caption, post URL, and timestamp.
- Uses
CheerioCrawlerwith a request queue to process profile and pagination requests. - Retries blocked requests with a fresh session, which is closer to how stable Apify marketplace actors behave.
- Uses cursor pagination to collect more than the default first page when Instagram allows it.
Input
{"username": "instagram","usernames": ["instagram","natgeo"],"postCount": 12,"urls": ["https://www.instagram.com/p/ABC123XYZ/","https://www.instagram.com/reel/XYZ123ABC/"],"proxyConfig": {"useApifyProxy": true}}
Input fields
username- optional Instagram username,@handle, or profile URL.usernames- optional list of up to1000usernames or profile URLs.postCount- optional number of recent posts to collect from the username profile, from1to100. Default is12.urls- optional list of direct Instagram post or reel URLs. The actor auto-detects the media type.proxyConfig- optional Apify proxy configuration for blocked or throttled requests.
How it works
- The actor can start with one profile request, many profile requests, one or more direct media URL requests, or any combination of them.
- For usernames, it parses the first page of public posts from each profile response.
- If more profile posts are needed, it adds GraphQL pagination requests to the queue.
- For direct Instagram URLs, it extracts the shortcode and detects whether the URL is a post, reel, or TV media URL automatically.
- When Instagram blocks a request, the crawler retires that session and retries the request.
- After the queue is drained, the actor pushes the collected posts to the dataset.
Output
Each dataset item contains one post or reel:
{"sourceType": "profile_post","inputUrl": null,"username": "instagram","fullName": "Instagram","userId": "25025320","profileUrl": "https://www.instagram.com/instagram/","postId": "1234567890","shortcode": "ABC123XYZ","postUrl": "https://www.instagram.com/p/ABC123XYZ/","mediaType": "image","isVideo": false,"caption": "Example caption","hashtags": ["example"],"mentions": ["example_user"],"likeCount": 1000,"commentCount": 42,"firstComment": "","latestComments": [],"viewCount": null,"playCount": null,"takenAt": "2026-05-25T10:00:00.000Z","thumbnailUrl": "https://...","dimensions": {"height": 1350,"width": 1080},"dimensionsHeight": 1350,"dimensionsWidth": 1080,"productType": "clips","videoUrl": "https://...","audioUrl": "https://...","videoDuration": 58.266,"taggedUsers": [],"coauthorProducers": [],"isCommentsDisabled": false,"musicInfo": {"artist_name": "Example Artist","song_name": "Example Song","audio_id": "123456789"},"scrapedAt": "2026-05-25T11:00:00.000Z"}
Important notes
- This actor extracts public web data only.
- It does not return private creator insights such as reach, impressions, saves, or shares.
- Reel/video
viewCountandplayCount(videoViewCount/videoPlayCountin output) are best-effort public metrics and can differ from the live Instagram app UI. - If only one of view/play is available from Instagram, the actor leaves the other field unset (they are different metrics — do not treat them as interchangeable).
- Instagram can throttle anonymous traffic. For better success, use
proxyConfig. - Proxy cost tip: do not enable Residential by default. Use plain Apify Proxy (
"useApifyProxy": truewith noapifyProxyGroups). Turn on Residential only when you see frequent blocks:"proxyConfig": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]} - For missing reel
videoViewCount/videoPlayCount, the actor uses anonymous enrichment (no login):- Browser in-page Polaris + profile Reels tab scroll
- Targeted Residential HTTP probe only when counts are still missing
- Residential browser as last resort
- Do not enable Residential for the whole crawl unless you need it; count fallback creates it automatically when needed.
- The actor is queue-based and session-aware, but Instagram can still change internal endpoints at any time.
- Direct URL scraping uses shortcode-based GraphQL lookup. If Instagram changes its
doc_idor payload shape, that part may need maintenance. - Pagination relies on Instagram's current web behavior, so long-range scraping may require maintenance if Instagram changes internal endpoints.
- The actor allows up to
1000usernames per run, but large batches can still return partial results if Instagram blocks pagination. - For large jobs, split profile scraping into smaller sequential batches such as
100usernames per run for better reliability.