POST /v1/instagram/reels_searchInstagram Reels Search Scraper API
Find Instagram reels for a keyword through search-engine results, then open each reel for its owner, caption, likes, comments, views, duration, audio, cover image and MP4 link.
- Cost
- 3 credits
- Failed requests
- Refunded
- Cache hits
- Free
- Response fields
- 7
- Limits
- Up to 10 reels · search-engine coverage
What the Instagram Reels Search Scraper API does
The Instagram Reels Search Scraper API finds public reels for a keyword and returns each one with owner, caption, like and comment counts, plays when available, publish time, duration, size, sound, cover image and an MP4 link. Instagram's own search requires a login, so reels are found through a public search engine's index and then opened on Instagram one by one. That has honest consequences: coverage, freshness and order follow the index, new reels appear with a delay and popular reels are not guaranteed. Filter with date_posted (last-week, last-month or last-year) and page through up to 10 result pages of about 10 reels each. A call can take 10 to 30 seconds. Each request costs 3 credits, and a fully blocked search is refunded.
What you get
Top-level fields of the response. Every field is typed and documented; nullable fields are null when the platform does not show them.
| Field | Type | Description |
|---|---|---|
query | string | Query as searched (whitespace-collapsed, site: operators removed) |
date_posted | string | null | 'last-week', 'last-month', 'last-year' or null (any time) |
page | integer | Results page returned |
reels | array<object> (20 fields each) | Reels in search-engine order, at most limit |
reels_found | integer | Distinct reels found on this results page, before limit |
reels_fetched | integer | Reels whose details were read (details_available true) |
has_more | boolean | The search engine has another results page (request page + 1) |
Request example
Send the API key as a Bearer token. The body is a small JSON object.
curl -X POST https://api.scrapeeverything.com/v1/instagram/reels_search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"dogs","date_posted":"last-month"}'| Parameter | Required | Description |
|---|---|---|
query | Yes | Keyword or phrase to search for, 1-100 characters. site: and !bang operators are ignored. |
date_posted | No | Only reels the search engine dates within this window: last-week, last-month or last-year. Omit for any time. |
page | No | Search results page, about 10 reels per page. Values outside 1-10 are rejected. |
limit | No | How many of the page's reels to open for full details. |
What it costs
Each successful request costs 3 credits. Your first 100 credits are free. With credit packs, 1,000 requests to this endpoint cost:
Builder pack
$4.68
25,000 credits for $39.00
Growth pack
$3.57
100,000 credits for $119.00
Scale pack
$2.69
500,000 credits for $449.00
See pricing for all packs and rate limits.
Use cases
- Discover creators who publish reels about a topic, product category or location.
- Find recent reels that mention your brand or a competitor's product.
- Collect reels on a niche for content and format research.
Limitations: Unofficial API: not affiliated with or endorsed by the platform. Public data only, as a logged-out visitor sees it. Private accounts return profile fields only; posts show at most 15 newest comments; items Instagram hides from logged-out visitors are missing.
- Instagram's own search needs a login, so reels are found through a public search engine's index (DuckDuckGo, query site:instagram.com/reel <query>). Coverage, freshness and order follow that index, not Instagram: new reels show up with a delay and popular reels are not guaranteed.
- date_posted uses the date the search engine assigns to each page, which is usually but not always the posting date. Check taken_at for the exact publish time.
- Up to limit reels are opened on Instagram one by one, so a call can take 10-30 seconds. A reel that cannot be read stays in the list with its search_title and search_snippet, details_available false and the reason in details_error.
- video_url is a signed CDN link that stops working at video_url_expires_at, usually within a few days. Download it before then, for example: curl -L -o reel.mp4 "<video_url>"
- page above 1 needs an extra search request and is blocked by the search engine more often. If the search engine blocks the request, or Instagram blocks every reel on the page, the call fails (usually TARGET_BLOCKED) and the credits are refunded.
Questions
Does it use Instagram's search?
No. Instagram search needs a login, so reels are found through a public search engine's index. Results follow that index, so new reels show up with a delay.
How many reels do I get per request?
Up to 10 per results page (limit sets how many are opened). Use page 1 to 10 for more; has_more tells you whether another page exists.
Why do some reels have no details?
A reel that cannot be read stays in the list with its search_title and search_snippet, details_available false and the reason in details_error, for example NOT_A_REEL or PRIVATE_ACCOUNT.
How much does the Instagram Reels Search Scraper API cost?
3 credits per successful request. Credits are bought in one-time packs and never expire. New accounts get 100 free credits. No payment details needed.
Am I charged for failed requests?
No. If the platform blocks the request, it times out or something fails on our side, the credits are refunded automatically. A definitive answer such as "this account does not exist" is billed because the lookup completed.
Can I re-read a result without paying again?
Yes. Send cache_days (1 to 14) and a repeat request for the same target within that window is served from your cache for free.
More Instagram endpoints
Start with 100 free credits.
Continue with Google, create an API key and send your first request in under a minute.