> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-reels-search>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-reels-search.mdx>

---

# Instagram Reels search API

Search public Instagram Reels by keyword and page through them with a cursor — ids, captions, owners, metrics, audio and media URLs in structured JSON.

`GET /v2/instagram/reels/search` takes a required `query` string and an optional `cursor`, and returns matching public Reels in the shared Social Fetch envelope (`meta.version` is `v2`). Reels come in Instagram's own relevance order, so popular Reels rank first. Read `data.media` and `data.page`: when `data.page.hasMore` is true, pass `data.page.nextCursor` as `cursor` on the next call and keep the same `query`. A page can hold only a few Reels (the first page often does), or none while `hasMore` is still true, so keep paging until it is false. Narrow queries end early; broad ones run for many pages.

Each item is the same media object every v2 endpoint returns: a digit `id`, `shortcode`, `url`, `kind` (always `reel` here), `caption`, `createdAt` (ISO-8601), `owner` as a profile summary, `metrics` (`playCount`, `likeCount`, `commentCount`, `shareCount`, `likesHidden`), `videoUrl`, `durationSec`, `dimensions`, `audio`, `coauthors` and `location`. Every field is always present and `null` when Instagram doesn't say. Bill from `meta.creditsCharged`.

There is no `page` number and no `datePosted`; sending either is a 400. For recent posts under a tag use `GET /v2/instagram/hashtags/{hashtag}/media` with `tab=recent`. Account discovery is `GET /v2/instagram/profiles/search`. A single Reel by URL or shortcode is `GET /v2/instagram/media/{media}`.

## Request

- **Endpoint:** `GET /v2/instagram/reels/search`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by query
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v2/instagram/reels/search/get)
- **Platform page:** [/platforms/instagram](https://www.socialfetch.dev/platforms/instagram)

## FAQ

### How do I search Instagram Reels with the v2 API?

Call `GET /v2/instagram/reels/search` with your Social Fetch API key (`x-api-key`) and a required `query` parameter. Read `data.media` and `data.page`. When `data.page.hasMore` is true, send `data.page.nextCursor` as `cursor` with the same `query`.

### How much does Instagram Reels search cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.

### Why is a page of Reels short or empty?

Instagram mixes accounts and photos into search pages, and only Reels are returned, so a page holds as many Reels as it had. The first page usually has a handful. An empty `data.media` with `data.page.hasMore` true is a normal page: request the next cursor. `hasMore: false` with no Reels means the query has no matches.

### How deep can I page?

Broad queries page for many pages (a keyword like coffee ran past a dozen pages with no repeated Reels). Narrow queries end sooner, and the last page has `hasMore: false` and a `null` cursor. Cursors do not depend on a session, so a cursor from a recent page can be used again later. A cursor only works with the `query` it was issued for; another query is a `400 bad_request`.

### Do I need Instagram Graph API access to search Reels?

No. You authenticate to Social Fetch with an API key. The route reads public Reels search results. Meta's Instagram Graph API is for accounts you manage or that grant your app access, not arbitrary public Reels keyword search.
