Spotify Podcast API
Spotify podcast show — publisher, rating, topics, explicit flag, and totalEpisodes as clean JSON.
GET request to /v1/spotify/podcast that responds with clean JSON and costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.What is the Spotify Podcast API?
Pass a Spotify show/podcast URL, URI, or ID (not an artist URL) and get clean JSON: id, name, description, publisher{name}, rating{average, totalRatings}, topics[{title, uri}], contentRating / contentRatingLabels / explicit, mediaType, showTypes, totalEpisodes, and cover image. Publisher is the show's publisher (not host names stuffed into artists[]). rating.average is one decimal (Spotify UI). htmlDescription is omitted when it is just description wrapped in <p>. Flat 1 credit per call. Does not ship Spotify's UI color palette (visualIdentity) or a bulky raw dump. For the episode archive, use /spotify/podcast-episodes (cursor pagination).
What you get
- Podcast fields as clean structured JSON
- IDs, URLs, and titles where the platform exposes them
- Engagement or popularity signals when available
- Stable IDs for joining with other endpoints
Try it
Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).
Parameters
curl "https://api.captapi.com/v1/spotify/podcast?url=https%3A%2F%2Fopen.spotify.com%2Fshow%2F4rOoJ6Egrf8K2IrywzwOMk" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."Edit the parameters and the code updates instantly. Switch languages and hit copy.
Example response
{
"success": true,
"data": {
"platform": "spotify",
"type": "podcast",
"uri": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk",
"url": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk",
"name": "The Joe Rogan Experience",
"description": "The official podcast of comedian Joe Rogan.",
"image": "https://i.scdn.co/image/ab6765630000ba8a913317cdfae64a2585aa0f36",
"totalEpisodes": 2731,
"id": "4rOoJ6Egrf8K2IrywzwOMk",
"publisher": {
"name": "Joe Rogan"
},
"rating": {
"average": 4.7,
"totalRatings": 952065
},
"topics": [
{
"title": "Comedy",
"uri": "spotify:genre:0JQ5DAqbMKFNr6gDrHHVKL"
}
],
"contentRating": "EXPLICIT",
"contentRatingLabels": [
"EXPLICIT"
],
"explicit": true,
"mediaType": "MIXED",
"playable": true,
"consumptionOrder": "EPISODIC",
"showTypes": [
"SHOW_TYPE_EXCLUSIVE"
]
}
}Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.
Response structure
A successful call returns success and a data object with the following fields:
Top-level fields
platformAlways "spotify" on this endpoint.typeContent type of the item.uriPlatform URI for the item.urlCanonical URL of the item.namePodcast show title. Not a profile displayName alias.descriptionDescription text.imageImage URL.totalEpisodesEpisode count for the show when Spotify exposes it.idStable platform ID for the item.contentRatingPrimary Pathfinder label (first of contentRatingLabels). Podcast enum includes EXPLICIT | NINETEEN_PLUS | NOT_FOR_CHILDREN | SPOTIFY_EIGHTEEN_PLUS | UNKNOWN (and NONE on some surfaces).contentRatingLabelsFull label list from contentRatingV2 when present.explicitTrue only when EXPLICIT is among the rating labels. On a show that is contentRatingLabels; on an episode it is contentRating (the episode's single label — same as the first of contentRatingLabels on the show). NINETEEN_PLUS and other age-gate values stay on contentRating — they do not make this true.mediaTypeMedia type label for this item (platform-specific enum).playableWhether the show is playable in the current market when Spotify exposes it.consumptionOrderConsumption order. Example: "EPISODIC".showTypesShow type flags when Spotify exposes them (e.g. "SHOW_TYPE_EXCLUSIVE").
Publisher
The publisher object contains:
nameShow publisher (e.g. Joe Rogan, Hubspot) — not the show title and not the hosts.
Rating
The rating object contains:
averageAverage. Example: 4.7.totalRatingsTotal ratings. Example: 952065.
Topics
Each item in topics contains:
titleTitle of this topics item.uriPlatform URI for the item.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | url | Yes | Spotify show/podcast URL, URI, or ID (e.g. https://open.spotify.com/show/…). Not an artist URL. |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. |
Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh.
How it works
- 1. Sign up — get 100 free credits, no card required.
- 2. Create a key from your dashboard.
- 3. Send one request to
/v1/spotify/podcastand parse the JSON response.
Use cases
Podcast research
Rank shows with rating{average, totalRatings} — a signal Spotify's free Web API does not expose.
Publisher vs hosts
Use publisher{name} without mistaking it for episode hosts or artists[].
Archive fan-out
Chain the show URI into /spotify/podcast-episodes for cursor-paginated episode history.
Frequently asked questions
What does the Spotify Podcast API do?+
The Spotify Podcast API lets you fetch full metadata and key stats from a public Spotify podcast using one GET request to /v1/spotify/podcast. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Spotify Podcast API cost?+
Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a Spotify API key or OAuth?+
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
Is publisher the same as the podcast hosts?+
No. publisher.name is the show's publisher (e.g. Hubspot). Hosts are a different concept — Captapi does not stuff publisher into artists[] the way a music schema would.
What does rating mean on a podcast?+
rating is an object: rating.average is Spotify's show score (about 0–5) and rating.totalRatings is how many people voted. It's the main numeric quality signal for podcast research on this endpoint — not on Spotify's free Web API.
Why is there no limit parameter?+
This endpoint returns a single show. For the episode list, use /spotify/podcast-episodes (limit + cursor).
Why do two topics[] rows share one uri?+
Spotify sometimes maps two titles (e.g. Culture and Society) onto one genre node. Each row is paired correctly — the uri repeat is upstream, not a zip error. Other shows have a distinct uri per title.
Is the Spotify Podcast API suitable for production use?+
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
More Spotify APIs
Ready to use the Spotify Podcast API?
Sign up, grab your key, and make your first call in 60 seconds.