Insta Post Insight Fetcher avatar

Insta Post Insight Fetcher

Under maintenance

Pricing

from $1.10 / 1,000 results

Go to Apify Store
Insta Post Insight Fetcher

Insta Post Insight Fetcher

Under maintenance

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

Ghost Rider

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

2 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 usernames input with up to 1000 usernames per run.
  • Accepts direct Instagram urls for 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 CheerioCrawler with 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 to 1000 usernames or profile URLs.
  • postCount - optional number of recent posts to collect from the username profile, from 1 to 50. Default is 12.
  • 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 viewCount and playCount are best-effort public metrics and can differ from the live Instagram app UI.
  • Instagram can throttle anonymous traffic. For better success, use proxyConfig.
  • 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_id or 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 1000 usernames 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 100 usernames per run for better reliability.