🔥Instagram Profile Finder🔥
Pricing
from $1.00 / 1,000 results
🔥Instagram Profile Finder🔥
Discover public Instagram profiles through Google Search and turn available public data into structured datasets. Extract bios, follower stats, links, public contact emails, latest-post previews, related accounts, and optional Facebook context.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Instagram Scraper
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Discover public Instagram accounts from business search queries, then collect public Profile data in structured Apify Datasets.
Use it for influencer research, competitor lists, lead enrichment, and market research. Start with the words a customer would search for; the Actor uses Google Search to discover eligible public Instagram pages, validates the returned URLs, and fetches each public Profile it can resolve.
This Actor discovers resources from search queries. It does not accept usernames, Instagram URLs, or full search URLs as its primary input.
What you get
- Public Instagram Profile records: identity, bio, links, account flags, profile images, and available follower, following, and post counts.
- A Profile-discovery record for every eligible Profile URL accepted from a search-result page.
- A public Post or Reel discovery record when a content search mode is used, including its resolved owner when Instagram makes it available.
- Optional enrichments: a linked Facebook profile, latest-post previews, and related-profile suggestions.
The Actor is designed for Profile research. Post and Reel modes use public content to identify account owners; the default Dataset contains deduplicated Profile results, not a full post archive.
How it works
Your business queries|vSearch-powered Instagram discovery|+-- Profile URL ------> public Profile fetch ------> default Dataset|+-- Post / Reel URL --> public owner resolution --> public Profile fetch|+--> searchPostResultsAccepted Profile URLs -------------------------------------> searchProfileResults
The Actor avoids fetching the same Instagram Profile more than once per run. Discovery records remain in separate datasets so you can trace which searches produced each result, while the default Dataset stays a clean Profile table.
Discovery results come from Google Search. The Actor then fetches current public Profile or content data from Instagram, with optional Facebook enrichment. It does not use or contribute results to a Profile, email, or contact database owned by the Actor publisher. Run outputs are written to the Apify account of the user running the Actor.
Quick start
- In the Input tab, add one or more business search expressions to Search queries.
- Choose a Search mode and, if useful, set the maximum results and search localization.
- Run the Actor. Open the default Dataset for Profiles, or use the Output tab to open the two discovery datasets.
Example: find public Profile URLs relevant to a Singapore skincare search.
{"queries": ["vegan skincare singapore"],"searchMode": "profiles","queryMaxResults": 30,"searchCountry": "sg","searchLanguage": "en"}
Typical use cases
- Influencer discovery: find accounts in a location, category, or niche, then compare verification, audience size, links, and public Profile details.
- Market and competitor research: create a repeatable list of accounts found for the business searches you care about.
- Lead enrichment: identify public business Profiles and review biographies, websites, categories, and any email visible in the public Profile or search description.
- Content-led account discovery: search for Posts and Reels, then resolve their public owners to Profiles.
Configure the input
| Input | Default | What it controls |
|---|---|---|
| queries | Required | One to 5,000 business search expressions used to discover Instagram resources. |
| emailDiscoveryMode | false | Replace each input with email-provider searches, including country-specific hosts selected by searchCountry. |
| searchMode | profiles | Target Profiles, Posts, Reels, or both content types. |
| searchTimeRange | Not set (Any time) | Limit results to the past 24 hours, week, month, or year. |
| queryMaxResults | 10 | Maximum unique eligible candidate URLs retained for each query, from 10 to 100. |
| searchCountry | us | Two-letter lowercase search country code, such as sg or jp. |
| searchLanguage | en | Search language code, such as en or ja. |
| scrapeFacebookProfile | false | Fetch one linked public Facebook Profile when a supported URL is found. |
| skipPostCount | false | Skip the extra request used to derive post count. |
| skipLatestPosts | true | Skip lightweight latest-post previews. |
| skipRelatedProfiles | true | Skip related-profile suggestions. |
Search queries
Enter ordinary business search expressions, not URLs. Quotes and supported search operators are allowed.
- vegan skincare singapore
- independent coffee roaster berlin
- コスメ "@gmail.com"
Use double quotes ("...") to match an exact word or phrase, for example
"vegan skincare". Prefix a word or quoted phrase with a minus sign (-) to
exclude it, for example vegan skincare -wholesale or -"job hiring". Do not
put a space between the minus sign and the excluded term.
Leading/trailing whitespace and exact duplicate expressions are removed. Search operators are preserved. A full search URL is rejected.
Email discovery mode
Email discovery mode is off by default. Enable emailDiscoveryMode to
search for Profiles that may publish an email address. The Actor replaces,
rather than additionally runs, each input query with one Google Search query
for each built-in email host. It always starts with
gmail.com, hotmail.com, outlook.com, icloud.com, and
yahoo.com, then uses searchCountry to append local hosts. For example,
searchCountry=jp also
adds yahoo.co.jp; its query excludes the known same-domain Yahoo shopping and
auction noise.
{"queries": ["Health/beauty"],"emailDiscoveryMode": true,"searchCountry": "au"}
The example executes email-focused variants such as:
Health/beauty "@gmail.com"Health/beauty "@bigpond.com"Health/beauty "@optusnet.com.au"
queryMaxResults applies separately to every effective email query. The
country-specific host list is bounded at four, so a query expands to at most
nine effective queries. With the 5,000-query input limit, this can create up
to 45,000 initial search tasks. Email discovery improves the likelihood of
finding a public email-related search result; it does not guarantee that the
resulting Profile has an extractable email.
A publicly visible email may be inaccurate or may not belong to the Profile owner. Its public availability does not mean the recipient has agreed to receive marketing messages. You are responsible for ensuring that collecting, exporting, sharing, and using results complies with applicable laws and platform terms.
Search time range
Optionally set searchTimeRange to limit search results to a recent period:
| Value | Input label |
|---|---|
day | Past 24 hours |
week | Past week |
month | Past month |
year | Past year |
Leave it unset to search all available results (Any time). For example:
{"queries": ["vegan skincare singapore"],"searchTimeRange": "week"}
Search modes
| Mode | Search target | Default Dataset result | Discovery dataset |
|---|---|---|---|
| profiles | Public Profile URLs | One Profile record per resolved Profile | searchProfileResults |
| posts_and_reels | Public Post and Reel URLs | One Profile record per resolved owner | searchPostResults |
| only_posts | Public Post URLs | One Profile record per resolved owner | searchPostResults |
| only_reels | Public Reel URLs | One Profile record per resolved owner | searchPostResults |
Content search modes retain one searchPostResults row for each accepted discovery source. If multiple sources resolve to the same account, the owner Profile is still fetched and emitted only once.
Optional Profile enrichments
These switches affect the Profile fetch after discovery:
- Facebook Profile: when enabled, the Actor looks for one supported Facebook URL in external_url, bio_links, fb_profile_biolink, biography, and full_name, in that order. If found, it writes an fb_profile object.
- Post count: post_count is derived from the public Profile page's metadata. Enable skipPostCount to avoid that extra request.
- Latest posts: disable skipLatestPosts to request a lightweight latest post preview. This is not a fixed full-post schema or a replacement for a dedicated post scraper.
- Related profiles: disable skipRelatedProfiles to collect Instagram's available account suggestions. A failed suggestion enrichment produces an empty list rather than failing the Profile.
Understand the results
The Actor writes three datasets with different purposes.
| Dataset | One row represents | Use it for |
|---|---|---|
| Default Dataset | A scraped Instagram Profile | Profile analysis, exports, monitoring, and enrichment. |
| searchProfileResults | An eligible Profile URL accepted from one search-result page | Auditing Profile discovery for each query. |
| searchPostResults | An accepted Post or Reel after its content fetch attempts finish | Auditing content-led discovery, collection status, and any resolved owner. |
The search datasets preserve real search-discovery events. They can contain more than one row for the same Profile or content item when it appears in different queries or sources. The default Dataset does not contain search provenance fields such as matched queries or matched URLs.
When Email discovery mode is on, the two search datasets distinguish
inputQuery (your business expression), query (the effective email
search), and emailHost (the added domain). When the mode is off,
inputQuery equals query and emailHost is null.
Default Dataset: Profile records
The Dataset provides a compact Overview view, while raw items retain available Instagram fields. Common fields include:
| Group | Fields | Notes |
|---|---|---|
| Identity | pk, id, pk_id, username, full_name, url | url is the canonical public Profile URL. |
| Profile and links | profile_pic_url, profile_pic_url_hd, biography, contact_email, bio_links, external_url, pronouns | Availability depends on Instagram's public payload. |
| Counts | followers, following, post_count, total_clips_count, has_any_clips | Post count can be approximate. |
| Account details | is_private, is_verified, is_business, is_professional_account, category, account_type | Missing optional values are commonly null. |
| Optional enrichments | fb_profile, latest_posts, related_profiles | Controlled by the settings above. |
| Run metadata | ig_status, crawled_at | ig_status describes the Profile fetch outcome. |
Instagram may return additional raw metadata. Treat optional fields as non-guaranteed: public payloads vary by account, locale, and endpoint changes.
Profile result example
This shortened example shows a successfully resolved Profile. Optional fields can be null, and optional lists can be empty.
{"pk": "6590609","id": "6590609","username": "kevinhart4real","full_name": "Kevin Hart","url": "https://www.instagram.com/kevinhart4real/","profile_pic_url": "https://scontent.example-cdn.net/profile.jpg","profile_pic_url_hd": "https://scontent.example-cdn.net/profile-hd.jpg","biography": "Live Love & Laugh!!!","contact_email": null,"bio_links": [],"external_url": "https://www.kevinhartnation.com/","followers": 172275843,"following": 1287,"post_count": 2122,"is_private": false,"is_verified": true,"is_business": false,"is_professional_account": null,"category": "Comedian","fb_profile": null,"latest_posts": [],"related_profiles": [],"ig_status": "ok","crawled_at": "2026-09-02T10:30:00Z"}
When Instagram does not return a Profile, the default Dataset can contain a minimal result:
{"username": "example","url": "https://www.instagram.com/example/","ig_status": "not_found","message": "Profile not found or restricted","crawled_at": "2026-09-02T10:30:00Z"}
not_found means the Profile did not return usable public Profile data. It can mean the account does not exist, is restricted, or is otherwise unavailable to the public request; it does not prove that an account has been deleted.
Search discovery examples
The searchProfileResults Dataset has one row per eligible Profile URL accepted from a search page:
{"inputQuery": "vegan skincare singapore","query": "vegan skincare singapore","emailHost": null,"searchPageIndex": 0,"desc": "Instagram photos and videos from this public profile.","email": "hello@example.com","isVerifiedUrl": true,"profileUrl": "https://www.instagram.com/example/","username": "example","discoveredAt": "2026-09-02T10:30:00Z"}
The searchPostResults Dataset records the final content collection outcome and, when available, the fetched public media object and owner:
{"inputQuery": "vegan skincare singapore","query": "vegan skincare singapore","emailHost": null,"searchPageIndex": 0,"desc": "Instagram photos and videos from this public Reel.","email": null,"isVerifiedUrl": true,"contentType": "reel","shortcode": "ABC123","contentUrl": "https://www.instagram.com/reel/ABC123/","ownerId": "123456789","ownerUsername": "example","post": {"id": "123456789_123456789","code": "ABC123"},"ig_status": "ok","message": null,"fetchedAt": "2026-09-02T10:31:00Z"}
For content results, ig_status is ok when both the public media object and its owner were resolved. not_found, owner_not_found, and fetch_failed identify unsuccessful collection outcomes after retries; message contains the corresponding reason. A failed result can therefore have null ownerId, ownerUsername, and post values.
isVerifiedUrl: true says only that the Actor accepted the URL as an eligible HTTPS Instagram route. It does not verify the Instagram account, guarantee availability, or represent Instagram verification status.
Result semantics and limits
Candidate limits and pagination
queryMaxResults limits unique eligible candidate URLs retained per query; it does not guarantee default Profile Dataset rows. A query can produce fewer Profiles because results may be missing, invalid, duplicated, deleted, restricted, ownerless, or unavailable. For content modes, searchPostResults retains the final collection status for every accepted source even when its fetch attempts are exhausted.
The Actor requests at most ceil(queryMaxResults / 10) search-result pages per query. It schedules the next page only when needed, rather than scheduling all pages up front.
Public availability and fields
Only public data returned through the Actor's requests can be emitted. Private or restricted Profiles have less available information, and raw Instagram fields can change without notice.
post_count is parsed from public Profile-page metadata. Instagram can abbreviate values such as 14K or 1.2M, so the value can be approximate. It is null for private Profiles, when the setting skips the request, and when the metadata is unavailable or cannot be parsed.
contact_email is the first email address found in the public biography or full_name, or null when none is available. The email field in a search dataset is different: it is the first address found in the search description.
With latest-post enrichment enabled, the Actor requests up to 10 previews for paying users and up to 5 for non-paying users. Their nested shape follows Instagram's current payload except for Actor convenience fields; do not depend on it as a fixed full-post contract.
Pricing and usage
This Actor uses pay-per-event pricing.
Each successfully fetched search-results page counts as one
search-results-page event, including pages with no eligible Instagram results.
Failed search requests are not charged.
If Facebook Profile enrichment is enabled, a scrape-fb-profile event is
charged only when a supported linked Facebook Profile is successfully added to
the Profile result.
Higher queryMaxResults values can require more search-results pages. Email discovery mode can also increase usage because it expands each input query into several email-focused searches. See the Actor's Pricing tab and your Apify usage details for current rates.
Tips and troubleshooting
| Situation | What to check |
|---|---|
| The run stops before discovery | Check that at least one non-empty search query is provided. |
| Fewer Profiles than expected | Increase queryMaxResults within 10–100, refine the query, and remember the limit is candidates rather than output records. |
| You need Posts or Reels rather than owners | Use a dedicated post or Reel Actor below; this Actor's main result is a Profile. |
| You only need basic Profile data | Leave skipLatestPosts and skipRelatedProfiles enabled. Enable skipPostCount if post count is not needed. |
| Discovery needs a different market | Set searchCountry and searchLanguage with valid country and language codes. |
Need a different Instagram dataset?
| Actor | Description | Stats |
|---|---|---|
| Instagram Profile Scraper | Scrape public Instagram Profile data from usernames or Profile URLs. | |
| Fast Instagram Profile Posts Scraper | Scrape post data from Instagram Profile pages. | |
| Instagram Profile Posts Scraper | Extract Profile post fields such as hashtags, counts, media, and shortcodes. | |
| Fast Instagram Profile Reels Scraper | Scrape public Instagram Reels from Profile pages. | |
| Instagram Hashtags Posts Scraper | Scrape public Instagram hashtag pages. | |
| Instagram Related Profiles Scraper | Discover related accounts and recursively expand Profile networks. |
Legal and ethical use
This is a user-operated research tool: you provide the queries, choose whether to enable Email discovery or Facebook enrichment, and decide how to use the results. The Actor returns data to your Apify account and does not contact people on your behalf.
Public availability does not grant additional rights to use personal data or constitute consent to marketing. You are responsible for ensuring that your collection, access, export, sharing, and use of results complies with applicable privacy, data protection, marketing, and platform rules. Do not use the Actor for harassment, stalking, doxxing, fraud, unlawful discrimination, or sensitive-attribute inference, and do not attempt to access private or restricted accounts or bypass authentication. Follow the applicable terms of Instagram, Google, and Apify. If you enable Facebook enrichment, you must also follow Facebook's applicable terms.