Newsletter Sponsor Tracker
Last updated October 25, 2026
Find who sponsors a newsletter, or which newsletters a brand sponsors. Reads public Substack, beehiiv, and other newsletter archives for sponsor placements and returns one row per sponsor with domain, placements, first and last issue seen, and issue links. For ad sales and sponsor research.
Install
npx @mambalabsdev/mcp-newsletter-sponsor-trackerEvery tool here also runs hosted, with no install at all, through Apify's MCP endpoint.
Features
- Find who sponsors a newsletter, or which newsletters a brand sponsors.
- Reads public Substack, beehiiv, and other newsletter archives for sponsor placements and returns one row per sponsor with domain, placements, first and last issue seen, and issue links.
- For ad sales and sponsor research.
- Pay per event: Sponsor row at $0.004.
- Pay per event: Brand search at $0.065.
Input
modestringoptionalMode. newsletter: newsletter links in, sponsors out. brand: a brand in, the newsletters that ran its sponsor placements out.
newsletter_urlsarrayoptionalNewsletter links. Newsletter mode. Home page links or domains of Substack, beehiiv, or other hosted newsletters, up to 100, for example notboring.co or newsletter.pragmaticengineer.com.
brand_namestringoptionalBrand name. Brand mode. The sponsor name as newsletters print it, for example Attio.
brand_domainstringoptionalBrand domain. Brand mode. The sponsor's domain, for example attio.com. A placement counts when its link goes to this domain or its name equals the brand name.
newsletters_to_checkstringoptionalNewsletters to check (brand mode). Brand mode. Candidate newsletters found in Google results whose issues are read to confirm the placement, 1 to 10.
issues_to_scanstringoptionalIssues per newsletter. Newest issues read per newsletter, 1 to 200 in newsletter mode and at most 20 in brand mode.
since_daysstringoptionalOnly issues from the last (days). Stop at issues older than this many days. 0: no date limit.
max_charge_usdstringoptionalMax charge per run (USD). Stop before a row would push this run past this amount. Empty: no limit beyond the one you set in Apify.
Output schema
{
"row_type": "string",
"mode": "string",
"input_key": "string",
"newsletter_name": "string",
"newsletter_url": "string",
"platform": "string",
"sponsor_name": "string",
"sponsor_domain": "string",
"sponsor_url": "string",
"placement_labels": "array",
"placements": "integer",
"issues_scanned": "integer",
"share_of_issues_pct": "integer",
"first_seen_at": "string",
"last_seen_at": "string",
"issue_urls": "array",
"issue_titles": "array",
"sponsored_issues": "null",
"sponsor_count": "null",
"sponsors_list": "null",
"oldest_issue_at": "null",
"newest_issue_at": "null",
"brand_name": "null",
"brand_domain": "null",
"found_via": "string",
"newsletters_checked": "null",
"newsletters_found": "null",
"row_status": "string",
"error_reason": "null",
"billable_events_json": "string",
"checked_at": "string"
}Pricing
Pay-per-event billing on the Apify platform. You are charged only when the actor returns a result. No subscription, no seat license.
Free-tier Apify accounts include monthly free compute. Upgrade for higher concurrency and volume.