# Influencer Lead List Builder (`mambalabs/creator-lead-list-all-in-one`) Actor

Runs discovery, profile read, and link-in-bio check in one run, from keywords or a handle list. One flat row per creator per platform, linked by a creator ID, with contact, newsletter status, what they sell, and manager. Contributes to a shared creator and agency pool, on by default.

- **URL**: https://apify.com/mambalabs/creator-lead-list-all-in-one.md
- **Developed by:** [Mamba Labs](https://apify.com/mambalabs) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 links checkeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🧾 What can Influencer Lead List Builder do?

Runs the [Influencer Finder](https://apify.com/mambalabs/creator-finder?fpr=mamba), the [Influencer Profile Scraper](https://apify.com/mambalabs/creator-profile-reader?fpr=mamba), and the [Link in Bio Scraper and Newsletter Detector](https://apify.com/mambalabs/link-in-bio-newsletter-checker?fpr=mamba) in one run, from keywords or a niche, or from your own handle list. One flat row per creator per platform, linked across platforms by the creator ID, with profile, contact, newsletter status, what they sell, and manager.

| 📦 What you get | ⚙️ Features and integrations |
|---|---|
| 👥 **One row per creator per platform**, found, read, and link checked<br>📊 **Profile**, followers, engagement, verified, bio, country guess<br>📰 **Newsletter status** with evidence URL, what they sell, manager<br>🪪 **Creator ID** linking one creator's rows across platforms<br>🧾 **57 flat fields**, `snake_case`, the suite's shared row | 🌐 **Seven platforms**, TikTok, Instagram, YouTube, Pinterest, Twitch, Threads, podcasts<br>🎯 **Eight curated niches**, or your own keywords, or your own handle list<br>⚙️ **Two execution modes**, sub actors by ID or in process<br>🧪 **Clay ready**, one keyword or handle per row lands on the same path<br>⬇️ **Export** to JSON, CSV, Excel, HTML or XML |

Bought by newsletter and creator tool companies building a prospect list from a niche, brand partnership and talent teams that want profile and contact in one row, and anyone who would otherwise run the three actors by hand.

> 🚫 **This is not cheaper than the three actors run separately, and it is not a monitor.** A complete row is $0.021 either way; what you save is the handoff. To watch a finished list week over week, use the Influencer Change Monitor.

### 💡 Why use Influencer Lead List Builder?

| If you sell | Read these fields |
|---|---|
| Newsletter or email platforms | `newsletter_status`, `newsletter_platform`, `newsletter_evidence_url`, `business_email` |
| Course, coaching, or membership tools | `sells_course`, `sells_coaching`, `sells_membership`, `followers` |
| Brand partnerships | `followers`, `engagement_rate`, `brand_deals_visible`, `own_website` |
| Talent representation | `manager_email`, `manager_source_url`, `agency_name` |
| Anything, as a disqualifier | `row_status`, `newsletter_check_method`, `country_guess` |

#### 🧭 Three stages, one row, one price either way

Two execution modes. `sub_actors` (the default) calls each stage by its immutable Actor ID as a run on your account, so each stage bills its own events and its own `actor-start`; `in_process` runs the three stages inside this actor and charges the same events from here. The price of a complete row is the same either way: $0.021 (found, read, links checked) plus the add-ons you turn on.

#### 🗺️ One route per platform, measured before the price was set

Five public profiles per platform, read at 1, 2, 3, and 5 in flight. USD per profile is transfer at the account's datacenter rate ($0.20 per GB) or residential rate ($8.00 per GB) plus an estimated compute share (1 GB, wall seconds over 3,600, at $0.30 per compute unit). The default concurrency sits below the point where rows started dropping, or two below the largest wave tested when nothing dropped.

| Platform | Route | Fields returned | Per profile | Ok of 5 at 1, 2, 3, 5 | Default concurrency |
| --- | --- | --- | --- | --- | --- |
| TikTok | Profile page rehydration JSON over datacenter; one residential retry on a block | name, followers (exact from statsV2), following, video count, engagement (lifetime likes per video over followers), verified, bio, bio link, business email from the bio | 372 KB, 1.5 to 3.0 s, $0.00007 (a residential recovery costs $0.0030) | 5, 5, 5, 5 minus one block per wave at 5 | 3 |
| Instagram | Profile embed widget over datacenter (counts, name, verified, 6 recent posts); bio, bio link, and following from `web_profile_info` on about 1 in 4 datacenter attempts, otherwise from the profile page over residential when `escalate_on_block` is on (event `instagram-bio-fetch`, $0.010, only when that page came back readable) | name, followers (exact), post count, verified, private flag, engagement (median likes plus comments of recent posts over followers), bio, bio link, business email from the bio | embed 303 KB and $0.00006; residential bio page 720 to 830 KB, up to $0.0066 by decompressed bytes and $0.0012 by the platform's metered transfer (run o6u6d7x7zfElI9WQm, 2026-09-22); the residential page ran on 7 of 10 reads on 2026-09-22 and read on 6 | 5, 5, 5, 5 | 4 |
| YouTube | `/@handle/about` page `ytInitialData` over datacenter; innertube fallback; residential only after every datacenter route blocks | name, subscribers (rounded by YouTube), video count, description, channel links, country (platform region), verified, engagement (average recent views over subscribers) | 2.2 MB, 2.0 s, $0.0005 | 5, 5, 5, 5 | 3 |
| Threads | Public profile page Relay payload over datacenter; residential only on a block signature | name, followers (exact), bio, bio link, verified, business email from the bio | 0.93 MB, 5.0 s, $0.0003 | 5, 5, 5, 5 | 3 |
| Pinterest | Profile page `__PWS_INITIAL_PROPS__` over datacenter; residential retry on a real block | name, followers, following, pin count, verified merchant, about, website, location, business email, other social profiles | 1.39 MB, 1.8 to 3.0 s, $0.0003 | 5, 5, 5, 5 | 3 |
| Twitch | Public GQL endpoint with the site's own web client id over datacenter; channel page JSON-LD fallback; your own Helix client id and app token when supplied | display name, followers, video count, partner flag, description, social links from the channel panels, business email in the description | 1.2 KB, 1.2 to 1.6 s, under $0.00001 | 5, 5, 5, 5 | 3 |
| Podcast | iTunes lookup plus the RSS feed, direct (no proxy bytes); Spotify show page over datacenter | show name, episode count, description, site link, owner email from the feed (`business_email_source` feed), author, genres, country | feed 0.5 to 5.4 MB direct, compute only, 0.8 to 2.9 s | 5, 5, 5, 5 | 3 |

Discovery per keyword, measured the same day: TikTok 7 handles over three Google pages (Google drops the `site:` operator on some exit countries, so a page without a handle is fetched once more); Instagram 1 to 8; YouTube 20 from the channel filtered results page with no search engine; Threads 11 to 15 over two Google pages; Twitch 11 from its own search; Pinterest 50 from its user search resource; podcasts 50 from the iTunes Search API. A Google page costs $0.0025 on the runner's account.

What each platform does not expose without login, and what the row says instead: YouTube's business email sits behind "View email address" and a verification step, so it is not read and `business_email` is filled only from an address written in the public description; Instagram has no location field, so `country_guess` comes from the bio; Threads and podcasts have no per post engagement; podcasts have no follower count; TikTok's anonymous render carries no region, so the country comes from the bio.

### 📋 What data can Influencer Lead List Builder extract?

**57 fields** per row, the same 57 in the same order on every actor in this suite. The ones this actor fills:

| Field | What it holds |
|---|---|
| `creator_id`, `creator_id_method`, `creator_id_confidence` | One ID per creator across platforms and runs; see The shared row below |
| `platform`, `handle`, `profile_url`, `display_name`, `search_keyword`, `niche`, `similar_creators` | The Influencer Finder stage |
| `followers`, `following`, `post_count`, `engagement_rate`, `engagement_method`, `verified`, `bio`, `bio_link`, `country_guess` | The Influencer Profile Scraper stage |
| `newsletter_status`, `newsletter_platform`, `newsletter_evidence_url`, `newsletter_check_method` | The link check stage |
| `sells_course`, `sells_coaching`, `sells_digital_product`, `sells_merch`, `sells_membership`, `brand_deals_visible`, `discount_codes_visible` | What is sold on an owned page |
| `business_email`, `manager_email`, `manager_source_url`, `agency_name`, `own_website`, `outbound_links_json` | Contact and links |
| `source_url`, `read_at`, `row_status`, `error_reason`, `billable_events_json` | Where the row came from, when, whether it is usable, and what it cost |

> ⚠️ **`false` and `null` are not the same thing, and an empty cell is not a failed read.** A column this actor does not own is `null`, never missing. On a boolean, `false` means the page was read and the signal was not there; `null` means nothing read it. On an Influencer Profile Scraper row, `verified: false` is a profile without the mark and `verified: null` is a profile that could not be read. Read `row_status` before any other column; the paragraph below says how.

Every actor in this suite writes the same 57 flat columns, in the same order, and fills the ones it owns. A column an actor does not own is null, never missing. Nested data lives only in columns ending `_json`, as a JSON string, so a Clay column reads one cell.

| Group | Columns | Filled by |
| --- | --- | --- |
| Identity | `creator_id`, `creator_id_method`, `creator_id_confidence`, `platform`, `handle`, `profile_url`, `display_name` | Influencer Finder, Influencer Profile Scraper |
| Discovery | `search_keyword`, `niche`, `similar_creators`, `similar_creators_method` | Influencer Finder |
| Profile | `followers`, `following`, `post_count`, `engagement_rate`, `engagement_method`, `verified`, `bio`, `bio_link`, `location_text`, `country_guess`, `country_guess_method` | Influencer Profile Scraper |
| Contact | `business_email`, `business_email_source`, `website_email`, `website_email_source_url`, `manager_name`, `manager_email`, `manager_source_url`, `agency_name`, `agency_domain`, `agency_match_method` | Influencer Profile Scraper, Link in Bio Scraper and Newsletter Detector, Influencer Talent Agency Lookup |
| Links | `link_in_bio_platform`, `outbound_links_json`, `other_social_profiles_json`, `own_website` | Link in Bio Scraper and Newsletter Detector; `other_social_profiles_json` also by the Influencer Profile Scraper |
| Newsletter | `newsletter_status`, `newsletter_platform`, `newsletter_url`, `newsletter_evidence_url`, `newsletter_check_method` | Link in Bio Scraper and Newsletter Detector |
| Sells | `sells_course`, `sells_coaching`, `sells_digital_product`, `sells_merch`, `sells_membership`, `brand_deals_visible`, `discount_codes_visible` | Link in Bio Scraper and Newsletter Detector |
| Change | `change_type`, `change_from`, `change_to`, `previous_run_at` | Influencer Change Monitor |
| Run | `source_url`, `read_at`, `row_status`, `error_reason`, `billable_events_json` | All six |

The Influencer Lead List Builder runs the Influencer Finder, the Influencer Profile Scraper, and the Link in Bio Scraper and Newsletter Detector in one run and fills what they fill. The Influencer Change Monitor and the Influencer Talent Agency Lookup read the profile (and the Influencer Change Monitor reads the link page too when `check_links` is on), so their rows carry the identity, profile, contact, and link columns as well.

**Read `row_status` first.** `ok` is a normal row. `error` carries the reason in `error_reason` (`not_found: user banned`, `private`, `blocked: bot detection page`, `outside launch country scope`) and charges nothing. `partial` means the page was read but a step after it failed, and the reason says which.

**The creator ID.** `creator_id` is `cr_` plus 16 hex characters of the SHA-1 of `platform:handle` of the creator's primary profile, so the same creator gets the same ID in every actor and every run. When one run sees the same creator on two platforms, the rows share the ID and each row says how it was linked: `bio_link_match` (0.9, one profile links to the other), `website_match` (0.8, same own website), `handle_match` (0.5, same handle on two platforms, which collides on common words). A lone row is `seed_handle` at 1.

**Country scope.** Launch scope is US creators. `country_guess` comes from the platform's region field, the location text, the bio, or a flag emoji, and `country_guess_method` says which. With `us_only` on (the default) the profile stage returns a creator whose guess is a known non US country as an error row saying so. A row with no signal is kept, because most Instagram and TikTok profiles carry none.

### 🛠️ How to build an influencer lead list from a keyword

1. Open the **Input** tab and put search phrases in `keywords` or pick a `niche`, or put your own creators in `handles` to skip discovery.
2. Pick `platforms` and set the follower band with `follower_min` and `follower_max`.
3. Leave `skip_links` off for the full row; turn it on for discovery and profile only, at lower cost.
4. Turn on `render_unreadable_pages`, `scan_website_for_email`, or `match_agencies` if you want the add-ons.
5. Click **Start**. One row per creator per platform lands in the dataset as each stage finishes.
6. Read `row_status` first, then `newsletter_status`, `followers`, and `business_email`. Export from the **Output** tab, or pull the rows through the API.

#### 🧪 Using it in Clay

Add an **Enrichment > Apify** column, pick this actor, and map your keyword column to `keywords` or your handle column to `handles`. Every input is accepted as a string, which is what Clay sends. Gate the run on a niche or follower column so you only spend the three events on creators you would actually work; a full row is about $0.021.

#### 🎯 Best input

Pass creator handles where you have them. Discovery is skipped, every row costs $0.014 instead of $0.021, and the handle lets the link stage match the creator's own site by name.

#### 📚 Batch or single

One keyword or one handle is one run; a list is a batch. Both shapes reach the same code path, and so does the shape the platform produces when Clay sends a top level array against an object schema. Input is deduplicated before any fetch. Rows are pushed as each stage finishes, so a run that hits its timeout keeps every row it already resolved. A row that throws becomes an error row with the reason and the run continues.

Concurrency (`batch_size`) is passed to every stage: searches in flight on discovery (default 2, capped at 4), profiles in flight per platform on the profile stage (the measured value in the table above), and creators in flight on the link stage (default 3, capped at 10). Leave it empty for those defaults.

### 💵 How much does it cost to build a creator lead list?

Pay per event. You are charged for output, never for input.

| Event | Fires when | Price |
|---|---|---|
| `actor-start` | Once per run, on start. | $0.002 |
| `creator-found` | Once per creator row returned by keyword or niche discovery with a handle and a profile URL. A search that returns nothing charges nothing. | $0.007 |
| `profile-read` | Once per profile row where the public profile page was read and at least the follower count or the bio came back. A private, missing, or blocked profile returns a labeled error row and does not charge. | $0.006 |
| `links-checked` | Once per creator whose bio link or link-in-bio page was fetched and classified. A creator with no bio link returns newsletter\_status none and does not charge this event. | $0.008 |
| `browser-render` | Once per page rendered in the headless browser because the plain fetch returned no readable content, and the rendered page came back readable: 120 characters of visible text or 3 links off the page's host, and no block page. A render that returns the same empty shell is not charged, and a charged render always reaches the classifier (a link grid with little text, such as a Linkin.bio page, counts as readable by its links). Only when `render_unreadable_pages` is on. | $0.004 |
| `website-scan` | Once per creator whose own website was scanned for an email. Only when `scan_website_for_email` is on. | $0.005 |
| `agency-match` | Once per row where a manager or business email domain matched the bundled agency list and an agency name came back. | $0.003 |
| `instagram-bio-fetch` | Once per Instagram profile row when the bio, bio link, and following were not on the embed widget or the datacenter API and the profile page was read over the residential proxy and came back readable. Only when `escalate_on_block` is on; uncheck it to avoid the charge and accept empty bio fields on about half of Instagram rows. Never on the embed or datacenter reads, never on another platform, never on a blocked page, never on an error row. | $0.010 |

Free Apify plan users get 65 results per calendar month, reset monthly. Upgrade to any paid Apify plan for unlimited use: https://apify.com/pricing?fpr=mamba

> 💳 **What you are billed for.** A complete row is `creator-found` plus `profile-read` plus `links-checked`, $0.021, plus the add-ons you turn on. In `sub_actors` mode each stage bills its own events on its own actor; in `in_process` mode the same events are charged from here. A creator found but not readable charges `creator-found` and nothing more. An Instagram profile whose bio needs the residential page is charged `instagram-bio-fetch` at the profile stage, on this actor in `in_process` mode or on the Influencer Profile Scraper in `sub_actors` mode.

Apify bills its own platform usage on top of the event prices.

### ⌨️ Input

Everything is on the **Input** tab. Every field of the three actors except the Link in Bio Scraper and Newsletter Detector's `bio_links` (this actor starts from keywords or handles), plus `skip_links` (discovery and profile only) and `mode`. See the three READMEs for what each field does.

### 📤 Output

Exports to **JSON, CSV, Excel, HTML or XML**. One flat, snake\_case row per creator per platform, 57 columns, with `null` rather than a missing key. No nested objects, so it drops straight into Clay, a spreadsheet or a warehouse table without a flattening step. Nested data lives only in columns ending `_json`, as a JSON string, so a Clay column reads one cell.

A full row carries the Influencer Finder, Influencer Profile Scraper, and link check columns together. This row started from a handle, so `search_keyword` is null. The row below is trimmed to the columns this actor fills.

```json
{
  "creator_id": "cr_8390a5a3f4f99e86",
  "creator_id_method": "seed_handle",
  "creator_id_confidence": 1,
  "platform": "instagram",
  "handle": "amyporterfield",
  "profile_url": "https://www.instagram.com/amyporterfield/",
  "display_name": "Online Marketing Coach",
  "search_keyword": null,
  "followers": 478244,
  "following": 1241,
  "post_count": 3686,
  "engagement_rate": 0.05,
  "engagement_method": "median_likes_comments_last_6_posts_over_followers",
  "verified": true,
  "bio": "💰 Helping Female Founders Become Millionaires \n➡️ DM TRAINING for my free training for high-six figure female founders\n🎙️ The Amy Porterfield Show",
  "bio_link": "http://amyporterfield.com/livetraining",
  "own_website": "https://www.amyporterfield.com",
  "newsletter_status": "email_capture_only",
  "newsletter_evidence_url": "https://www.amyporterfield.com/training",
  "newsletter_check_method": "rules",
  "sells_course": true,
  "sells_coaching": false,
  "sells_digital_product": false,
  "sells_merch": false,
  "sells_membership": false,
  "brand_deals_visible": false,
  "discount_codes_visible": false,
  "source_url": "https://www.instagram.com/amyporterfield/",
  "read_at": "2026-09-22T08:19:37.402Z",
  "row_status": "ok",
  "error_reason": null,
  "billable_events_json": "[{\"event\":\"profile-read\",\"count\":1},{\"event\":\"links-checked\",\"count\":1}]"
}
```

### 💡 Tips

- Start from `handles` when you already have a list. Discovery is skipped and every row costs $0.014 instead of $0.021.
- Use `skip_links` for a sizing pass, then run the Link in Bio Scraper and Newsletter Detector on the rows that passed your follower band.
- Read `billable_events_json` on each row to reconcile a run from the dataset alone.
- Leave `mode` empty. The default is `sub_actors`, and the row is the same either way; `in_process` keeps every charge on this actor.

### ⚠️ Known limits

**Discovery results vary.** The Influencer Finder stage searches public pages for each keyword, so the number of creators found per platform changes from run to run. TikTok, Instagram, and Threads discovery runs through web search and can return few or no handles on a given run. YouTube, Twitch, Pinterest, and podcasts use each platform's own search.

**Discovered handles that no longer exist.** The Influencer Finder stage charges `creator-found` for each handle it discovers. A small share of discovered handles belong to deleted or renamed accounts. The profile stage then returns a labeled `not_found` row, and the discovery charge still applies.

**Business email coverage.** Business email coverage is partial. The actor fills business\_email only when a creator publishes one: in a bio, a link-in-bio page, or a YouTube channel description. YouTube keeps its business email button behind a sign-in and a CAPTCHA, which the actor does not bypass; in testing, 2 of 5 channels published an address in their description instead. Empty business\_email means no public address was found, not that none exists.

**Some fields are not exposed without login.** What each platform does not expose without login, and what the row says instead: YouTube's business email sits behind "View email address" and a verification step, so it is not read and `business_email` is filled only from an address written in the public description; Instagram has no location field, so `country_guess` comes from the bio; Threads and podcasts have no per post engagement; podcasts have no follower count; TikTok's anonymous render carries no region, so the country comes from the bio.

**Country scope is US at launch.** A row whose `country_guess` is a known non US country comes back as an error row when `us_only` is on; a row with no signal is kept.

**Not X, not Facebook pages, not LinkedIn.** Seven platforms are searched and read, listed above.

**What is never done.** No login. No CAPTCHA solving. No LinkedIn fetch. No message to anyone. No key of ours is used on your run; the AI check runs only on the key you supply, and the key is never logged or written to a row.

### What this actor shares

This run contributes the records it finds to a shared creator and agency pool that all users of this actor read from. What one run finds, the next run can read.

The toggle is `contribute_to_shared_pool`. It is a boolean input and it is on by default. Turn it off and the run still reads the pool and writes nothing to it.

**What this actor contributes.** One contribution per run, covering what the three stages produced together: the creators found, the profiles read, the manager contacts, and the matched agencies. Not one contribution per stage.

**Only public data that is already in your own output.** Every field written to the pool is a field this run returned to you, read from a page the platform or the creator publishes to anyone without a login. Nothing from your Apify account, your input list, your API keys, or your own notes is sent. A contribution never deletes anything from the pool.

**What a contribution is labeled with.** The actor ID, the run ID, the pool key issued to the actor build, and a hash of the calling IP address, used for the rate limit and nothing else. Your Apify account and your user ID are not recorded.

**Contributing is free.** No event is charged for a write to the pool. If the pool is unreachable the run finishes as normal, the rows are dropped, and the run log says so.

### ❓ FAQ

**Is it cheaper than running the three actors myself?**
No. The price of a complete row is the same either way, $0.021 plus add-ons. It saves the handoff between stages.

**Where do the charges show up in `sub_actors` mode?**
On each stage's own actor: the Influencer Finder bills `creator-found`, the Influencer Profile Scraper bills `profile-read` and `instagram-bio-fetch`, and the Link in Bio Scraper and Newsletter Detector bills `links-checked` and its add-ons. This actor bills its `actor-start`, and each stage's run bills its own ($0.001, $0.001, and $0.002).

**Why did a discovered creator come back as `not_found`?**
A small share of discovered handles belong to deleted or renamed accounts. The profile read returns a labeled `not_found` row; the discovery charge still applies and the profile read charges nothing.

**Can I feed it my own handles?**
Yes. Put them in `handles`; discovery is skipped and the Influencer Profile Scraper and Link in Bio Scraper and Newsletter Detector stages run on your list.

**Why is TikTok thin on a keyword?**
TikTok, Instagram, and Threads discovery runs through web search and can return few or no handles on a given run. Neighboring keywords or the niche set usually fill the gap.

### 🧩 Want other GTM data?

Mamba Labs builds a fleet of GTM enrichment actors that share one flat,
Clay-ready output convention, so their rows join on `company_domain` or
`creator_id` with no cleaning step:

| | |
|---|---|
| 🕵️ [Agent Accessibility Auditor](https://apify.com/mambalabs/agent-accessibility-auditor?fpr=mamba) | 🤖 [AI Tooling Detector](https://apify.com/mambalabs/ai-tooling-detector?fpr=mamba) |
| 📡 [B2B Buying Signals Aggregator](https://apify.com/mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay?fpr=mamba) | 🚀 [Prospect Engine](https://apify.com/mambalabs/b2b-prospect-engine?fpr=mamba) |
| 📝 [Publishing Frequency Tracker](https://apify.com/mambalabs/blog-publishing-frequency?fpr=mamba) | 🦋 [Bluesky Brand Presence Mapper](https://apify.com/mambalabs/bluesky-brand-presence-mapper?fpr=mamba) |
| ⏩ [Sequencer Lead Push](https://apify.com/mambalabs/clay-to-instantly-smartlead-push?fpr=mamba) | 🔄 [Company Change-Event Feed](https://apify.com/mambalabs/company-change-event-feed?fpr=mamba) |
| 📇 [Company Contact Details Extractor](https://apify.com/mambalabs/company-contact-details-extractor?fpr=mamba) | 🧭 [Company Discovery List Builder](https://apify.com/mambalabs/company-discovery-list-builder?fpr=mamba) |
| 🏢 [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher?fpr=mamba) | 🪪 [Company Identity Resolver](https://apify.com/mambalabs/company-identity-resolver?fpr=mamba) |
| 🌐 [Company Social Presence Mapper](https://apify.com/mambalabs/company-social-presence-mapper?fpr=mamba) | 🏷️ [Contact Classifier](https://apify.com/mambalabs/contact-classifier?fpr=mamba) |
| 📈 [Influencer Change Monitor](https://apify.com/mambalabs/creator-change-monitor?fpr=mamba) | 🔎 [Influencer Finder](https://apify.com/mambalabs/creator-finder?fpr=mamba) |
| 👤 [Influencer Profile Scraper](https://apify.com/mambalabs/creator-profile-reader?fpr=mamba) | 📬 [Domain Deliverability Checker](https://apify.com/mambalabs/domain-deliverability-checker?fpr=mamba) |
| 🔗 [Domain to LinkedIn URL Resolver](https://apify.com/mambalabs/domain-to-linkedin-url-resolver?fpr=mamba) | 🛒 [Ecommerce Platform Profiler](https://apify.com/mambalabs/ecommerce-platform-profiler?fpr=mamba) |
| ✉️ [Work Email Waterfall Finder](https://apify.com/mambalabs/email-waterfall-orchestrator?fpr=mamba) | 🎪 [Event Presence Index](https://apify.com/mambalabs/event-presence-index?fpr=mamba) |
| 💵 [Funding Record and Filings](https://apify.com/mambalabs/funding-investor-record?fpr=mamba) | 💰 [Funding and Press Signal Scanner](https://apify.com/mambalabs/funding-press-signal-scanner?fpr=mamba) |
| 🐙 [GitHub Organization Signal Scanner](https://apify.com/mambalabs/github-organization-signal-scanner?fpr=mamba) | 🧑‍💼 [GTM Hiring Signal Scraper](https://apify.com/mambalabs/gtm-hiring-signal-scraper?fpr=mamba) |
| 📋 [Job Posting Monitor](https://apify.com/mambalabs/gtm-job-discovery?fpr=mamba) | 🧱 [Tech Stack Detector](https://apify.com/mambalabs/gtm-tech-stack-signal-scraper?fpr=mamba) |
| 🎯 [ICP Fit Scorer](https://apify.com/mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay?fpr=mamba) | 🔑 [Job Board Keyword Scanner](https://apify.com/mambalabs/job-board-keyword-signal-scanner?fpr=mamba) |
| ⚖️ [Legal Entity Resolver](https://apify.com/mambalabs/legal-entity-resolver?fpr=mamba) | 🔗 [Link in Bio Scraper and Newsletter Detector](https://apify.com/mambalabs/link-in-bio-newsletter-checker?fpr=mamba) |
| 💼 [LinkedIn Company Page Mapper](https://apify.com/mambalabs/linkedin-company-presence-mapper?fpr=mamba) | 💬 [LinkedIn Post Tracker and Comment Capture](https://apify.com/mambalabs/linkedin-post-engager-capture?fpr=mamba) |
| 📢 [Meta Ad Library Monitor](https://apify.com/mambalabs/meta-ad-library-monitor?fpr=mamba) | 📸 [Instagram and Facebook Brand Mapper](https://apify.com/mambalabs/meta-brand-presence-mapper?fpr=mamba) |
| 📮 [Outbound Stack Detector](https://apify.com/mambalabs/outbound-infrastructure-fingerprint?fpr=mamba) | 📄 [Page Finder and Extractor](https://apify.com/mambalabs/page-finder-extractor?fpr=mamba) |
| 👤 [People Finder and Email Verifier](https://apify.com/mambalabs/people-finder?fpr=mamba) | 📌 [Pinterest Brand Presence Mapper](https://apify.com/mambalabs/pinterest-brand-presence-mapper?fpr=mamba) |
| 🏛️ [Government Contract Award Monitor](https://apify.com/mambalabs/public-award-monitor?fpr=mamba) | 📅 [Public Company Reporting Window Finder](https://apify.com/mambalabs/public-company-reporting-window-finder?fpr=mamba) |
| 👽 [Reddit Brand and Mention Monitor](https://apify.com/mambalabs/reddit-brand-presence-mapper?fpr=mamba) | ⭐ [Trustpilot Reputation Enricher](https://apify.com/mambalabs/review-platform-reputation-enricher?fpr=mamba) |
| 👥 [Team Page People Extractor](https://apify.com/mambalabs/team-page-people-extractor?fpr=mamba) | 🎵 [TikTok Brand Presence Mapper](https://apify.com/mambalabs/tiktok-brand-presence-mapper?fpr=mamba) |
| 📈 [Website Traffic Rank Estimator](https://apify.com/mambalabs/website-traffic-rank-estimator?fpr=mamba) | 🏅 [Workplace Program Detector](https://apify.com/mambalabs/workplace-program-detector?fpr=mamba) |
| ✖️ [X Twitter Brand Presence Mapper](https://apify.com/mambalabs/x-brand-presence-mapper?fpr=mamba) | ▶️ [YouTube Channel Stats Extractor](https://apify.com/mambalabs/youtube-channel-transcript-extractor?fpr=mamba) |

> Every actor in the suite takes a domain, a company, or a creator and returns one flat row,
> so they stack in the same Clay table without reshaping anything.

> 🛠️ **Need something custom built for you or your team?** Tell us what you are
> trying to find and we will build it. [Talk to Mamba Labs](https://mambabuilt.com/contact).

### 🆘 Support

Issues, field requests and bug reports: open an issue on the actor's Issues tab.
Mamba Labs reads every one.

> ℹ️ **Sourcing and legal.** Every field comes from pages the platforms and the creators publish to anyone without a login, read directly or through a proxy, with no login, no CAPTCHA solving, and no LinkedIn fetch. The row records what was public at `read_at`. Nothing is assessed or scored; a class, a flag, or a match method says what was read and where. You are responsible for how you use the output, including under applicable data protection and platform terms.

Built by [Mamba Labs](https://apify.com/mambalabs?fpr=mamba).

# Actor input Schema

## `keywords` (type: `array`):

Search phrases, one per line, for example "budget travel" or "meal prep coach". Each keyword is searched on each platform. Use `niche` instead to load a curated keyword set.

## `niche` (type: `string`):

Loads a curated set of search keywords for the niche (about 60 per niche, measured in the September 2026 pre-research). `max_keywords_per_niche` caps how many are used. Leave as custom to search only your keywords.

## `max_keywords_per_niche` (type: `integer`):

How many keywords from the niche set to search. 1 to 60.

## `handles` (type: `array`):

One per line. A profile URL on any supported platform (https://www.tiktok.com/@name, https://www.instagram.com/name/, https://www.youtube.com/@name, a Pinterest, Twitch, or Threads profile, an Apple Podcasts show page, or a Spotify show), or platform:@handle (tiktok:@name). A bare @handle needs `platforms` and is looked up on each listed platform. One entry is a single run; a list is a batch. Duplicates are removed before any fetch.

## `platforms` (type: `array`):

Which platforms to search, and which platforms a bare @handle is looked up on. A full profile URL carries its own platform and ignores this. Supported: TikTok, Instagram, YouTube, Pinterest, Twitch, Threads, and podcasts. Not X, not Facebook pages, not LinkedIn.

## `max_creators_per_keyword` (type: `integer`):

Cap per search. Search engines honor the site: filter for the first page or two only, so 20 to 30 per keyword with more keywords beats deep paging.

## `max_creators` (type: `integer`):

Hard cap on rows returned, so a broad niche cannot run away.

## `follower_min` (type: `integer`):

Drop creators whose follower count is known and below this. A creator whose count the search did not show is kept, so a later profile read can fill it.

## `follower_max` (type: `integer`):

Drop creators whose follower count is known and above this.

## `us_only` (type: `boolean`):

Launch scope is US creators. A row whose country\_guess is a known non US country is returned as an error row saying so. Rows with no country signal are kept. Uncheck to keep every country.

## `skip_links` (type: `boolean`):

Off by default. On: discovery and profile only. The link-in-bio page is never fetched, so no links-checked, browser-render, website-scan, or agency-match event is charged and the links, newsletter, and sells columns stay null.

## `render_unreadable_pages` (type: `boolean`):

Off by default. Some link-in-bio pages (Stan Store, linkin.bio, Typeform shells) return an empty shell to a plain fetch and are classified unknown\_fetch\_failed. Turn this on to render them in a headless browser. Charged per page rendered (event browser-render) to cover the browser compute.

## `ai_check` (type: `boolean`):

Off by default. When on, a model reads the rule classifier's evidence and rules on each row. Runs only with your own key in `ai_api_key`; the actor never uses a Mamba Labs key and never logs yours.

## `ai_provider` (type: `string`):

Which API the key belongs to.

## `ai_api_key` (type: `string`):

Your own model API key. Used only when `ai_check` is on. Never stored, logged, or written to a row.

## `scan_website_for_email` (type: `boolean`):

Off by default. For creators with their own website (not a link-in-bio page), reads the home, contact, and about pages and the footer for an email and records where it was found. Charged per creator scanned (event website-scan).

## `match_agencies` (type: `boolean`):

Matches the domain of a manager or business email against the bundled talent agency list and fills agency\_name, agency\_domain, and agency\_match\_method. Charged per matched row (event agency-match).

## `escalate_on_block` (type: `boolean`):

On by default. A profile fetch that comes back as a bot detection page is retried once over the residential proxy. On Instagram the bio, bio link, and following are read from the profile page over residential when the embed and the datacenter API did not carry them, and a page that comes back readable charges instagram-bio-fetch ($0.010). Uncheck it to never pay that event: a blocked profile then returns a labeled error row, and Instagram rows keep an empty bio and bio link on about half of the reads.

## `batch_size` (type: `integer`):

Rows fetched at once. Leave empty for the measured per platform default; the measurement is in the README. Higher is faster and, above the measured point, loses rows.

## `mode` (type: `string`):

Leave empty for the default. sub\_actors calls the Influencer Finder, the Influencer Profile Scraper, and the Link in Bio Scraper and Newsletter Detector by Actor ID as runs on your account, so each stage bills its own events and its own actor-start. in\_process runs the same three stages inside this actor and charges the same stage events here. A complete row costs $0.021 either way, plus the add-ons you turn on.

## `twitch_client_id` (type: `string`):

Optional. Your own registered Twitch application client id. With `twitch_app_token` the Twitch reads use the official Helix API instead of the public web endpoint. Never a Mamba Labs credential.

## `twitch_app_token` (type: `string`):

Optional. An app access token for your Twitch client id (client credentials flow). Used only for Twitch reads, never stored or logged.

## `contribute_to_shared_pool` (type: `boolean`):

On by default. The run contributes the public records it finds to a shared creator and agency pool that all users of this actor read from, so a later run reads what this one found. Only public data that is already in your own output rows is sent: nothing from your Apify account, your input list, your API keys, or your own notes. Nothing is charged for a contribution. Turn this off and the run still reads the pool and writes nothing to it. Default: true.

## `source_tag` (type: `string`):

Attribution for published example tasks. Leave empty.

## Actor input object example

```json
{
  "keywords": [],
  "niche": "custom",
  "max_keywords_per_niche": 10,
  "handles": [],
  "platforms": [
    "tiktok",
    "instagram"
  ],
  "max_creators_per_keyword": 20,
  "max_creators": 200,
  "follower_min": 5000,
  "follower_max": 500000,
  "us_only": true,
  "skip_links": false,
  "render_unreadable_pages": false,
  "ai_check": false,
  "ai_provider": "anthropic",
  "scan_website_for_email": false,
  "match_agencies": true,
  "escalate_on_block": true,
  "contribute_to_shared_pool": true
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset of one flat row per creator per platform, with row\_status on every row so an error never reads as a blank. Every actor in the Mamba Labs creator suite writes the same column set; a column this actor does not fill is null on every row. The Overview view lists the columns this actor fills.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [],
    "handles": [],
    "platforms": [
        "tiktok",
        "instagram"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mambalabs/creator-lead-list-all-in-one").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": [],
    "handles": [],
    "platforms": [
        "tiktok",
        "instagram",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("mambalabs/creator-lead-list-all-in-one").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [],
  "handles": [],
  "platforms": [
    "tiktok",
    "instagram"
  ]
}' |
apify call mambalabs/creator-lead-list-all-in-one --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mambalabs/creator-lead-list-all-in-one"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/KnmByszcv135yM30G/builds/sOkfWcYHmidpbeX4p/openapi.json
