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/popular1 credit per successful request.
About this endpoint
`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`.
Instagram Popular search API 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.
Other Instagram endpoints
- ProfileGET /v1/instagram/profiles/{handle}
- Basic profileGET /v1/instagram/profiles/{userId}/basic
- Profile postsGET /v1/instagram/profiles/{handle}/posts
- Profile reelsGET /v1/instagram/profiles/{handle}/reels
- Profile highlightsGET /v1/instagram/profiles/{handle}/highlights
- Tagged postsGET /v1/instagram/profiles/{userId}/tagged-posts
- HighlightGET /v1/instagram/highlights/{highlightId}
- Profile engagementGET /v1/instagram/profiles/{handle}/engagement