API Reference
The Sponsorable API provides programmatic access to our database of podcast sponsors and sponsorships. Use it to integrate sponsor data into your applications, build custom reports, or power your own tools.
Overview
API access is included with every paid plan. Create an API key from your account settings and start querying sponsors, contacts, podcasts, categories, and your lists.
Base URL
https://app.sponsorable.com/api/v1 The pre-versioned /api/sponsors routes continue to work as aliases of
/api/v1/sponsors.
Authentication
The Sponsorable API uses Bearer token authentication. Include your API key in the
Authorization header of every request.
Authorization: Bearer YOUR_API_KEY You can obtain an API key from your account settings. Keep your API key secure and never expose it in client-side code or public repositories.
Example Request
curl https://app.sponsorable.com/api/v1/sponsors \
-H "Authorization: Bearer YOUR_API_KEY" Credits
Contact data follows the same rules as the Sponsorable app:
- Starter — revealing a contact costs 1 credit from your monthly allowance.
Locked contacts come back masked to initials (
"J. D.") with disclosure fields (has_email,email_domain,has_linkedin) so you can decide before spending. Reveals are per-organization and permanent — you're never charged twice for the same contact. - Pro — contact data is unlimited and always returned unmasked.
Reads never spend credits. Only the explicit
reveal endpoint charges. When your balance runs out, reveals return
402 Payment Required with your remaining balance.
Rate Limiting
The API enforces rate limits to ensure fair usage and maintain service stability. Rate limits are applied per organization.
| Per minute | 100 requests (rolling 60-second window) |
| Per day | 2,000 requests (UTC calendar day) |
When you exceed either limit, the API returns a 429 Too Many Requests response
with information about when you can retry.
{
"error": "Rate limit exceeded",
"retry_after": 45,
"retry_at": "2025-11-23T21:15:00Z"
}
Exceeding the daily limit returns the same shape with
"error": "Daily request limit exceeded" and a retry_at of the next
UTC midnight. Both responses include a Retry-After HTTP header indicating the
number of seconds to wait before making another request.
Search endpoints also cap pagination depth at page 20; requests for deeper
pages return 400 Bad Request. Narrow your filters instead of paging deep —
if your use case genuinely needs more, contact us.
Errors
The Sponsorable API uses conventional HTTP response codes to indicate the success or failure of requests.
| Code | Description |
|---|---|
200 | Success - The request completed successfully |
400 | Bad Request - Invalid request parameters |
401 | Unauthorized - Invalid or missing API key |
402 | Payment Required - Not enough credits (response includes credits_remaining) |
403 | Forbidden - Your plan doesn't include this (API access, podcasts, or reveals) |
404 | Not Found - The requested resource doesn't exist |
409 | Conflict - The item is already in the list |
429 | Rate Limited - Too many requests |
500 | Server Error - Something went wrong on our end |
Error Response Format
Error responses include an error field describing what went wrong:
{
"error": "Invalid API token"
} /api/v1/sponsors List Sponsors
Returns a paginated list of sponsors matching your search criteria. Use query parameters to filter and search the sponsor database.
Each row includes a representative contact. On Starter the contact is masked
(last name reduced to an initial, email withheld) with
contact_email_available indicating whether an email exists — use the
contacts endpoint to see all contacts and
reveal the ones you want.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number for pagination (max 20). Default: 1 |
limit | integer | Results per page (max 100). Default: 50 |
search | string | Full-text search by sponsor name |
category | string |
Filter by category slug (e.g., technology, business, comedy)
Arts arts books design fashion-beauty food performing-arts visual-arts Business business careers entrepreneurship investing management marketing non-profit Comedy comedy comedy-interviews improv stand-up Education education courses how-to language-learning self-improvement Fiction fiction comedy-fiction drama science-fiction Government government Health & Fitness health-fitness alternative-health fitness medicine mental-health nutrition sexuality History history Kids & Family kids-family education-for-kids parenting pets-animals stories-for-kids Leisure leisure animation-manga automotive aviation crafts games hobbies home-garden video-games Music music music-commentary music-history music-interviews News news business-news daily-news entertainment-news news-commentary politics sports-news tech-news Religion & Spirituality religion-spirituality buddhism christianity hinduism islam judaism religion spirituality Science science astronomy chemistry earth-sciences life-sciences mathematics natural-sciences nature physics social-sciences Society & Culture society-culture documentary personal-journals philosophy places-travel relationships Sports sports baseball basketball cricket fantasy-sports football golf hockey rugby running soccer swimming tennis volleyball wilderness wrestling Technology technology True Crime true-crime TV & Film tv-film after-shows film-history film-interviews film-reviews tv-reviews |
industry | string |
Filter by industry name. Values must be lowercase and URL encoded (e.g., computer%20software, marketing%20%26%20advertising)
accounting airlines/aviation alternative dispute resolution alternative medicine animation apparel & fashion architecture & planning arts & crafts automotive aviation & aerospace banking biotechnology broadcast media building materials business supplies & equipment capital markets chemicals civic & social organization civil engineering commercial real estate computer & network security computer games computer hardware computer networking computer software construction consumer electronics consumer goods consumer services cosmetics dairy defense & space design e-learning education management electrical/electronic manufacturing entertainment environmental services events services executive office facilities services farming financial services fine art fishery food & beverages food production fund-raising furniture gambling & casinos glass, ceramics & concrete government administration government relations graphic design health, wellness & fitness higher education hospital & health care hospitality human resources import & export individual & family services industrial automation information services information technology & services insurance international affairs international trade & development internet investment banking investment management law enforcement law practice legal services legislative office leisure, travel & tourism libraries logistics & supply chain luxury goods & jewelry machinery management consulting maritime market research marketing & advertising mechanical or industrial engineering media production medical devices medical practice mental health care military mining & metals motion pictures & film museums & institutions music nanotechnology newspapers nonprofit organization management oil & energy online media outsourcing/offshoring package/freight delivery packaging & containers paper & forest products performing arts pharmaceuticals philanthropy photography plastics political organization primary/secondary education printing professional training & coaching public policy public relations & communications public safety publishing railroad manufacture ranching real estate recreational facilities & services religious institutions renewables & environment research restaurants retail security & investigations semiconductors shipbuilding sporting goods sports staffing & recruiting telecommunications textiles think tanks tobacco translation & localization transportation/trucking/railroad utilities venture capital & private equity veterinary warehousing wholesale wine & spirits wireless writing & editing |
last | string | Filter by last sponsorship recency: day, week, month, or quarter |
podcasts | integer | Minimum number of podcasts sponsored (1-1,000,000) |
sponsorships | integer | Minimum number of total sponsorships (1-1,000,000) |
podcast_sponsored | string | Filter to sponsors of a specific podcast (by podcast ID) |
Example Request
curl "https://app.sponsorable.com/api/v1/sponsors?page=1&limit=25&search=shopify&category=technology" \
-H "Authorization: Bearer YOUR_API_KEY" GET /api/v1/sponsors?page=1&limit=25&search=shopify&category=technology HTTP/1.1
Host: app.sponsorable.com
Authorization: Bearer YOUR_API_KEY Response
{
"data": [
{
"domain": "shopify.com",
"name": "Shopify",
"sponsorships": 842,
"podcasts": 215,
"last_sponsorship": "2025-11-20",
"last_podcast": "How I Built This",
"industry": "Software",
"city": "Ottawa",
"state": "ON",
"country": "Canada",
"employees": 10000,
"description": "Shopify is a commerce platform that allows anyone to set up an online store...",
"keywords": ["ecommerce", "saas", "retail"],
"contact_title": "Director of Partnerships",
"contact_email": "partnerships@shopify.com",
"contact_email_available": true,
"contact_first_name": "Jane",
"contact_last_name": "Smith"
}
],
"pagination": {
"current_page": 1,
"total_pages": 1,
"total_results": 1,
"per_page": 25
}
} Response Fields
| Field | Type | Description |
|---|---|---|
domain | string | Company domain (unique identifier) |
name | string | Company/sponsor name |
sponsorships | integer | Total number of sponsorships |
podcasts | integer | Number of unique podcasts sponsored |
last_sponsorship | string | ISO 8601 date of most recent sponsorship |
last_podcast | string | Name of most recently sponsored podcast |
industry | string | Industry category |
city | string | Headquarters city |
state | string | Headquarters state/province |
country | string | Headquarters country |
employees | integer | Employee count |
description | string | Company description |
keywords | array | Technology/business keywords |
contact_title | string | Contact person's job title |
contact_email | string|null | Contact person's email (null on Starter until revealed) |
contact_email_available | boolean | Whether an email exists for the representative contact |
contact_first_name | string | Contact person's first name |
contact_last_name | string | Contact person's last name (initial only on Starter, e.g. "S." — the first name is an initial too) |
/api/v1/sponsors/:domain Get Sponsor
Retrieves detailed information about a specific sponsor, including their top podcasts, categories, and recent sponsorship activity.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
domain | string | The sponsor's domain (e.g., shopify.com) |
Example Request
curl https://app.sponsorable.com/api/v1/sponsors/shopify.com \
-H "Authorization: Bearer YOUR_API_KEY" GET /api/v1/sponsors/shopify.com HTTP/1.1
Host: app.sponsorable.com
Authorization: Bearer YOUR_API_KEY Response
{
"sponsor": {
"domain": "shopify.com",
"name": "Shopify",
"description": "Shopify is a commerce platform that allows anyone to set up an online store...",
"industry": "Software",
"keywords": ["ecommerce", "saas", "retail"],
"city": "Ottawa",
"state": "ON",
"country": "Canada",
"employee_count": 10000,
"sponsorships": 842,
"podcasts": 215,
"repeat_podcasts": 89,
"last_sponsorship_at": "2025-11-20",
"linkedin_url": "https://linkedin.com/company/shopify",
"x_url": "https://x.com/shopify",
"facebook_url": "https://facebook.com/shopify",
"contacts": 12
},
"top_podcasts": [
{
"podcast_id": "podcast_abc123",
"name": "How I Built This",
"sponsorships": 48,
"first_sponsorship": "2021-03-15",
"last_sponsorship": "2025-11-15"
},
{
"podcast_id": "podcast_def456",
"name": "The Tim Ferriss Show",
"sponsorships": 36,
"first_sponsorship": "2020-08-22",
"last_sponsorship": "2025-10-28"
}
],
"top_categories": [
{
"slug": "business",
"name": "Business",
"sponsorships": 312
},
{
"slug": "technology",
"name": "Technology",
"sponsorships": 245
}
],
"new_podcasts": [
{
"podcast_id": "podcast_ghi789",
"name": "Startup Stories",
"sponsorships": 2,
"first_sponsorship": "2025-10-01",
"last_sponsorship": "2025-11-01"
}
]
} Response Fields
Sponsor Object
| Field | Type | Description |
|---|---|---|
domain | string | Company domain (unique identifier) |
name | string | Company/sponsor name |
description | string | Company description |
industry | string | Industry category |
keywords | array | Technology/business keywords |
city | string | Headquarters city |
state | string | Headquarters state/province |
country | string | Headquarters country |
employee_count | integer | Number of employees |
sponsorships | integer | Total sponsorships |
podcasts | integer | Unique podcasts sponsored |
repeat_podcasts | integer | Podcasts sponsored multiple times |
last_sponsorship_at | string | ISO 8601 date of most recent sponsorship |
linkedin_url | string|null | LinkedIn company URL |
x_url | string|null | X (Twitter) URL |
facebook_url | string|null | Facebook URL |
contacts | integer | Number of contacts in database |
Top Podcasts & New Podcasts Arrays
Each array contains up to 5 podcast objects:
| Field | Type | Description |
|---|---|---|
podcast_id | string | Podcast identifier |
name | string | Podcast name |
sponsorships | integer | Number of sponsorships on this podcast |
first_sponsorship | string | ISO 8601 date of first sponsorship |
last_sponsorship | string | ISO 8601 date of most recent sponsorship |
Top Categories Array
Contains up to 5 category objects:
| Field | Type | Description |
|---|---|---|
slug | string | Category slug |
name | string | Category name |
sponsorships | integer | Number of sponsorships in this category |
Errors
{
"error": "Sponsor not found"
} /api/v1/sponsors/:domain/contacts Get Sponsor Contacts
Returns all known contacts at a sponsor, ordered by how likely each is to own the
podcast advertising budget. This endpoint never spends credits — on Starter, contacts
you haven't revealed come back locked and masked, with disclosure fields
showing what a reveal buys.
Example Request
curl https://app.sponsorable.com/api/v1/sponsors/shopify.com/contacts \
-H "Authorization: Bearer YOUR_API_KEY" Response
{
"data": [
{
"contact_id": "633ed132-02d1-46dd-be4c-11d861a3fe78",
"domain": "shopify.com",
"name": "J. S.",
"title": "Director of Partnerships",
"location": "Ottawa, ON, Canada",
"is_agency": false,
"locked": true,
"has_email": true,
"email_domain": "shopify.com",
"has_linkedin": true,
"email": null,
"linkedin_url": null
}
]
} Response Fields
| Field | Type | Description |
|---|---|---|
contact_id | string | Contact identifier — used to reveal |
name | string | Full name (initials only while locked, e.g. "J. S.") |
title | string | Job title (always visible) |
locked | boolean | Whether a reveal is required for email/LinkedIn |
has_email | boolean | Whether we have an email for this contact |
email_domain | string|null | Domain of the email (all contacts are in-house) |
has_linkedin | boolean | Whether we have a LinkedIn profile URL |
email | string|null | Email address (null while locked) |
linkedin_url | string|null | LinkedIn profile URL (null while locked) |
/api/v1/sponsors/:domain/contacts/:contact_id/reveal Reveal Contact
Spends 1 credit (Starter) to unlock a contact's email and LinkedIn for your entire organization, permanently. Idempotent — revealing an already-unlocked contact returns it without charging again. If we don't have an email for the contact yet, revealing triggers an immediate email search and the address appears on the contact shortly after, at no extra cost.
Example Request
curl -X POST \
https://app.sponsorable.com/api/v1/sponsors/shopify.com/contacts/633ed132-02d1-46dd-be4c-11d861a3fe78/reveal \
-H "Authorization: Bearer YOUR_API_KEY" Response
{
"contact": {
"contact_id": "633ed132-02d1-46dd-be4c-11d861a3fe78",
"domain": "shopify.com",
"name": "Jane Smith",
"title": "Director of Partnerships",
"locked": false,
"email": "jane.smith@shopify.com",
"linkedin_url": "https://linkedin.com/in/janesmith"
},
"credits_remaining": 87
} {
"error": "Insufficient credits",
"credits_remaining": 0
} credits_remaining is null on Pro (unlimited).
/api/v1/podcasts List Podcasts Pro plan
Search the podcast database. Available on the Pro plan (matching the podcasts section
in the app); other plans receive a 403.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (max 20). Default: 1 |
limit | integer | Results per page (max 100). Default: 50 |
search | string | Full-text search across podcast name and description |
category | string | Filter by category slug (same values as sponsors) |
industry | string | Only podcasts sponsored by companies in this industry |
last | string | Last episode recency: day, week, month, or quarter |
sponsors | integer | Minimum number of unique sponsors |
sponsorships | integer | Minimum number of total sponsorships |
episodes | integer | Minimum number of episodes |
sort_by | string | episodes, sponsors, sponsorships, or last_episode. Default: sponsors |
sort_order | string | asc or desc. Default: desc |
Response
{
"data": [
{
"podcast_id": "a03b138c-8b42-43bb-94a4-f2c9c45e289b",
"name": "How I Built This",
"description": "Stories behind the companies you know...",
"website_url": "https://example.com",
"categories": ["Business", "Entrepreneurship"],
"episodes": 512,
"last_episode_at": "2025-11-20",
"sponsorships": 1204,
"unique_sponsors": 87,
"repeat_sponsors": 41,
"last_sponsorship_at": "2025-11-20",
"image_url": "https://cdn.sponsorable.com/podcasts/a03b138c-....jpg"
}
],
"pagination": { "current_page": 1, "total_pages": 42, "total_results": 2071, "per_page": 50 }
} /api/v1/podcasts/:podcast_id Get Podcast Pro plan
The podcast's full profile, including the host/author name and email, plus its top sponsors and newest sponsors.
Response
{
"podcast": {
"podcast_id": "a03b138c-8b42-43bb-94a4-f2c9c45e289b",
"name": "How I Built This",
"author_name": "Guy Raz",
"author_email": "host@example.com",
"categories": ["Business"],
"episodes": 512,
"sponsorships": 1204,
"unique_sponsors": 87,
"last_episode_at": "2025-11-20",
"last_sponsorship_at": "2025-11-20",
"image_url": "https://cdn.sponsorable.com/podcasts/a03b138c-....jpg"
},
"top_sponsors": [
{
"domain": "shopify.com",
"name": "Shopify",
"industry": "Computer Software",
"country": "Canada",
"sponsorships": 48,
"first_sponsorship_at": "2021-03-15",
"last_sponsorship_at": "2025-11-15"
}
],
"newest_sponsors": [ ... ]
} /api/v1/categories List Categories
The full category tree — 19 root categories with their children — with podcast, episode, sponsor, and sponsorship totals for each.
Response
{
"data": [
{
"category_id": "9c60…",
"slug": "business",
"name": "Business",
"podcasts": 41230,
"episodes": 812044,
"sponsors": 18077,
"sponsorships": 402188,
"sponsored_podcasts": 9922,
"sponsored_episodes": 160021,
"children": [
{ "slug": "entrepreneurship", "name": "Entrepreneurship", ... }
]
}
]
} /api/v1/categories/:slug Get Category
Category totals plus its top 10 sponsors and top 10 sponsored podcasts, each with sponsorship counts and first/last sponsorship dates.
Lists
Your organization's lists — the same lists as in the app, so items added via the API appear there immediately and can drive email alerts.
| Endpoint | Description |
|---|---|
GET /api/v1/lists | All lists with per-type item counts |
POST /api/v1/lists | Create a list. Body: name |
GET /api/v1/lists/:list_id | List detail with full item data — sponsors, podcasts, categories, and contacts (contacts are locked/masked per your plan, same as everywhere else) |
DELETE /api/v1/lists/:list_id | Delete a list |
POST /api/v1/lists/:list_id/items | Add an item. Body: item_id, item_type (sponsor | podcast | category | contact). Returns 409 if already in the list |
DELETE /api/v1/lists/:list_id/items/:item_id | Remove an item |
Items are keyed the same way as everywhere in the API: sponsors by domain,
podcasts by podcast_id, categories by category_id, and contacts
by contact_id.
Example: add a sponsor to a list
curl -X POST https://app.sponsorable.com/api/v1/lists/4645de26-17a1-42a1-8e82-6d2c1475c880/items \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "item_id=shopify.com" \
-d "item_type=sponsor"