Instagram hub

Instagram profile search API

Discover public Instagram accounts by keyword — handle, bio, counts, and profile URL in structured JSON, without GraphQL scrapers or creator OAuth.

GET /v1/instagram/search/profiles

1 credit per successful request.

About this endpoint

Creator databases and lead tools often start with a phrase, not a known username. You want coaches, photographers, or local brands that match a query, then decide which handles deserve a full profile pull. Homegrown Instagram people-search scrapers chase the same signed requests that break feed parsers, and the result shapes rarely match your warehouse.

`GET /v1/instagram/search/profiles` takes a required `query` string and returns matching public profiles in the shared Social Fetch envelope. Each hit can include handle, display name, bio, avatar, verification, profile URL, private-account flag, optional business and category fields, `matchedFrom` (`profile` or `caption`), and public metrics when Instagram exposes them. When `data.page.hasMore` is true, pass `data.page.nextCursor` as the `cursor` query param on the next call. Bill from `meta.creditsCharged`.

This route is people / account discovery. Hashtag search is `GET /v1/instagram/search/hashtags`. Reel keyword search is `GET /v1/instagram/search/reels`. Once you have a handle, use `GET /v1/instagram/profiles/{handle}` for the full profile card. Pricing for this operation is 1 credit per successful request.

Instagram profile search API FAQ

How do I search Instagram profiles via API?

Call `GET /v1/instagram/search/profiles` with your Social Fetch API key (`x-api-key`) and a required `query` parameter. Read `data.profiles`, `data.totalProfiles`, and `data.page` in the JSON response. Full parameters and examples are in the API docs.

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

Hits can include handle, displayName, bio, avatarUrl, verified, profileUrl, privateAccount, optional platformUserId, business and professional flags, categoryName, externalUrl, bioLinks, matchedFrom (profile or caption), and metrics such as followers, following, and posts when available.

Profile search vs hashtag search vs reels search?

Use this route to find accounts by keyword. Use `GET /v1/instagram/search/hashtags` for tag discovery. Use `GET /v1/instagram/search/reels` for reel keyword search. They are separate operations on the Instagram hub.

How does pagination work on Instagram profile 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 `query` across pages. The cursor is opaque — do not invent or parse it.

Do I need Instagram Graph API access to search profiles?

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

What should I call after I find a matching handle?

Follow a hit with `GET /v1/instagram/profiles/{handle}` when you need the full public profile card, then posts or reels list routes if you need media. Keep `meta.requestId` from the search response if a later enrichment row looks wrong.