Instagram Search Scraper - Public Reels & Metrics avatar

Instagram Search Scraper - Public Reels & Metrics

Pricing

from $3.00 / 1,000 enriched instagram search results

Go to Apify Store
Instagram Search Scraper - Public Reels & Metrics

Instagram Search Scraper - Public Reels & Metrics

Search public Instagram Reels by keyword and export ranked results, creators, captions, and public engagement metrics. No Instagram login or cookies required.

Pricing

from $3.00 / 1,000 enriched instagram search results

Rating

0.0

(0)

Developer

Chronometrica

Chronometrica

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

๐Ÿ“Š What does Instagram Search Scraper do?

Enter one keyword or phrase. Get a ranked list of public Instagram Reels. Each row can include the Reel URL, title, caption, hashtags, mentions, creator, media URL, publish time, views, plays, likes, comments, and clear metric status.

The Actor does not need an Instagram login, cookies, or account details.

Use it for public content research, trend checks, creator discovery, campaign research, and scheduled monitoring.

With Instagram Search Scraper, you can:

  • ๐Ÿ”Ž Find public Reels for one topic.
  • ๐Ÿ“Š Add public post metrics when Instagram shows them.
  • โšก Turn metric checks off for a faster URL and rank search.
  • ๐Ÿงน Remove duplicate Reels from each run.
  • ๐Ÿ“ฆ Export results as JSON, JSONL, CSV, Excel, XML, RSS, or HTML.
  • ๐Ÿšฆ See why a metric was present, unavailable, or skipped.

๐Ÿ“ฆ What Instagram data can I extract?

Each dataset row represents one public Instagram Reel found for the entered keyword.

Data groupExample fields
๐Ÿ”Ž Search contextsearchQuery, searchUrl, searchRank
๐Ÿ”— Reel identitypostUrl, postId, shortCode, mediaType
๐Ÿงพ Reel detailstitle, caption, hashtags, mentions, publishedAt, thumbnailUrl, downloadUrl, videoDurationSeconds, hasAudio
๐Ÿ‘ค CreatorprofileId, profileName, profileHandle, profileUrl, profileVerified, profileAvatarUrl
๐Ÿ“Š Public metricsviews, plays, playsInstagram, likes, comments
๐ŸŽฏ QualitypostMetricStatus, metricEnrichmentStatus, status, statusReason
๐Ÿ•’ ObservationscrapedAt

Missing public values stay null. They are not guessed and are not changed to zero.

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

Yes. Run it in Apify Console or connect through:

  • Apify API
  • Python SDK
  • JavaScript SDK
  • Webhooks
  • Schedules
  • Apify integrations

๐ŸŽฏ Why search public Instagram Reels?

Use caseHow the data helps
๐Ÿ“ˆ Trend researchCompare public Reels and language around a topic.
๐Ÿ•ต๏ธ Competitor researchFind public campaign and content examples.
๐Ÿ‘ค Creator discoveryFind public creators posting about a topic.
๐Ÿงฑ Data pipelinesSend clean Reel rows to a sheet, database, or dashboard.
โฑ๏ธ MonitoringRepeat the same keyword and compare observed results over time.

๐Ÿ’ต Pricing events

The Store price uses two events, but each paid row charges only one. A fast row charges the search-result event. A row whose public post check returns useful metrics or metadata charges the enriched-result event instead.

Current price per saved row:

Apify planSearch-only rowEnriched row
Free$0.0015$0.00500
Bronze$0.0013$0.00433
Silver$0.0011$0.00367
Gold$0.0010$0.00300
Platinum$0.0010$0.00300
Diamond$0.0010$0.00300

Apify platform usage is separate and is paid by the user. Metric checks take longer. Turn includeMetrics off when you only need Reel URLs and ranks.

Empty searches and failed runs do not save or charge rows. A failed enrichment can still save and charge the cheaper search-only row. The Actor also respects the run's maximum charge by stopping before work that cannot fit.

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

  1. Open the Actor in Apify Console.
  2. Enter one keyword or phrase.
  3. Choose the maximum number of unique Reels to save.
  4. Keep metric checks on when you need public metrics.
  5. Click Start.
  6. Open Output to inspect the rows and run summary.

โฌ‡๏ธ Input

{
"query": "sports news",
"maxResults": 10,
"includeMetrics": true
}
SettingWhat it controls
queryOne keyword or phrase. Required. From 1 to 100 characters after spaces are cleaned.
maxResultsMaximum unique Reel rows saved after duplicate removal. From 1 to 64. Default: 25. This is a cap, not a promised count.
includeMetricsChecks every saved Reel for public metrics and creator details. Default: true. Turn it off for a faster, lower-cost search.

โฌ†๏ธ Output sample

{
"platform": "instagram",
"searchQuery": "sports news",
"searchUrl": "https://www.instagram.com/popular/sports-news/",
"searchRank": 1,
"postUrl": "https://www.instagram.com/reel/ABC123/",
"postId": "123456789",
"shortCode": "ABC123",
"mediaType": "reel",
"title": "A public Reel title",
"caption": "A public Reel caption",
"hashtags": ["sports", "news"],
"mentions": ["example"],
"publishedAt": "2026-07-20T12:00:00.000Z",
"thumbnailUrl": "https://example.cdn.invalid/image.jpg",
"downloadUrl": "https://example.cdn.invalid/video.mp4",
"videoDurationSeconds": 18.4,
"hasAudio": true,
"profileId": "987654321",
"profileName": "Example Creator",
"profileHandle": "example",
"profileUrl": "https://www.instagram.com/example/",
"profileVerified": false,
"profileAvatarUrl": null,
"views": 1200,
"plays": 1300,
"playsInstagram": null,
"likes": 90,
"comments": 4,
"postMetricStatus": [
{
"metric": "views",
"status": "present",
"reason": null,
"precision": "exact",
"source": "public_post"
},
{
"metric": "plays",
"status": "present",
"reason": null,
"precision": "exact",
"source": "public_post"
},
{
"metric": "playsInstagram",
"status": "unavailable",
"reason": "Instagram did not expose this metric publicly for this Reel at collection time.",
"precision": "unavailable",
"source": "public_post"
},
{
"metric": "likes",
"status": "present",
"reason": null,
"precision": "exact",
"source": "public_post"
},
{
"metric": "comments",
"status": "present",
"reason": null,
"precision": "exact",
"source": "public_post"
}
],
"metricEnrichmentStatus": "partial",
"scrapedAt": "2026-07-20T12:01:00.000Z",
"status": "ok",
"statusReason": null
}

The real postMetricStatus array always contains five entries in this order: views, plays, playsInstagram, likes, and comments.

๐Ÿ“Œ Run summary

The OUTPUT and RUN_SUMMARY records contain the same public summary:

{
"actorName": "instagram-search-scraper",
"schemaVersion": "1.1.0",
"resultType": "instagram_public_keyword_reel",
"rowGrain": "one_public_instagram_reel_per_keyword_result_row",
"status": "succeeded",
"statusReason": null,
"query": "sports news",
"maxResults": 10,
"includeMetrics": true,
"candidatesSeen": 12,
"uniqueCandidatesSeen": 12,
"duplicatesSkipped": 0,
"savedRows": 10,
"usefulRows": 10,
"billableRows": 10,
"enrichmentAttempted": 10,
"enrichmentSucceeded": 7,
"enrichmentPartialOrFailed": 3,
"searchAttemptCount": 1,
"searchRetryCount": 0,
"searchRecoveredByRetry": false,
"stopReason": "limit_reached",
"startedAt": "2026-07-20T12:00:00.000Z",
"finishedAt": "2026-07-20T12:01:00.000Z"
}

๐ŸŽฏ Status and quality fields

  • present: Instagram exposed the metric publicly.
  • unavailable: Instagram did not expose the value, or the public check could not finish. Read reason.
  • skipped: includeMetrics was turned off.
  • exact: the public source returned a full number.
  • rounded: the public source showed a rounded number.
  • metricEnrichmentStatus: succeeded, partial, failed, or skipped for the whole Reel.

๐Ÿ”’ Data scope

This Actor collects public Instagram Reels. Private content is not supported.

โš ๏ธ Limits and interpretation

  • maxResults is a maximum. Instagram may expose fewer public Reels.
  • Metrics can be missing even when the Reel itself is public.
  • Repeated runs are new observations. Instagram can change results and metrics between runs.

โ“ FAQ

No.

Why did I get fewer rows than maxResults?

The field is a cap. Instagram may return fewer public Reels for that phrase.

Why is a metric null?

Instagram did not expose it publicly, the public check could not finish, or you turned metric checks off. Read the matching postMetricStatus entry.

How are duplicates removed?

Rows are deduplicated by Instagram Reel shortcode before metric checks and saving.

Use public data responsibly. Follow applicable laws, Instagram's terms, and the rights of people whose public content you collect. This Actor does not grant rights to reuse Instagram content.

๐Ÿ›Ÿ Support

When asking for help, include the Apify run ID, input, expected result, one bad or missing row, and the time of the run. Do not send Instagram passwords, cookies, or private account material.