Instagram hub

Instagram hashtag search API

Pull public posts and Reels for a hashtag into structured JSON — captions, owners, metrics, and media URLs without GraphQL scrapers or creator OAuth.

GET /v1/instagram/search/hashtags

1 credit per successful request.

About this endpoint

Campaign monitors and UGC pipelines usually care about a tag, not a username. You want every public post under `#launchweek` or a niche community tag, then decide which shortcodes deserve a full post fetch or a transcript. Homegrown Instagram hashtag scrapers chase signed browse requests that rotate without notice, and the field names rarely match the rest of your warehouse.

`GET /v1/instagram/search/hashtags` takes a required `hashtag` query (leading `#` is optional) and returns matching public posts in the shared Social Fetch envelope. Optional `datePosted` narrows by recency (`last-hour`, `last-day`, `last-week`, `last-month`, `last-year`). Optional `mediaType` is `all` (default) or `reels`. Each post can include id, shortcode, url, caption, `takenAt`, video flags, thumbnail and media URLs, metrics, owner, location, audio, and ad / partnership flags when Instagram exposes them. When `data.page.hasMore` is true, pass `data.page.nextCursor` as `cursor` on the next call. Bill from `meta.creditsCharged`.

This route is tag-led post discovery. Account discovery is `GET /v1/instagram/search/profiles`. Reel keyword search (not hashtag) is `GET /v1/instagram/search/reels`. Once you have a shortcode or URL, use `GET /v1/instagram/posts` for a single post card. Pricing for this operation is 1 credit per successful request.

Instagram hashtag search API FAQ

How do I search Instagram hashtags via API?

Call `GET /v1/instagram/search/hashtags` with your Social Fetch API key (`x-api-key`) and a required `hashtag` parameter. A leading `#` is optional. Read `data.hashtag`, `data.mediaType`, `data.posts`, and `data.page` in the JSON response. Full parameters and examples are in the API docs.

How much does Instagram hashtag 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 hashtag search post include?

Posts can include id, shortcode, url, caption, takenAt, isVideo, thumbnailUrl, displayUrl, videoUrl, videoDurationSec, hasAudio, accessibilityCaption, metrics (views, plays, likes, comments), owner (handle, displayName, avatar, verification, counts), location, audio attribution, and isAd / isAffiliate / isPaidPartnership when Instagram exposes them.

Hashtag search vs profile search vs reels search?

Use this route for posts under a hashtag. Use `GET /v1/instagram/search/profiles` to find accounts by keyword. Use `GET /v1/instagram/search/reels` for reel keyword search (not tag-led). They are separate operations on the Instagram hub.

Can I filter by date or Reels only?

Yes. Pass optional `datePosted` (`last-hour`, `last-day`, `last-week`, `last-month`, or `last-year`) and optional `mediaType` (`all` or `reels`). Keep the same filters when paginating with `cursor`.

How does pagination work on Instagram hashtag 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. Keep the same `hashtag`, `datePosted`, and `mediaType` across pages. The cursor is opaque — do not invent or parse it.

Do I need Instagram Graph API access to search hashtags?

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