Instagram profile search API

Accounts for a name or keyword, from the Instagram pages a web search has indexed.

100 free credits. No card needed.

Each request1 credit
Fields in each profile20
A failed requestFree
A cached repeatFree

What you get for each profile

Every count

Followers and following as plain numbers, such as 396 followers on the sample.

Pictures

Links to the profile picture.

Name

The display name, such as Incredible Fitness Coach.

Link

A link to the profile on Instagram.

Account flags

Whether the account is verified or private.

Handle

The handle, such as fitness_._coach.

What you can build with it

Accounts for a niche

Search a description like fitness coach and get accounts with their names and counts. The sample's second result, Daniel Wai, shows about 109,000 followers and 510 posts.

Influencer discovery
Fields on result 2Sample

thestrongwai

109,000

510

Exact numbers on the first ten

enrich reads the first 10 accounts of a page through the profile endpoint for exact counts, bio, links and picture. fitness_._coach comes back with 396 followers and 657 following.

Fields on the first profileSample

fitness_._coach

396

657

false

A long list first, trimmed later

enrich=false keeps only what each search result states, with rounded counts flagged in extra.stats_approximate, a fast way to gather many names before reading the few worth a closer look.

Found for fitness coachSample

Incredible Fitness Coach

Daniel Wai | Fitness Coach

How it works

  1. 1

    Get a key

    Sign up and get 100 free credits. No card needed.

    Your API key100 free credits
  2. 2

    Send a search

    Pass query (fitness coach).

    fitness coach
  3. 3

    Page through the results

    Send back cursor until has_more is false.

    Page 2Page 3

Request and response

Request
1curl -G "https://api.socialscrape.dev/v1/instagram/search/profiles" \2  --data-urlencode "query=fitness coach" \3  -H "x-api-key: $SOCIALSCRAPE_API_KEY"
Response200 OKSample values
{
  "ok": true,
  "credits_charged": 1,
  "data": {
    "items": [
      { "name": "Incredible Fitness Coach",
        "handle": "fitness_._coach",
        "stats": { "followers": 396,
          "following": 657 },
        "url": "https://www.instagram.com/fitness...",
        "kind": "unknown",
        ... },
      ...
    ],
    "cursor": "eyJwIjoy...",
    "has_more": true
  }
}

Use it from your AI agent

Ask in plain words

Ask your agent for Instagram profile search in plain words, and the SocialScrape MCP server makes the call.

Set up the MCP server

One tool call

Instagram profile search, given a search.

Same price as the API

1 credit a call; a repeat within 30 days is free.

Runs on your machine

Your key stays in your agent's settings.

Pay only for data you get

A page of profiles1 credit
The same request within max_age_daysFree
A failed requestFree
Free credits for new accounts100

Starter

18,000 credits a month

GrowthMost popular

50,000 credits a month

Scale

150,000 credits a month

$27/mo

$73/mo

$209/mo

$1.50 per 1,000
$1.46 per 1,000
$1.39 per 1,000
Resets monthly
Resets monthly
Resets monthly
No rate limits
No rate limits
No rate limits

Over 1M credits a month? Talk to us. Or see full pricing.

Questions

Why did one Instagram account come back without a bio?

When reading an account fails, the result keeps what the search stated and extra.enrich_error says why: upstream_blocked on the sample's second result, whose counts stay rounded.

Is this Instagram's own account search?

No. Results come from the Instagram pages a web search has indexed, not Instagram's ranking, best effort and not a complete list. Look an exact username up with Instagram profile.

Is a failed Instagram profile search charged?

No. When the search provider is busy or asks for human verification on every try, the call fails, costs nothing and can be retried. The cursor cannot go past page 11.

What does it return?

DuckDuckGo's results, not Google's and not Instagram's own ranking, best effort and not a complete list. Each result states the account's name and rounded follower, following and post counts (extra.stats_approximate). The first 10 on a page are then read through the Instagram profile endpoint for exact counts, bio, links and picture (enrich, on by default; an account that no longer exists is dropped). The cursor is the next results page and cannot go past 11. When the search provider is busy or asks for human verification on every try the call fails, costs nothing and can be retried. Look an exact username up with profile. Each profile has up to 20 fields, and the sample fills id, handle, name, url, kind, bio, avatar_url and verified and 2 more.

What do I send?

query (required): Profile name, username or keywords.

enrich: Read the first 10 accounts of a page for exact counts, bio, links and picture (on by default). Off returns only what the search result states, much cheaper and faster. true if left out.

Which errors can it return?

invalid_params, not_found and upstream_blocked. None is charged, and the errors list says which to retry.

Is there an SDK call for it?

client.instagram.search_profiles(...) in Python and client.instagram.searchProfiles() in TypeScript.

Same key works everywhere

100 free credits. No card needed.

Start pulling social data.