nvNeuralVerge
Social media

Instagram Search API and MCP — Find Profiles and Places by Keyword

Send a keyword and this source searches Instagram for matching profiles — with followers, bio, links and business flags — or, with search_type set to place, for locations with their address, coordinates and top posts.

You send
A keyword and an optional search type (profiles by default, or place)
You get back
Matching profiles with followers, bio and links, or places with address and coordinates
Coverage
Public Instagram profiles and places that Instagram's search returns.
Price
5 points per returned result, up to 250 per request — $5 per 1,000
Billed per result actually returned, capped by max_items. A search that matches nothing costs nothing.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Searching in the appType a term and tap through resultsFree, and slowNo export, no counts side by side
An influencer databaseA subscription and filtersMonthly or annual contractLimited to the creators the vendor indexed
NeuralVergeOne request per keyword$5 per 1,000, misses not billedMatches on Instagram's own search, which favours names and handles over topics
Response

What you get back

Every field in the example response below.

FieldTypeDescription
querystringThe keyword searched.
search_typestringprofile or place.
total_itemsnumberHow many results came back.
items[].result_typestringprofile or place.
items[].usernamestringAccount handle, for profiles.
items[].full_namestringDisplay name, for profiles.
items[].biographystringBio text, for profiles.
items[].external_urlsarrayLinks in the bio.
items[].followers_countnumberFollowers at read time.
items[].is_verifiedbooleanWhether the account is verified.
items[].is_business_accountbooleanWhether it is a business account.
items[].latest_postsarrayRecent posts, where returned.
Response

Example response

A real response, as returned.

{
  "session_id": "178c72fb-d855-4ffb-9f6e-21908053e76e",
  "kind": "instagram_search",
  "query": "coffee shop",
  "search_type": "profile",
  "max_items": 1,
  "partial": false,
  "machine": {
    "total_items": 1,
    "items": [
      {
        "result_type": "profile",
        "id": "74672878015",
        "username": "avshop.coffee",
        "full_name": "avshop.coffee",
        "url": "https://www.instagram.com/avshop.coffee",
        "biography": "☕️ Истинско кафе изживяване от най-добрите плантации в света 🌏 Поръчай онлайн 📦",
        "external_url": "https://www.avshop.bg/",
        "external_urls": [{ "title": null, "url": "https://www.avshop.bg/" }],
        "followers_count": 92,
        "follows_count": 0,
        "is_verified": false,
        "is_private": false,
        "is_business_account": true,
        "business_category": null,
        "related_profiles": [],
        "latest_posts": []
      }
    ],
    "errors": []
  },
  "total_points": 5
}
Integration

How to run it

The same lookup works from the app, the API, or as a tool an agent can call mid-task.

This endpoint is synchronous: the call blocks until the lookup completes and returns the records directly. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever it collected so far — re-run with a smaller max_items for a complete result. query is required. Optional: search_type (leave it out for profiles, or set place for locations), max_items (1-250, default 10).

curl -X POST https://api.neuralverge.ai/functions/v1/run-instagram-search \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "coffee shop", "max_items": 10 }'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Small business discovery

Find businesses whose Instagram is their main storefront.

Creator discovery

Find accounts in a niche, then vet them with Instagram profile.

Location research

Search places to see how a venue or area shows up on Instagram.

Agent research step

Let an agent find the right account before it reads posts or reels.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Public Instagram profiles and places that Instagram's search returns.

Freshness

Read at request time.

Handling

This source returns content an account published publicly, stamped with the URL it was read from and a session id you can trace. Accounts can belong to individuals as well as brands — use it for legitimate business purposes under your own lawful basis and check the acceptable use policy.

What it will not do
  • —Search is global and loosely ranked — the sample above returns a Bulgarian coffee shop for 'coffee shop'. Filter by bio, links or follower count downstream.
  • —Profile search matches names and handles more than topics.
  • —Results are capped at 250 per request.
FAQ

Questions, answered

Yes — every Data Source endpoint, including this one, is synchronous: the lookup runs inside the request and the result comes back in the same response, no polling. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever records it collected so far — re-run with a smaller max_items to get a complete result instead of a partial one.

Related

Related sources

Try instagram search on your own data

One request format across every source in the catalog.

Get started