Instagram Account Search | $0.4/1K Accounts + $0.002 per Page
Pricing
from $0.40 / 1,000 account results
Instagram Account Search | $0.4/1K Accounts + $0.002 per Page
Search public Instagram accounts by keyword for $0.40 per 1,000 saved accounts plus $0.002 per successfully fetched page. Optional public profile enrichment. No login, cookies, browser, or proxy setup.
Pricing
from $0.40 / 1,000 account results
Rating
0.0
(0)
Developer
Public Signal Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Search Instagram's current ranked public accounts by keyword. Get normalized account identity, username, name, profile URL, privacy and verification flags, query provenance, and deterministic rank. Optionally enrich results with current public profile counts, biography, links, category, business details, and available public contact fields.
Run one or more queries, follow ranked results across bounded pages, and export clean rows to JSON, CSV, Excel, XML, or API workflows. No Instagram login, cookies, browser, or proxy setup.
What this Actor does
- Searches current Instagram account results for free-text keywords and phrases
- Returns up to 20 ranked account candidates from each valid provider page
- Supports 1–10 queries and up to 10 pages per query for paying users
- Removes duplicate account IDs across pages of the same query
- Optionally enriches accounts with current public profile counts, biography, links, category, business fields, and available public contact fields
- Preserves deterministic query, page, and result ranks
- Exports normalized rows to JSON, CSV, Excel, XML, and API workflows
Use it for account discovery, creator research, local-business research, brand mapping, recruiting research, and building public-profile lists for downstream workflows.
Quick start
Basic account search:
{"queries": ["coffee roaster", "travel photographer"],"maxPagesPerQuery": 1,"enrichProfiles": false}
Search with profile enrichment:
{"queries": ["vegan bakery london"],"maxPagesPerQuery": 1,"enrichProfiles": true}
enrichProfiles is disabled by default and is available to paying users only.
Basic versus enriched output
| Capability | Basic (enrichProfiles=false) | Enriched (enrichProfiles=true) |
|---|---|---|
| ID, username, full name, profile URL | Included | Included |
| Search rank and search context | Included | Included |
| Privacy and verification flags | Included | Included and refreshed when available |
| Profile counts and biography | null | Current public values when available |
| Website and bio links | Empty/null | Current public values when available |
| Category and business flags | null | Current public values when available |
| Public email, phone, and address fields | null | Included only when the account publicly exposes them |
| Recent posts or Reels | Not included | Not included |
| Enrichment event | Never | Only for a successful identity-matching profile |
Every row has an enrichment_status:
not_requested— basic modesucceeded— a matching profile was mapped and chargednot_available— the profile lookup returned no available profilefailed— the lookup, validation, or identity check failed safely
Unavailable and failed enrichments preserve the basic account row and do not create an enrichment charge.
Input
| Field | Rules |
|---|---|
queries | Required array of free-text account searches. Whitespace is trimmed; equivalent Unicode/case variants are deduplicated while first occurrence order is retained. The schema accepts up to 10 unique queries; plan-specific effective limits are detailed in Pricing. Each query is limited to 100 Unicode code points. |
maxPagesPerQuery | Optional integer from 1 through 10; default 1. Applied separately to each query. Plan-specific effective limits are detailed in Pricing. This is a maximum page count, not a result guarantee. |
enrichProfiles | Optional boolean; default false. Paying users only. Enables one bounded profile-by-ID lookup for each first-seen account candidate that fits within the remaining spending capacity. |
Unknown properties, empty queries, control or formatting characters, invalid types, and out-of-range values are rejected before credentials or network work.
Dataset rows
One row represents one charged, unique account for one submitted query. The same account may appear once—and incur one account-result event—for each distinct query because query provenance is meaningful. Duplicate account IDs from later pages of the same query are suppressed.
Example enriched row:
{"query": "coffee roaster","query_index": 0,"page_number": 1,"page_rank": 1,"rank": 1,"id": "1234567890","username": "example.roaster","full_name": "Example Coffee Roaster","profile_url": "https://www.instagram.com/example.roaster/","is_private": false,"is_verified": false,"profile_pic_url": "https://cdn.example/profile.jpg","search_serp_type": 1,"is_verified_search_boosted": false,"search_social_context": null,"enrichment_status": "succeeded","follower_count": 12500,"following_count": 420,"media_count": 680,"biography": "Small-batch coffee roasted weekly.","external_url": "https://example.com","bio_links": [{"title": "Shop", "url": "https://example.com/shop"}],"account_type": 2,"category": "Coffee shop","is_business": true,"is_professional_account": true,"public_email": "hello@example.com","public_phone_number": null,"business_contact_method": "EMAIL","address_street": null,"city_name": "Portland","profile_pic_url_hd": "https://cdn.example/profile-hd.jpg"}
The example is illustrative. Optional fields are returned as null or an empty list when Instagram does not expose a valid value. Profile image and external-link URLs can change or expire.
Pricing
$0.40 per 1,000 saved unique accounts + $0.002 per successfully fetched page. Profile enrichment adds $5.50 per 1,000 successfully enriched accounts.
| Example | Charge |
|---|---|
| 1 valid empty page | $0.0020 |
| 1 basic page with 5 saved accounts | $0.0040 |
| 1 basic page with 20 saved accounts | $0.0100 |
| 1 enriched page with 20 successful enrichments | $0.1200 |
Only saved unique accounts are billed. Duplicate or malformed accounts are not. A valid empty or duplicate-only page costs $0.002; failed pages are not billed. Profile enrichment is billed only when a matching public profile is successfully enriched and saved. The minimum run spending limit is $0.0024, enough for one page and one saved account.
A requested page costs at most $0.010 in basic mode or $0.120 with 20 successful enrichments. The largest allowed paid input therefore has a maximum event charge of $1.00 basic or $12.00 fully enriched before a lower Apify run spending limit is applied.
FREE demo limits
FREE Apify accounts can run this Actor up to 5 times per UTC calendar month. Each admitted FREE run accepts exactly one unique query, uses exactly one search page, and cannot enable profile enrichment, while returning the same dataset fields and page/result billing semantics as paid runs. Console, CLI, API, schedules, webhooks, MCP, and other Apify launch methods share the same account allowance. A run counts once admitted even when it is later aborted or unsuccessful, and resurrecting it does not start another extraction. Creating another task or API token does not reset the allowance. Paid Apify users are not subject to these demo limits.
Run summary and audit
The default key-value store contains:
OUTPUT— run status, prices, maximum and actual event charge, delivered and charged totals, and sanitized per-query outcomesAUDIT— aggregate non-query request, retry, byte, mapping, duplicate, enrichment, storage, timing, and exact charge-reconciliation metrics
Overall status is one of SUCCEEDED, PARTIAL, FAILED, or CHARGE_LIMIT_REACHED. A run can be partial when one query fails while another succeeds. Authentication, provider-balance, spending-capacity, or charged-storage failures stop later work safely.
Admitted FREE runs include a freeTier object in OUTPUT and AUDIT with the UTC month, claimed slot, remaining allowance, effective page limit, and policy version. Rejected FREE runs use stable reasons such as free_monthly_limit, free_run_already_consumed, or free_quota_unavailable. The record never contains an Apify user ID, API token, or internal quota-storage identifier.
Allowance exhaustion and replay complete the Apify run successfully, while OUTPUT.status remains FAILED; the stable stopReason/freeTier.outcome remains machine-readable, and identity/quota verification errors still fail the platform run.
Pagination and stopping behavior
Queries and pages run sequentially. Profile requests for a selected page use bounded concurrency of five, then rows are restored to rank order before storage.
For each query, extraction stops when:
maxPagesPerQueryis reached;- Instagram reports no more pages;
- the next page token is absent;
- the first continuation page contributes zero new valid account IDs;
- the remaining spending capacity cannot cover the next required event bundle;
- the query encounters a terminal failure.
Instagram search is ranked and query-dependent. This Actor does not promise exhaustive results, stable ordering, fixed page sizes, a minimum row count, or repeatable pagination. A provider page can contain more than 20 raw objects; only the first 20 are eligible for this product contract.
Limitations and data quality
This Actor:
- returns a current ranked Instagram account-search snapshot, not an exhaustive directory;
- cannot guarantee stable ordering, fixed page size, complete coverage, or a requested number of unique accounts;
- does not search private content or bypass access controls;
- does not include posts, Reels, stories, followers, following lists, engagement rates, email verification, website crawling, or historical tracking;
- does not expose continuation tokens, custom filters, provider fields outside the documented schema, or arbitrary raw responses;
- does not require or accept customer Instagram credentials, cookies, sessions, or proxy configuration.
Public email, phone, website, and address fields are sparse. They appear only when Instagram exposes them on the public profile, are not independently verified, can be outdated, and are never guaranteed. Do not describe a missing value as a lookup failure when enrichment_status is succeeded.
API and CLI use
Call the Actor through the standard Apify Actor Runs API. Read account rows from the default dataset and reconciliation metadata from OUTPUT and AUDIT.
apify actors call publicsignallabs/instagram-account-search \--input '{"queries":["coffee roaster"],"maxPagesPerQuery":1,"enrichProfiles":false}' \--output-dataset
The Actor also works with the Apify JavaScript and Python clients, REST API, schedules, webhooks, and platform integrations.
Responsible use
Collect and use public data only where you have a lawful purpose. Respect privacy, intellectual-property rights, platform rules, anti-spam requirements, and applicable data-protection law. Minimize retained data, secure exports, honor deletion obligations, and do not use unverified contact fields for unlawful or deceptive outreach.
This Actor is unofficial and is not affiliated with or endorsed by Instagram or Meta.
Support
Use the Issues tab on this Actor's Apify page. Include the run ID, input shape with private values removed, expected result, and observed result. Never include API tokens, cookies, credentials, personal contact values, or other private data.