Instagram Search profiles contact API
Search public Instagram profiles by a bio or caption keyword and get each account's country, the month it joined, and the public email and phone number it lists. Charged per profile that comes back with those details.
Pricing
One price, in dollars
Try it
Make your first request
{
"data": {
"nextCursor": "example",
"profiles": [
{
"avatarUrl": "https://example.com/image.jpg",
"bio": "A short example description of this item.",
"country": "US",
"displayName": "Alex Rivera",
"email": "alex@example.com",
"externalUrl": "https://example.com/page",
"followers": 12500,
"following": 12500,
"handle": "alex_rivera",
"id": "a1b2c3d4",
"joined": "example",
"phone": "+1 555-0142",
"posts": 248,
"url": "https://example.com/page",
"verified": true
}
]
},
"found": true,
"reason": "not_found"
}interface InstagramSearchProfilesContactResponse {
data: {
nextCursor: string | null;
profiles: {
avatarUrl: string;
bio: string;
country?: string;
displayName: string;
email?: string;
externalUrl?: string;
followers: number;
following: number;
handle: string;
id: string;
joined?: string;
phone?: string;
posts: number;
url?: string;
verified: boolean;
}[];
} | null;
found: boolean;
reason?: "not_found";
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-25 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/instagram.search_profiles_contact \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"skincare"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| query | string | "skincare"Bio or caption keyword/phrase to search for. |
| cursor | string | Pagination cursor returned by a previous response. |
| limit | integer | Most profiles to return on this page, 1 to 12. |
| Response | ||
| data | object | |
| data.nextCursor | string | Opaque cursor for the next page of profiles, or null when there are no more. Pass it back as cursor to continue. |
| data.profiles | object[] | Matching public profiles with the contact details each account publishes. Populated whenever the provider has data for the entity. |
| data.profiles[].avatarUrl | string | Profile picture URL. Populated whenever the provider has data for the entity. |
| data.profiles[].bio | string | Profile bio text. Populated whenever the provider has data for the entity. |
| data.profiles[].country | string | Country the account is based in, from the account's About panel. Absent when Instagram does not show it. Populated whenever the provider has data for the entity. |
| data.profiles[].displayName | string | Display name on the profile. Populated whenever the provider has data for the entity. |
| data.profiles[].email | string | Public contact email the account lists. Absent when the account does not publish one. Populated whenever the provider has data for the entity. |
| data.profiles[].externalUrl | string | External link the account lists in its bio. |
| data.profiles[].followers | integer | Follower count, or 0 when Instagram did not report it. |
| data.profiles[].following | integer | Number of accounts this profile follows. |
| data.profiles[].handle | string | Instagram username, without the @. Populated whenever the provider has data for the entity. |
| data.profiles[].id | string | Instagram account id. Populated whenever the provider has data for the entity. |
| data.profiles[].joined | string | Month and year the account joined Instagram, as shown on its About panel, for example "October 2013". Absent when not shown. Populated whenever the provider has data for the entity. |
| data.profiles[].phone | string | Public contact phone number the account lists, in international format. Absent when the account does not publish one. |
| data.profiles[].posts | integer | Number of posts on the profile. |
| data.profiles[].url | string | Canonical URL of the profile. |
| data.profiles[].verified | boolean | Whether the account has a verified badge. |
| found | boolean | Whether the search returned any profiles. |
| reason | "not_found" | Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost. |
| Price | ||
| Price per request (ceiling) | USD | $0.09 |
| Price /1k profiles | USD | $7.50 |
FAQ
About the Instagram Search profiles contact API
The AnyAPI Instagram Search profiles contact API returns Instagram search profiles contact data as normalized JSON from one POST call to /v1/run/instagram.search_profiles_contact. Search public Instagram profiles by a bio or caption keyword and get each account's country, the month it joined, and the public email and phone number it lists. Charged per profile that comes back with those details. AnyAPI returns one normalized schema whichever source serves it. It costs $7.50 per 1,000 profiles, and never more than $0.09 for a single request, in US dollars with no subscription and no monthly minimum.