# Brand Sponsor Finder (`mambalabs/brand-sponsor-finder`) Actor

Find brands that pay creators in your niche. Reads public YouTube descriptions, podcast show notes, newsletter issues, event sponsor pages, partnership job posts, and creator program pages. One row per sighting with evidence link and date, one per brand with a recency score.

- **URL**: https://apify.com/mambalabs/brand-sponsor-finder.md
- **Developed by:** [Mamba Labs](https://apify.com/mambalabs) (community)
- **Categories:** Lead generation, For creators, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $17.00 / 1,000 brand rows

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 does Brand Sponsor Finder do?

Enter a niche. Brand Sponsor Finder returns the brands that paid for a placement in that niche in the last 90 days (or the window you set), with the public evidence for every placement.

It reads six public sources:

| Source | What counts as a sighting | Date on the row |
| --- | --- | --- |
| YouTube video descriptions | A sponsor line ("sponsored by", "thanks to our sponsors"), a promo code, or a discount line with a link to the brand | The video's publish date |
| Podcast show notes | The same, in an episode's show notes | The episode's date |
| Newsletter issues (Substack, beehiiv, and other archives) | A sponsor slot ("Presented by", "Together with", "Today's sponsor") | The issue's date |
| Event sponsor pages | A brand linked in the page's sponsor or partner section | The event date when you give it and it is inside the window; otherwise undated |
| Partnership job posts (Greenhouse, Lever, Ashby) | An open influencer, creator, partnership, affiliate, sponsorship, or ambassador role at a brand the other sources found | The posting's last update |
| Brand creator and affiliate program pages | An open creator, affiliate, or ambassador program on the brand's own site | Undated: these pages carry no date |

You get two kinds of rows in one dataset:

- **Brand rows**, one per brand domain: name, domain, sighting count, last seen date, sources, the creators and events it paid, any public partnership contact, and a recency score.
- **Sighting rows**, one per placement: brand, domain, source, creator or event, date, evidence link, promo code, placement type, and a one sentence pitch angle.

Every sighting row carries an evidence link you can open. Nothing older than your window is returned. Each brand appears once, merged by domain.

Bought by creators and talent managers looking for brands that already pay creators like them, agencies building sponsor pipelines, and creator platforms filling a brand database.

> 🚫 **Not covered: Instagram, TikTok, and the Meta Ad Library.** We tested each without a login on 2026-10-28. Instagram profile and post pages and TikTok's Creative Center and ad library returned a login wall, an empty page, or an error on 10 of 10 tries. The Meta Ad Library web page shows ads without a login, but Meta's robots.txt disallows all automated collection and its notice prohibits it without Meta's written permission, so this actor does not read it. Meta's official Ad Library API covers ads shown in the EU and political ads only, not US product ads.

### 💡 Why use Brand Sponsor Finder?

- **Proof, not guesses.** Every row links to the video, episode, issue, page, or job post that shows the placement.
- **Recent only.** A brand that sponsored someone two years ago is not a lead. The window is yours to set.
- **One brand list.** Sightings from every source merge into one row per brand domain, scored by how often and how recently the brand paid.
- **Shortlinks resolved.** bit.ly, affiliate, and podcast ad network links are followed to the brand's own domain.
- **Clay ready.** Every input is accepted as text, which is what Clay sends.

### 🛠️ How to use Brand Sponsor Finder

1. Enter a **niche**, for example `health and fitness`.
2. Optional: add **audience keywords** to widen the search, your own **seed** channels, podcast feeds, or newsletters, and an **event calendar** of sponsor pages.
3. Optional: add **your own YouTube Data API key** to search YouTube for channels and read up to 50 uploads per channel.
4. Run it. Open the **Brands** view for the brand list, or **Sightings** for every placement.

**Starting sources for three niches.** For `health and fitness`, `beauty and skincare`, and `food and beverage`, the actor also reads the YouTube channels, podcasts, newsletters, and event pages Mamba Labs read in its own research on 2026-10-28. Turn this off with `use_niche_presets` set to `false`.

**Which sources need a key.** None does. Without a YouTube key, YouTube reads the channels the actor already knows (your seeds and the niche presets) through each channel's public feed, which lists its 15 newest uploads. With your key, the actor also searches YouTube for channels in the niche (100 of your daily quota units per search term) and reads up to 50 uploads per channel. Your key is sent only to Google, never logged, and never written to a row.

### 💵 How much does Brand Sponsor Finder cost?

Pay per event. You pay for what you get, plus a small charge for each run.

| Event | Price |
| --- | --- |
| Brand row (`brand-row`) | $0.02 per brand |
| Sighting row (`sighting-row`) | $0.005 per sighting |
| Run start (`apify-actor-start`) | $0.002 per run |

Free rows: a run with no result writes one free row that says why, and a refused input writes one free row (see the FAQ). Apify platform usage is included in these prices.

**Examples, at the prices above.** 50 brands with 100 sightings: about $1.50. Brand rows only (`include_sightings` false), 80 brands: about $1.60.

**Free plan.** On Apify's free plan the actor stops at $1.50 of charges a month, about 300 sighting rows, so you can try it. Any paid Apify plan removes the cap. It resets on the 1st.

**Your own cap.** `max_charge_usd` stops the run before it would charge more than that amount. Brand rows are delivered first, highest recency score first, so a capped run keeps the best brands.

### ⌨️ Input

| Field | What it does |
| --- | --- |
| `niche` | The audience niche. Used for search and written on every row. |
| `audience_keywords` | More search terms, up to 20. |
| `window_days` | Only sightings from the last N days. Default 90. |
| `sources` | Any of `youtube`, `podcast`, `event`, `newsletter`, `job_post`, `program`. Empty runs all. |
| `seed_sources` | YouTube channel URLs or @handles, podcast feed URLs, or newsletter URLs to read first. |
| `event_calendar` | Events to read: a JSON list of `{"name", "url", "date", "city", "audience", "size"}`, where `url` is the sponsor or partner page, or one sponsor page URL per line. |
| `youtube_api_key` | Optional, your own YouTube Data API key. |
| `use_niche_presets` | `true` or `false`, default `true`. |
| `include_brands`, `include_sightings` | `true` or `false`, default `true` each. |
| `max_channels`, `max_videos_per_channel`, `max_podcasts`, `max_episodes_per_podcast`, `max_newsletters`, `max_issues_per_newsletter`, `max_brands_to_check` | How much to read. Defaults max_channels 20, max_videos_per_channel 15, max_podcasts 15, max_episodes_per_podcast 8, max_newsletters 8, max_issues_per_newsletter 8, max_brands_to_check 25. |
| `max_charge_usd` | Optional spending cap for the run. |

Every input is a text field, so a Clay column maps straight in: numbers and `true`/`false` as text, and lists one per line or separated by commas. `event_calendar` takes a JSON list of objects or one sponsor page URL per line.

### 📤 Output

Example brand row:

```json
{
  "row_type": "brand",
  "input_key": "niche:health and fitness",
  "niche": "health and fitness",
  "brand": "AG1",
  "brand_domain": "drinkag1.com",
  "contact": "hiring: Senior Manager, Creator Commerce (TikTok Shop & Trybe)",
  "domain": "drinkag1.com",
  "name": "AG1",
  "niches": [
    "health and fitness"
  ],
  "sighting_count": 19,
  "last_seen_date": "2026-10-28",
  "sources": [
    "job_post",
    "podcast",
    "youtube"
  ],
  "creators_sponsored": [
    "Andrew Huberman",
    "Huberman Lab",
    "Feel Better, Live More with Dr Rangan Chatterjee"
  ],
  "recency_score": 37,
  "row_status": "ok",
  "billable_events_json": "{\"brand-row\":1}"
}
```

Example sighting row:

```json
{
  "row_type": "sighting",
  "input_key": "niche:health and fitness",
  "niche": "health and fitness",
  "brand": "AG1",
  "brand_domain": "drinkag1.com",
  "source": "youtube",
  "creator_or_event": "Andrew Huberman",
  "sighting_date": "2026-10-26",
  "undated": false,
  "evidence_link": "https://www.youtube.com/watch?v=NlVu0P1RdHs",
  "placement_type": "sponsored_read",
  "notes": "video \"Unlocking Persistent Motivation & Extreme Resilience | Ross Edgley\"; description line: AG1: https://drinkag1.com/huberman; read from the channel RSS feed",
  "pitch_angle": "AG1 paid for a sponsor read with Andrew Huberman on 2026-10-26; pitch a health and fitness creator with a similar audience and cite that placement.",
  "row_status": "ok",
  "billable_events_json": "{\"sighting-row\":1}"
}
```

Field names match a `brand_sightings` table (sighting rows) and a `brands` table (brand rows), so a run loads into a database without remapping. `placement_type` is one of `sponsored_read`, `promo_code`, `affiliate_link`, `newsletter_sponsor`, `event_sponsor`, `partnership_job`, `creator_program`. `recency_score` counts dated sightings in the window, with those in the last 30 days counted twice.

### ⚠️ Limits

- **YouTube without a key reads 15 uploads per channel**, the size of a channel's public feed. Daily channels may have older in-window videos that are not read.
- **Event logos drawn in JavaScript are not read.** The row for that event says the section had no links.
- **Program pages and undated events have no date.** Those rows carry `undated: true` and do not count toward the recency score.
- **Paywalled newsletter posts** show only their free preview, where most sponsor slots sit.
- **A named partnership contact is rare on public pages.** `contact_email` is filled only from a role address (partnerships@, creators@, affiliates@, pr@) on the brand's own program page.
- **Prices or rates** are not published by brands, so `price_or_rate` is normally null.

### ❓ FAQ

**What happens when the input has nothing to run?**
The run writes one row and ends successfully, so a refused input never shows as a failed run. The row has `row_type` `error`, and `error_reason` starts with `input_invalid:` followed by what was wrong and how to fix it. This actor charges nothing for it. Apify charges its own run start event ($0.002) on every run, a refused one included.

**Does it log in anywhere or use someone else's actor?**
No. It reads public pages, public feeds, and public APIs only, checks robots.txt before every web page, and never calls another developer's actor. No key of ours is used on your run.

**Why is a brand I know missing?**
It had no placement this actor could read inside your window, or it paid on Instagram or TikTok only. Add the creator's channel, feed, or newsletter as a seed to read it first.

### 🧩 More Mamba Labs actors

| Actor | Actor ID |
|---|---|
| [Account Hiring Watch](https://apify.com/mambalabs/account-hiring-watch?fpr=mamba) | `gRAZA5WBi1r6L0gy7` |
| [Agent Accessibility Auditor](https://apify.com/mambalabs/agent-accessibility-auditor?fpr=mamba) | `anxbRv0lKrpQ1pnua` |
| [Agent to Brokerage Resolver](https://apify.com/mambalabs/agent-brokerage-resolver?fpr=mamba) | `ePRRGLxOGyaVHO4dI` |
| [AI Tooling Detector](https://apify.com/mambalabs/ai-tooling-detector?fpr=mamba) | `EwkHhmqiuJgRoVEbE` |
| [B2B Reddit Conversation Monitor](https://apify.com/mambalabs/b2b-reddit-conversation-monitor?fpr=mamba) | `SoDryzzsjmY3SsiyG` |
| [Bluesky Brand Presence Mapper](https://apify.com/mambalabs/bluesky-brand-presence-mapper?fpr=mamba) | `eLpxzP4IuXznlFVND` |
| [Career Change Signal Engine](https://apify.com/mambalabs/career-change-signal-engine?fpr=mamba) | `vX2Yga1a6wGaXaP14` |
| [Company Change Event Feed](https://apify.com/mambalabs/company-change-event-feed?fpr=mamba) | `oX44rS0fkEJ3rXLWe` |
| [Company Contact Details Extractor](https://apify.com/mambalabs/company-contact-details-extractor?fpr=mamba) | `4mMncKaJykiq94grz` |
| [Company Discovery List Builder](https://apify.com/mambalabs/company-discovery-list-builder?fpr=mamba) | `jch0HdaZnpbMqlcGS` |
| [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher?fpr=mamba) | `YlUtLWjfPpqykmB8g` |
| [Company Funding Record](https://apify.com/mambalabs/funding-investor-record?fpr=mamba) | `OFS4Mt1gyYNtGfUbE` |
| [Company Headcount Estimator](https://apify.com/mambalabs/company-headcount-estimator?fpr=mamba) | `aHC4GROnNt6kfZe5r` |
| [Company Identity Resolver](https://apify.com/mambalabs/company-identity-resolver?fpr=mamba) | `lr8fTRAmZCBZmuwwh` |
| [Company Social Presence Mapper](https://apify.com/mambalabs/company-social-presence-mapper?fpr=mamba) | `4k6CCemkgBDz18m2h` |
| [Competitor Price, Stock, and Changelog Monitor](https://apify.com/mambalabs/competitor-price-stock-changelog-monitor?fpr=mamba) | `yxdgCbUQ4PYQWwRNU` |
| [Contact Classifier](https://apify.com/mambalabs/contact-classifier?fpr=mamba) | `0lGSeYJmniXhGANnO` |
| [Contractor License Lookup](https://apify.com/mambalabs/contractor-license-lookup?fpr=mamba) | `WBYK3CPI2kdeq4bP1` |
| [Cookie Consent Audit](https://apify.com/mambalabs/cookie-consent-audit?fpr=mamba) | `TrKyOS0KBoGC35nbr` |
| [Domain Deliverability Checker](https://apify.com/mambalabs/domain-deliverability-checker?fpr=mamba) | `0tVgxI7A6o9jMlxmc` |
| [Domain to LinkedIn URL Resolver](https://apify.com/mambalabs/domain-to-linkedin-url-resolver?fpr=mamba) | `3HtnSaqPHOg1Qg5gx` |
| [Ecommerce Platform Profiler](https://apify.com/mambalabs/ecommerce-platform-profiler?fpr=mamba) | `5G2NeYjBbQTjaTn9L` |
| [Ecommerce Store Discovery](https://apify.com/mambalabs/ecommerce-store-discovery?fpr=mamba) | `PeHu4sLyFvQHXUUrX` |
| [Event Presence Index](https://apify.com/mambalabs/event-presence-index?fpr=mamba) | `WLhMy8fMDgsxdYxv5` |
| [Expert Witness Directory](https://apify.com/mambalabs/expert-witness-directory?fpr=mamba) | `LIpwlgfE3LaQBaXd4` |
| [Funding and Press Signal Scanner](https://apify.com/mambalabs/funding-press-signal-scanner?fpr=mamba) | `FS13X6dhQVgX3XOM6` |
| [GitHub Organization Signal Scanner](https://apify.com/mambalabs/github-organization-signal-scanner?fpr=mamba) | `ahF8RRpv5mzPao5CN` |
| [Google Ads Transparency Monitor](https://apify.com/mambalabs/google-ads-transparency-monitor?fpr=mamba) | `1eOwxhBVxzvOXAm4s` |
| [Government Contract Award Monitor](https://apify.com/mambalabs/public-award-monitor?fpr=mamba) | `zhEtllASykOcx9hJ8` |
| [GTM Hiring Signal Scraper](https://apify.com/mambalabs/gtm-hiring-signal-scraper?fpr=mamba) | `D7O1SA2EqwHGsGr1P` |
| [GTM Signals Aggregator](https://apify.com/mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay?fpr=mamba) | `xKdRfnfFNkdMpFuNs` |
| [ICP Fit Scorer](https://apify.com/mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay?fpr=mamba) | `W161DT8W4kW55dMFh` |
| [Influencer Change Monitor](https://apify.com/mambalabs/creator-change-monitor?fpr=mamba) | `d2VVgahNL6UmcLkhg` |
| [Influencer Finder](https://apify.com/mambalabs/creator-finder?fpr=mamba) | `tpkedmloIIWtXx6sg` |
| [Influencer Lead List Builder](https://apify.com/mambalabs/creator-lead-list-all-in-one?fpr=mamba) | `KnmByszcv135yM30G` |
| [Influencer Profile Scraper](https://apify.com/mambalabs/creator-profile-reader?fpr=mamba) | `EqEnklDVMIcB1V499` |
| [Influencer Talent Agency Lookup](https://apify.com/mambalabs/talent-agency-lookup?fpr=mamba) | `zCuX4Mgyg6JvXgGzd` |
| [Instagram Facebook Brand Presence Mapper](https://apify.com/mambalabs/meta-brand-presence-mapper?fpr=mamba) | `HXh65I0JBjPsunbY8` |
| [Integration and Marketplace Presence Mapper](https://apify.com/mambalabs/integration-marketplace-presence-mapper?fpr=mamba) | `V0guNuvM85Q61f2gj` |
| [Job Board Keyword Signal Scanner](https://apify.com/mambalabs/job-board-keyword-signal-scanner?fpr=mamba) | `4DvqpvhMR74NLcDDY` |
| [Job Change Tracker](https://apify.com/mambalabs/job-change-tracker?fpr=mamba) | `L8UbEmMJC1XYPSZOb` |
| [Job Posting Monitor](https://apify.com/mambalabs/gtm-job-discovery?fpr=mamba) | `QCfICD9kOPiOdj5iI` |
| [Legal Entity Resolver](https://apify.com/mambalabs/legal-entity-resolver?fpr=mamba) | `KHFyPCDIx7CyqULYm` |
| [Link in Bio Scraper and Newsletter Detector](https://apify.com/mambalabs/link-in-bio-newsletter-checker?fpr=mamba) | `OorucdheTIgu7RFzK` |
| [LinkedIn Company Page Mapper](https://apify.com/mambalabs/linkedin-company-presence-mapper?fpr=mamba) | `zOPm6A9JEhUGcIdFW` |
| [LinkedIn Post Tracker](https://apify.com/mambalabs/linkedin-post-engager-capture?fpr=mamba) | `oiGLNPuaf5BRaz9K5` |
| [Local Business Lead Builder](https://apify.com/mambalabs/local-business-lead-builder?fpr=mamba) | `qMN97aoHhsAS5bznV` |
| [Local Rank and Map Pack Tracker](https://apify.com/mambalabs/local-rank-map-pack-tracker?fpr=mamba) | `gv0kyHGDIg8XscclB` |
| [Lookalike Company Finder](https://apify.com/mambalabs/lookalike-company-finder?fpr=mamba) | `e2O426WBAbLLQL4Z2` |
| [Manufacturer and Supplier Finder](https://apify.com/mambalabs/manufacturer-supplier-finder?fpr=mamba) | `Qcsdmd0lUfPzVkonh` |
| [Meta Ad Library Monitor](https://apify.com/mambalabs/meta-ad-library-monitor?fpr=mamba) | `J1GWlSXfSGU3u8Wng` |
| [Mobile Phone Waterfall](https://apify.com/mambalabs/mobile-phone-waterfall-orchestrator?fpr=mamba) | `6OOgPktf7RIa5XCOP` |
| [New Company Registrations Feed](https://apify.com/mambalabs/new-company-registrations-feed?fpr=mamba) | `g2WfZhWvCtc57g2Jo` |
| [New Hire Finder](https://apify.com/mambalabs/new-hire-finder?fpr=mamba) | `cKuc38p4nYHNF3IW8` |
| [Newsletter Sponsor Tracker](https://apify.com/mambalabs/newsletter-sponsor-tracker?fpr=mamba) | `qSwpqxD1TiPZpLQHv` |
| [Open Tender and RFP Finder](https://apify.com/mambalabs/open-tender-rfp-finder?fpr=mamba) | `kPTGz6t6TFoUUyfaO` |
| [Outbound Stack Detector](https://apify.com/mambalabs/outbound-infrastructure-fingerprint?fpr=mamba) | `v43UJC8r7qW7cBSTG` |
| [Page Finder and Extractor](https://apify.com/mambalabs/page-finder-extractor?fpr=mamba) | `TpurgcOZbVnknlaiC` |
| [Partner and Member Directory Extractor](https://apify.com/mambalabs/partner-member-directory-extractor?fpr=mamba) | `ZX0XJPPUvnFJxeC1a` |
| [People Finder & Email Verifier](https://apify.com/mambalabs/people-finder?fpr=mamba) | `LEgloG7tWgQl4o6TD` |
| [Person LinkedIn URL Resolver](https://apify.com/mambalabs/person-linkedin-url-resolver?fpr=mamba) | `ssuyPV8LnEsL8qbnb` |
| [Person Social Footprint Mapper](https://apify.com/mambalabs/person-social-footprint-mapper?fpr=mamba) | `jfQXa2zW9FHCJot9K` |
| [Personal Email to Company Resolver](https://apify.com/mambalabs/personal-email-to-company-resolver?fpr=mamba) | `AefT5Ye6YNPFQwJBf` |
| [Pinterest Brand Presence Mapper](https://apify.com/mambalabs/pinterest-brand-presence-mapper?fpr=mamba) | `d1HvjZfKhgvWsoEwn` |
| [Podcast Guest and Host Finder](https://apify.com/mambalabs/podcast-guest-host-finder?fpr=mamba) | `o2MGSvgbSLeeXOsIo` |
| [Prospect Engine](https://apify.com/mambalabs/b2b-prospect-engine?fpr=mamba) | `q9rT6v64nUJdPexOQ` |
| [Public Feature Board and Roadmap Monitor](https://apify.com/mambalabs/public-feature-board-roadmap-monitor?fpr=mamba) | `rcHF5gj5r2Vqnry35` |
| [Publishing Frequency Tracker](https://apify.com/mambalabs/blog-publishing-frequency?fpr=mamba) | `TbLwaUUATdYb6wp4N` |
| [Reddit Brand Presence Mapper](https://apify.com/mambalabs/reddit-brand-presence-mapper?fpr=mamba) | `pKQZmDaT70SEb54bZ` |
| [Reporting Window Finder](https://apify.com/mambalabs/public-company-reporting-window-finder?fpr=mamba) | `uINxR7a1IW8qUTRUX` |
| [Sequencer Event Poller](https://apify.com/mambalabs/sequencer-event-poller?fpr=mamba) | `S6s8Rjd61tGdrMRk4` |
| [Sequencer Lead Push](https://apify.com/mambalabs/clay-to-instantly-smartlead-push?fpr=mamba) | `0Jv27VeWM5tSZQs9x` |
| [Team Page People Extractor](https://apify.com/mambalabs/team-page-people-extractor?fpr=mamba) | `j8a9zX0k4mNbvDbWK` |
| [Tech Stack Signal Detector](https://apify.com/mambalabs/gtm-tech-stack-signal-scraper?fpr=mamba) | `qyd7nNyqFPelQViBx` |
| [TikTok Brand Presence Mapper](https://apify.com/mambalabs/tiktok-brand-presence-mapper?fpr=mamba) | `fco8FvoJcSafbeyd1` |
| [Trustpilot Reputation Enricher](https://apify.com/mambalabs/review-platform-reputation-enricher?fpr=mamba) | `3lIqfCt61j4hqE1xz` |
| [VC and Accelerator Portfolio List Builder](https://apify.com/mambalabs/vc-accelerator-portfolio-list-builder?fpr=mamba) | `chH8hrfuoqqolW06m` |
| [WCAG Accessibility Audit](https://apify.com/mambalabs/wcag-accessibility-audit?fpr=mamba) | `P3jBj3FRghKEhX52z` |
| [Website Phrase and Business Model Classifier](https://apify.com/mambalabs/website-phrase-business-model-classifier?fpr=mamba) | `CBuZ9k7sRwBeiKiCS` |
| [Website Traffic Rank Estimator](https://apify.com/mambalabs/website-traffic-rank-estimator?fpr=mamba) | `GnOFUzlNVIoXgeJjH` |
| [Work Email Waterfall](https://apify.com/mambalabs/email-waterfall-orchestrator?fpr=mamba) | `OT6xqTFThC0Rjf7Zj` |
| [Workplace Program Detector](https://apify.com/mambalabs/workplace-program-detector?fpr=mamba) | `Li6pPDhqbdzFz3h7G` |
| [X Brand Presence Mapper](https://apify.com/mambalabs/x-brand-presence-mapper?fpr=mamba) | `oLOgadhHUkNAyDA3w` |
| [YouTube Channel Stats Extractor](https://apify.com/mambalabs/youtube-channel-transcript-extractor?fpr=mamba) | `6hSpD3kd2s2IQ4VSs` |

# Actor input Schema

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

The audience niche, for example "health and fitness", "beauty and skincare", or "food and beverage". Searches for channels, shows, and newsletters use it, and every row carries it. These three niches also start from a list of sources Mamba Labs has read before (turn off with use_niche_presets).

## `audience_keywords` (type: `string`):

Optional. More search terms for the audience, one per line or separated by commas, for example "strength training". Each one widens the podcast, newsletter, and (with your key) YouTube channel search. Up to 20. A text field, so a Clay column maps straight in.

## `window_days` (type: `string`):

Only sightings from the last N days. Whole number, default 90, at most 365. Sent as text so Clay works.

## `sources` (type: `string`):

Optional. Which sources to run, separated by commas, any of: youtube, podcast, event, newsletter, job_post, program. Empty runs all of them. job_post and program check the brands the other sources found.

## `seed_sources` (type: `string`):

Optional. YouTube channel URLs or @handles, podcast RSS feed URLs, or newsletter URLs to read first, one per line or separated by commas. Each is read even beyond the per source limits.

## `event_calendar` (type: `string`):

Optional. Events whose sponsor or partner page to read, as a JSON list of objects: \[{"name": "...", "url": "sponsor page URL", "date": "YYYY-MM-DD", "city": "...", "audience": "...", "size": "..."}], or one sponsor page URL per line. url is needed; the rest is optional. A dated event inside the window gives dated rows; an undated or upcoming event gives undated rows.

## `youtube_api_key` (type: `string`):

Optional, your own key from Google Cloud (free quota). With it the actor searches YouTube for channels in the niche and reads up to 50 uploads per channel; channel search uses 100 of your daily quota units per search term. Without it the actor reads each channel's public feed (15 newest uploads) and only the channels it already knows. Sent only to googleapis.com, never logged or written to a row.

## `use_niche_presets` (type: `string`):

true or false, default true. For health and fitness, beauty and skincare, and food and beverage, also read the channels, shows, newsletters, and event pages Mamba Labs has read before.

## `include_brands` (type: `string`):

true or false, default true. One row per brand domain with sighting count, last seen date, sources, creators or events, contact, and recency score.

## `include_sightings` (type: `string`):

true or false, default true. One row per sighting with its evidence link, date, promo code, placement type, and pitch angle.

## `max_channels` (type: `string`):

YouTube channels read per run. Whole number, default 20, at most 100. Sent as text so Clay works.

## `max_videos_per_channel` (type: `string`):

Newest uploads read per channel (the public feed holds 15). Whole number, default 15, at most 50. Sent as text so Clay works.

## `max_podcasts` (type: `string`):

Podcast shows read per run. Whole number, default 15, at most 100. Sent as text so Clay works.

## `max_episodes_per_podcast` (type: `string`):

Newest episodes read per show. Whole number, default 8, at most 30. Sent as text so Clay works.

## `max_newsletters` (type: `string`):

Newsletters read per run. Whole number, default 8, at most 50. Sent as text so Clay works.

## `max_issues_per_newsletter` (type: `string`):

Newest issues read per newsletter. Whole number, default 8, at most 30. Sent as text so Clay works.

## `max_brands_to_check` (type: `string`):

Brands, most sighted first, whose job boards and program pages are checked. Whole number, default 25, at most 200. Sent as text so Clay works.

## `max_charge_usd` (type: `string`):

Optional. The run stops before it would charge more than this.

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

Internal attribution tag. Leave empty.

## Actor input object example

```json
{
  "niche": "health and fitness",
  "audience_keywords": "strength training",
  "window_days": "90",
  "use_niche_presets": "true",
  "include_brands": "true",
  "include_sightings": "true",
  "max_channels": "20",
  "max_videos_per_channel": "15",
  "max_podcasts": "15",
  "max_episodes_per_podcast": "8",
  "max_newsletters": "8",
  "max_issues_per_newsletter": "8",
  "max_brands_to_check": "25"
}
```

# Actor output Schema

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

No description

## `run_summary` (type: `string`):

No description

# 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 = {
    "niche": "health and fitness",
    "audience_keywords": "strength training"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mambalabs/brand-sponsor-finder").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 = {
    "niche": "health and fitness",
    "audience_keywords": "strength training",
}

# Run the Actor and wait for it to finish
run = client.actor("mambalabs/brand-sponsor-finder").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 '{
  "niche": "health and fitness",
  "audience_keywords": "strength training"
}' |
apify call mambalabs/brand-sponsor-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mambalabs/brand-sponsor-finder"
        }
    }
}
```

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/PPgK6xrgOmvL7Nrys/builds/VhE6H0A2DKVyzeeZz/openapi.json
