Instagram Metrics Scraper - Posts, Reels & Profiles avatar

Instagram Metrics Scraper - Posts, Reels & Profiles

Pricing

from $2.00 / 1,000 instagram post metrics

Go to Apify Store
Instagram Metrics Scraper - Posts, Reels & Profiles

Instagram Metrics Scraper - Posts, Reels & Profiles

Collect clean metric rows for public Instagram posts, reels, carousels, and recent profile content. Get views, plays, likes, comments, collaborators, captions, IDs, media links, and status fields without fake zeroes.

Pricing

from $2.00 / 1,000 instagram post metrics

Rating

5.0

(1)

Developer

Chronometrica

Chronometrica

Maintained by Community

Actor stats

2

Bookmarked

27

Total users

23

Monthly active users

3 days ago

Last modified

Categories

Share

Instagram Metrics Scraper

๐Ÿ“Š What does Instagram Metrics Scraper do?

Instagram Metrics Scraper collects public metrics from Instagram post URLs, reel URLs, carousel URLs, shortcodes, profile URLs, and @handles.

Use it when you need clean Instagram rows for creator research, influencer reporting, campaign tracking, competitor monitoring, social analytics, dashboards, warehouse loads, and scheduled metric snapshots.

The Actor returns flat CSV/API-friendly rows with Instagram views, plays, likes, comments, public owner/collaborator context, IDs, captions, media links, duration, status fields, and count availability details.

This Actor does not log in, use cookies, scrape private Instagram content, collect comment text, scrape stories, scrape follower lists, or bypass Instagram access controls. It only returns data available from public Instagram content at run time.

With Instagram Metrics Scraper, you can:

  • ๐Ÿ“ˆ Track public Instagram post, reel, carousel, and image performance.
  • ๐Ÿ‘ค Discover recent public content from Instagram profile URLs and @handles.
  • ๐Ÿ‘€ Collect public views, plays, Instagram plays, likes, and comments when available.
  • ๐Ÿค Capture public owner and collaborator profiles in one clean collaboration field.
  • ๐Ÿ†” Extract useful IDs such as postId, shortCode, profileId, fbPostId, fbOwnerId, and carouselIds.
  • ๐ŸŽฌ Save captions, publish time, media type, media links, video duration, and audio presence when available.
  • ๐ŸŽฏ Check metric availability instead of treating every blank count as zero.
  • ๐Ÿ“ฆ Export results as JSON, JSONL, CSV, Excel, XML, RSS, or HTML.

๐Ÿ“ฆ What Instagram metric data can I extract?

Each dataset row represents one public Instagram content item with at least one public post metric.

Data groupExample fields
๐Ÿ”— Sourceplatform, inputUrl, postUrl, status, statusReason, scrapedAt
๐Ÿ†” Post identitypostId, fbPostId, shortCode, mediaType, publishedAt
๐Ÿงพ Post contenttitle, caption, downloadUrl, carouselIds, videoDurationSeconds, hasAudio
๐Ÿ‘ค CreatorprofileId, fbOwnerId, profileHandle, profileUrl, profileVerified, profileAvatarUrl
๐Ÿ“Š Metricsviews, plays, playsInstagram, likes, comments
๐ŸŽฏ Count qualitypostMetricStatus, profileMetricStatus
๐Ÿค CollaborationcollaborationCount, collaborationProfiles

Metric availability depends on what Instagram exposes publicly for each URL or profile. If a public count is unavailable, the Actor keeps it unavailable instead of filling it with a fake zero.

For reels and video posts, views, plays, and playsInstagram are kept as separate public counters. Some URLs expose one count but not the others, so missing values stay missing instead of being guessed or mixed.

collaborationProfiles contains the public owner and confirmed collaborators when available. Tagged accounts are not treated as collaborators by default.

โš™๏ธ Can I use this Actor through an API?

Yes. You can run Instagram Metrics Scraper manually in Apify Console or use it through:

  • Apify API
  • Python SDK
  • Node.js SDK
  • Webhooks
  • Scheduled runs
  • Apify integrations

This makes it useful for social media dashboards, influencer lists, competitive intelligence, creator databases, campaign reporting, data warehouses, and automated market research workflows.

๐ŸŽฏ Why scrape Instagram post and reel metrics?

Instagram public metrics help you understand which creators, posts, reels, campaigns, products, and competitors are gaining traction.

Use caseHow Instagram metric data helps
๐Ÿ“ˆ Track creator performanceMonitor public engagement across known creator post and reel URLs.
๐Ÿง‘โ€๐ŸŽค Research influencersCompare recent content performance, captions, collaborators, and profile context.
๐Ÿ“ฃ Measure campaignsCollect repeatable snapshots for campaign posts, reels, and creator deliverables.
๐Ÿ•ต๏ธ Monitor competitorsTrack public metrics for competing brands, products, and creator accounts.
๐Ÿค Audit collaborationsSee public owner and collaborator profiles in a single normalized field.
๐Ÿ“Š Build reporting workflowsFeed normalized Instagram metrics into dashboards, spreadsheets, APIs, and BI tools.
๐Ÿ”Ž Audit availabilitySeparate available, unavailable, blocked, invalid, and failed rows cleanly.

๐Ÿ’ต How much does scraping Instagram metrics cost?

Instagram Metrics Scraper uses Pay Per Event pricing. One billable event is one Instagram metric row written to the default dataset.

Use maxItems and maxItemsPerProfile to control result volume before a run. Start with a small batch of 3 to 10 URLs when testing a new URL list or profile set.

๐Ÿš€ How do I use Instagram Metrics Scraper?

  1. Create or log in to your Apify account.
  2. Open Instagram Metrics Scraper.
  3. Choose Auto-detect URLs, handles, and shortcodes, Post and reel URLs only, or Profile discovery only.
  4. Paste Instagram post URLs, reel URLs, profile URLs, @handles, shortcodes, or a mix of them.
  5. Set the maximum number of metric rows to collect.
  6. Leave the default settings for your first run.
  7. Click Start.
  8. Open the Output tab to inspect the dataset and run summary.
  9. Download your data in JSON, JSONL, CSV, Excel, XML, RSS, or HTML.

โฌ‡๏ธ Input

The main input is startUrls. Paste at least one Instagram content URL, profile URL, @handle, or shortcode. https:// is optional for normal Instagram URLs.

In Auto-detect URLs, handles, and shortcodes mode, you can paste direct content URLs and profile inputs into the same list. The Actor combines direct content and profile-discovered content under one shared metric row cap.

{
"mode": "contentUrls",
"startUrls": ["https://www.instagram.com/reel/DIwcCZgxVZP/"],
"maxItems": 1
}

๐Ÿ”— Instagram URLs and handles

Supported input shapes include:

https://www.instagram.com/reel/CODE1234567/
https://www.instagram.com/p/CODE7654321/
https://www.instagram.com/tv/CODE2222222/
www.instagram.com/reel/CODE1234567/
CODE1234567
https://www.instagram.com/mrbeast/
@mrbeast

Use direct URLs when you need exact known media. Use profile discovery when you want recent public content from a creator, brand, or competitor profile.

๐Ÿ‘ค Profile discovery

Use profile discovery when you want the Actor to find recent public posts and reels from an Instagram profile before collecting metrics.

{
"mode": "profileUrls",
"startUrls": ["@mrbeast"],
"maxItems": 25,
"maxItemsPerProfile": 10
}

Use maxItemsPerProfile to control how many public content URLs are discovered from each profile input. The shared maxItems cap still limits total output rows for the whole run.

๐ŸŽ›๏ธ Settings

OptionWhat it does
modeauto to detect mixed inputs, contentUrls for content URLs only, or profileUrls for profiles.
startUrlsInstagram content URLs, shortcodes, profile URLs, or @handles.
maxItemsMaximum metric rows to save across the whole run.
maxItemsPerProfileMaximum public content URLs to discover from each profile input.

โฌ†๏ธ Output sample

The results are stored in the default dataset. Each result is one Instagram metric row.

{
"platform": "instagram",
"inputUrl": "https://www.instagram.com/reel/CODE1234567/",
"postUrl": "https://www.instagram.com/reel/CODE1234567/",
"postId": "3922329444068919711",
"fbPostId": "18066137273686492",
"shortCode": "CODE1234567",
"mediaType": "reel",
"title": null,
"caption": "Example campaign reel #launch",
"publishedAt": "2026-06-23T13:00:00.000Z",
"profileId": "123456789",
"fbOwnerId": "17841400000000000",
"profileHandle": "examplebrand",
"profileUrl": "https://www.instagram.com/examplebrand/",
"profileVerified": true,
"profileAvatarUrl": "https://scontent.cdninstagram.com/avatar.jpg",
"downloadUrl": "https://scontent.cdninstagram.com/example.mp4",
"carouselIds": null,
"videoDurationSeconds": 42.1,
"hasAudio": true,
"views": 1234567,
"plays": 1234999,
"playsInstagram": 1234888,
"likes": 23456,
"comments": 345,
"postMetricStatus": [
{
"metric": "views",
"value": 1234567,
"status": "present",
"precision": "exact",
"rawValue": 1234567
}
],
"collaborationCount": 1,
"collaborationProfiles": [
{
"id": "123456789",
"handle": "examplebrand",
"url": "https://www.instagram.com/examplebrand/",
"role": "owner"
}
],
"profileMetricStatus": [
{
"metric": "profileFollowersCount",
"value": null,
"status": "unavailable",
"precision": "unavailable",
"rawValue": null
}
],
"status": "ok",
"statusReason": null,
"scrapedAt": "2026-06-24T15:00:00.000Z"
}

inputUrl preserves the input that produced the row. postUrl is the resolved public Instagram content URL.

When a saved row has a missing public metric, that metric is returned as null, not 0. Inputs with no public views, plays, playsInstagram, likes, or comments are reported in OUTPUT and are not saved as dataset rows.

๐ŸŽฏ Metric status

Instagram can expose exact, rounded, delayed, hidden, or unavailable counters depending on content type and public visibility. The status fields make that visible:

  • present: the metric was found.
  • unavailable: Instagram did not expose the metric publicly for that row.
  • not_attempted: the metric was not attempted for that row.
  • exact: the public value appeared as a full integer.
  • display_rounded or likely_rounded: the public value was rounded.

This lets you filter rows without guessing whether a blank value means zero.

๐Ÿ‘€ Views and plays

For reels and video posts, the Actor keeps video count families separate:

  • views
  • plays
  • playsInstagram

These fields may differ or appear independently. Keeping them separate makes the dataset safer for analytics and prevents one public count from silently filling another.

๐Ÿค Collaborations

collaborationProfiles contains the public owner and confirmed collaborators for a post when available. Each profile includes:

  • id
  • handle
  • url
  • role, either owner or collaborator

Tagged accounts are not treated as collaborators by default.

๐Ÿšฆ Status values

Saved rows use explicit statuses, and no-metric or failed inputs are summarized in OUTPUT:

StatusMeaning
okPublic content was resolved and at least one useful public metric or metadata field was collected.
resolved_no_public_metricsThe input resolved, but public metric fields were not exposed for that item.
invalid_inputThe input was not a valid Instagram URL, shortcode, or handle.
unsupported_urlThe URL is an Instagram surface this Actor does not support.
blocked_or_challengedInstagram returned a login, challenge, unavailable, or blocked response.
failedThe input could not be resolved after retry.

Runs with setup issues, zero discovered profile content, blocked responses, or no exposed public post metrics finish with a clear OUTPUT summary instead of ending as failed runs. Check OUTPUT.stopReason, OUTPUT.statusMessage, OUTPUT.skippedNoPostMetricRows, and OUTPUT.validationErrors when no metric rows are saved.

โš ๏ธ Notes and limitations

  • Public metrics can be hidden, rounded, delayed, or unavailable.
  • Reels and video posts may expose different view and play counters.
  • Image posts and carousels do not always have video-specific metrics.
  • Profile discovery returns recent public content and may return fewer rows than requested.
  • Private, deleted, login-only, age-gated, or restricted content returns status rows instead of private data.
  • Media links can expire or become unavailable after collection.
  • This Actor is not affiliated with Instagram or Meta.