{
  "openapi": "3.0.1",
  "info": {
    "title": "Influencer Lead List Builder",
    "description": "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.",
    "version": "0.1",
    "x-build-id": "sOkfWcYHmidpbeX4p"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mambalabs~creator-lead-list-all-in-one/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mambalabs-creator-lead-list-all-in-one",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/mambalabs~creator-lead-list-all-in-one/runs": {
      "post": {
        "operationId": "runs-sync-mambalabs-creator-lead-list-all-in-one",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/mambalabs~creator-lead-list-all-in-one/run-sync": {
      "post": {
        "operationId": "run-sync-mambalabs-creator-lead-list-all-in-one",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "niche": {
            "title": "Niche (curated keyword set)",
            "enum": [
              "custom",
              "personal_finance",
              "business_marketing",
              "health_fitness",
              "beauty_skincare",
              "parenting_family",
              "food_cooking",
              "travel",
              "tech_ai"
            ],
            "type": "string",
            "description": "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.",
            "default": "custom"
          },
          "max_keywords_per_niche": {
            "title": "Keywords per niche",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "How many keywords from the niche set to search. 1 to 60.",
            "default": 10
          },
          "handles": {
            "title": "Creator handles or profile URLs",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "platforms": {
            "title": "Platforms",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string",
              "enum": [
                "tiktok",
                "instagram",
                "youtube",
                "pinterest",
                "twitch",
                "threads",
                "podcast"
              ],
              "enumTitles": [
                "TikTok",
                "Instagram",
                "YouTube",
                "Pinterest",
                "Twitch",
                "Threads",
                "Podcasts (Apple and Spotify show pages, public feeds)"
              ]
            }
          },
          "max_creators_per_keyword": {
            "title": "Creators per keyword per platform",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "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.",
            "default": 20
          },
          "max_creators": {
            "title": "Maximum creators for the run",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap on rows returned, so a broad niche cannot run away.",
            "default": 200
          },
          "follower_min": {
            "title": "Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "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.",
            "default": 5000
          },
          "follower_max": {
            "title": "Maximum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Drop creators whose follower count is known and above this.",
            "default": 500000
          },
          "us_only": {
            "title": "US creators only",
            "type": "boolean",
            "description": "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.",
            "default": true
          },
          "skip_links": {
            "title": "Skip the link-in-bio check",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "render_unreadable_pages": {
            "title": "Render pages that do not load (headless browser)",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "ai_check": {
            "title": "AI newsletter check (your own API key)",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "ai_provider": {
            "title": "AI provider",
            "enum": [
              "anthropic",
              "openai"
            ],
            "type": "string",
            "description": "Which API the key belongs to.",
            "default": "anthropic"
          },
          "ai_api_key": {
            "title": "AI API key",
            "type": "string",
            "description": "Your own model API key. Used only when `ai_check` is on. Never stored, logged, or written to a row."
          },
          "scan_website_for_email": {
            "title": "Scan own website for an email (add-on)",
            "type": "boolean",
            "description": "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).",
            "default": false
          },
          "match_agencies": {
            "title": "Match manager emails to talent agencies",
            "type": "boolean",
            "description": "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).",
            "default": true
          },
          "escalate_on_block": {
            "title": "Retry blocked fetches on residential",
            "type": "boolean",
            "description": "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.",
            "default": true
          },
          "batch_size": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "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": {
            "title": "Execution mode",
            "enum": [
              "sub_actors",
              "in_process"
            ],
            "type": "string",
            "description": "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": {
            "title": "Twitch Helix client id (optional)",
            "type": "string",
            "description": "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": {
            "title": "Twitch Helix app token (optional)",
            "type": "string",
            "description": "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": {
            "title": "Contribute to the shared pool",
            "type": "boolean",
            "description": "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.",
            "default": true
          },
          "source_tag": {
            "title": "Source tag",
            "type": "string",
            "description": "Attribution for published example tasks. Leave empty."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}