> **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/search-popular>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/instagram/search-popular.mdx>

---

# Instagram Popular search API

Pull Instagram's curated Popular topic page into structured JSON — posts, topic title, and suggested terms without GraphQL scrapers or creator OAuth.

`GET /v1/instagram/search/popular` takes a required `query` string and returns Instagram's curated Popular topic page in the shared Social Fetch envelope. The first page can include `title`, `totalMediaCount`, `description` (`plainText`, `sourceUris`, `linkedTerms`), and `suggestedTerms` plus `posts`. Later pages keep the same `query` and pass `cursor`; topic metadata is `null` on those pages. Each post can include id, shortcode, url, type, caption, displayUrl, videoUrl, `metrics.plays`, and owner (`platformUserId`, handle, verified, avatarUrl) when Instagram exposes them. `displayUrl`, `videoUrl`, and owner `avatarUrl` are Instagram CDN links when present — they can expire. This route does not include post timestamps; for a full post card pass `posts[].url` to `GET /v1/instagram/posts`. When `data.page.hasMore` is true, pass `data.page.nextCursor` as `cursor` on the next call. Bill from `meta.creditsCharged`.

This route is a curated topic page, not hashtag search (`GET /v1/instagram/search/hashtags`) and not Reels keyword search (`GET /v1/instagram/search/reels`). Native typeahead for accounts, hashtags, and places is `GET /v1/instagram/search`.

## Request

- **Endpoint:** `GET /v1/instagram/search/popular`
- **Credits:** 1 credit per successful request.
- **Input:** by query
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/instagram/search/popular/get)
- **Platform page:** [/platforms/instagram](https://www.socialfetch.dev/platforms/instagram)

## FAQ

### How do I search Instagram Popular topics via API?

Call `GET /v1/instagram/search/popular` with your Social Fetch API key (`x-api-key`) and a required `query` parameter. Read `data.query`, `data.posts`, topic fields, and `data.page` in the JSON response. See the API docs for parameters and examples.

### How much does Instagram Popular 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.

### What fields does each Popular search post include?

Posts can include id, shortcode, url, type (for example `reel`), caption, displayUrl, videoUrl, metrics (`plays`), and owner (`platformUserId`, handle, verified, avatarUrl) when Instagram exposes them. This route does not include post timestamps, likes, or comments. Use `posts[].url` (not `posts[].id`) with `GET /v1/instagram/posts` when you need a full post card.

### Are displayUrl and videoUrl permanent?

No. `displayUrl`, `videoUrl`, and owner `avatarUrl` are Instagram CDN URLs when Instagram exposes them. They can expire or fail with signature errors outside the original fetch. Do not treat them as durable embeds. For a hosted copy of a known post, call `GET /v1/instagram/posts` with that post's `url` and `downloadMedia=true`.

### Popular search vs hashtag search vs Reels keyword search?

Use this route for Instagram's curated Popular topic page. Use `GET /v1/instagram/search/hashtags` for posts under a tag. Use `GET /v1/instagram/search/reels` for Reels-only keyword search. Native typeahead is `GET /v1/instagram/search`. They are separate operations on the Instagram hub.

### How does pagination work on Instagram Popular search?

Each response includes `data.page.nextCursor` and `data.page.hasMore`. When `hasMore` is true, pass `nextCursor` as the `cursor` query param on the next request. Repeat the same `query` on later pages. Topic metadata (`title`, `totalMediaCount`, `description`, `suggestedTerms`) is populated on the first page and null on later pages. The cursor is opaque.

### What does an empty posts list mean?

HTTP 200 with `data.posts` as an empty array and `data.page.hasMore` false is a valid success when the topic has no curated posts on this page, not an error. Confirm billing with `meta.creditsCharged`.

### Do I need Instagram Graph API access to search Popular topics?

No. You authenticate to Social Fetch with an API key. The route reads public Popular topic results for enrichment-style discovery. Meta's Instagram Graph API is for accounts you manage or that grant your app access — not arbitrary public topic browsing.
