Instagram Reels Search | $0.4/1K Reels + $0.002 per Page avatar

Instagram Reels Search | $0.4/1K Reels + $0.002 per Page

Pricing

from $0.40 / 1,000 reel results

Go to Apify Store
Instagram Reels Search | $0.4/1K Reels + $0.002 per Page

Instagram Reels Search | $0.4/1K Reels + $0.002 per Page

Search public Instagram Reels by keyword for $0.40 per 1,000 saved Reels plus $0.002 per successfully fetched page. One page per query by default. No login, cookies, browser, or proxy setup.

Pricing

from $0.40 / 1,000 reel results

Rating

0.0

(0)

Developer

Public Signal Labs

Public Signal Labs

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

19 hours ago

Last modified

Share

Search current public Instagram Reels by keyword for $0.40 per 1,000 saved Reels plus $0.002 per successfully fetched page. One page per query is the default. No Instagram login, cookies, browser, or proxy setup.

What this Actor does

  • Searches Instagram's current ranked public Reel results for one or more free-text queries
  • Fetches up to 10 pages separately for each paying query
  • Removes duplicate Reel IDs across pages of the same query
  • Preserves the same Reel separately when it appears under different queries
  • Returns Reel, engagement, media, audio, and public creator fields
  • Exports normalized rows to JSON, CSV, Excel, XML, and API workflows

Use it for public content discovery, trend research, creative analysis, campaign research, and repeatable keyword-monitoring workflows.

Quick start

  1. Enter one or more free-text searches.
  2. Choose the maximum pages to fetch for each query.
  3. Run the Actor, then open or export the default dataset.
{
"queries": ["home workout", "sourdough starter"],
"maxPagesPerQuery": 1
}

Input

FieldRules
queriesRequired array of free-text searches. Leading/trailing whitespace is removed, equivalent Unicode/case variants are deduplicated, and first occurrence order is retained. Paying users may provide 1–10 unique queries; plan-specific limits are detailed in Pricing. Each query is limited to 100 Unicode code points.
maxPagesPerQueryOptional integer from 1 through 10; default 1. Applied separately to each query. Plan-specific effective limits are detailed in Pricing. This is a maximum page count, not a row guarantee.

Unknown input properties, empty queries, control characters, invalid types, and out-of-range values are rejected before extraction begins.

Dataset rows

One row represents one charged, unique Reel for one submitted query. A Reel may appear once—and incur one result event—for each distinct query because its query provenance is meaningful. Duplicate Reel IDs from later pages of the same query are suppressed and are not charged again.

{
"query": "home workout",
"query_index": 0,
"page_number": 1,
"page_rank": 1,
"rank": 1,
"id": "1234567890",
"shortcode": "ExampleCode",
"reel_url": "https://www.instagram.com/reel/ExampleCode/",
"caption": "Example caption #fitness",
"hashtags": ["fitness"],
"mentions": [],
"taken_at": "2026-01-01T12:00:00Z",
"play_count": 1000,
"like_count": 100,
"comment_count": 10,
"share_count": 5,
"duration_seconds": 12.5,
"thumbnail_url": "https://...",
"video_url": "https://...",
"width": 1080,
"height": 1920,
"author_id": "987654321",
"author_username": "example_creator",
"author_full_name": "Example Creator",
"author_is_verified": false,
"author_is_private": false,
"audio_title": "Original audio",
"audio_artist": "Example Creator"
}
Field groupMeaning
query, query_indexNormalized submitted search and its zero-based order
page_number, page_rank, rankFirst page/order where the Reel appeared and its unique query rank
id, shortcode, reel_urlStable Reel identity and canonical public URL
caption, hashtags, mentions, taken_atCurrent public caption metadata and publication time
play_count, like_count, comment_count, share_countCurrent engagement values when exposed
duration_seconds, thumbnail_url, video_url, width, heightCurrent media metadata; external media URLs can expire
author_*Current public creator identity and account flags
audio_title, audio_artistCurrent audio/music attribution when exposed

Nullable fields are returned as null when Instagram does not expose a valid value. The default dataset contains customer rows only; run summaries are not mixed into exports.

Pricing

$0.40 per 1,000 saved unique Reels + $0.002 per successfully fetched page.

ExampleCharge
1 valid empty page$0.0020
1 page with 12 saved Reels$0.0068
2 pages with 20 saved Reels$0.0120

Only saved unique Reels are billed. Duplicate or malformed Reels are not. A valid empty or duplicate-only page costs $0.002; failed pages are not billed. The minimum run spending limit is $0.0024, enough for one page and one saved Reel.

FREE demo limits

FREE Apify accounts can run this Actor up to 5 times per UTC calendar month. Each admitted FREE run accepts exactly one query and fetches at most one page per query; a larger submitted maxPagesPerQuery is reduced to one before extraction. Console, CLI, API, schedules, webhooks, MCP, and other Apify launch methods share the same account allowance. A run counts once admitted even when it is later aborted or unsuccessful, and resurrecting it does not start another extraction. Creating another task or API token does not reset the allowance. FREE runs use the same billing, dataset, and output contracts as paid runs. Paid Apify users are not subject to these demo limits.

Run summary

The default key-value store contains:

  • OUTPUT — overall status, Reel and page prices, maximum requested page charge, delivered/charged Reel totals, charged pages, and sanitized per-query outcomes
  • AUDIT — aggregate request, retry, byte, mapping, duplicate, Reel/page-charge, storage, and timing reconciliation metrics

Per-query outcomes report requested/fetched/charged pages, raw/mapped/unique/skipped counts, duplicate suppression, whether more pages were reported, and a stable stop reason.

Overall status is one of:

  • SUCCEEDED
  • PARTIAL
  • FAILED
  • CHARGE_LIMIT_REACHED

A run can be PARTIAL when one query fails while another succeeds. Account-wide configuration or capacity failures stop later queries safely.

Admitted FREE runs include a freeTier object with the UTC month, claimed slot, remaining allowance, effective page limit, and policy version. Rejected FREE runs use stable reasons such as free_monthly_limit, free_run_already_consumed, or free_quota_unavailable. The record never contains an Apify user ID, API token, or internal quota-storage identifier.

Allowance exhaustion and replay complete the Apify run successfully, while OUTPUT.status remains FAILED; the stable stopReason/freeTier.outcome remains machine-readable, and identity/quota verification errors still fail the platform run.

Pagination and stopping behavior

Queries and pages run sequentially so spending-limit checks, billing order, and query provenance remain deterministic.

For each query, extraction stops when:

  • maxPagesPerQuery is reached;
  • Instagram reports no more pages;
  • either next-cursor component is absent;
  • the run cannot charge another page or at least one Reel result within its spending limit;
  • the query encounters a terminal failure.

A page that adds zero new Reels does not by itself stop pagination. A later page can still contain new Reel IDs.

Instagram can return the same cursor pair for consecutive pages while changing the ranked results. An unchanged cursor therefore remains eligible for another bounded page request. The strict 10-page maximum prevents unbounded loops.

This version intentionally does not expose continuation tokens. Start a new search run when you need a fresh ranked snapshot.

Limitations

This Actor:

  • returns Instagram's current ranked public Reel search snapshot, not an exhaustive index;
  • cannot guarantee stable ordering, fixed page sizes, minimum row counts, or repeatable results;
  • may return fewer unique rows on deeper pages because Instagram can repeat Reel IDs;
  • does not search private content or bypass access controls;
  • does not perform profile enrichment, hashtag-feed extraction, historical accumulation, or custom sorting;
  • does not filter by date, language, engagement, or creator size;
  • does not guarantee that external thumbnail or video URLs remain available;
  • does not require or accept customer Instagram credentials, cookies, sessions, or proxy configuration.

API and CLI use

Call the Actor through the standard Apify Actor Runs API. Read Reel rows from the default dataset and reconciliation metadata from the OUTPUT and AUDIT records.

apify actors call publicsignallabs/instagram-reels-search \
--input '{"queries":["home workout"],"maxPagesPerQuery":1}' \
--output-dataset

The Actor also works with the Apify JavaScript and Python clients, REST API, schedules, webhooks, and platform integrations.

Responsible use

Collect and use public data only where you have a lawful purpose. Respect privacy, intellectual-property rights, platform rules, and applicable data-protection law. Minimize retained data, secure exports, and delete records when no longer needed.

This Actor is unofficial and is not affiliated with or endorsed by Instagram or Meta.

Support

Use the Issues tab on this Actor's Apify page. Include the run ID, expected result, and observed result. Never include API tokens, cookies, credentials, or private data.