---
title: "Spotify Podcast API"
method: GET
path: "/v1/spotify/podcast"
tags: ["Spotify"]
---

# Spotify Podcast API

`GET /v1/spotify/podcast`

## Request

- Base URL: `https://api.captapi.com`
- URL: `https://api.captapi.com/v1/spotify/podcast`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Spotify podcast show — publisher, rating, topics, explicit flag, and totalEpisodes as clean JSON.

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 &lt;p&gt;. 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).

Docs: https://captapi.com/apis/spotify-podcast

## Query parameters

- `url` string, required
- `cache` boolean

## Response `200`

Success. The data object for this endpoint.

- object
  - `success` unknown, required
  - `data` object, required
    - `platform` string: Always "spotify" on this endpoint.
    - `type` string: Content type of the item.
    - `uri` string: Platform URI for the item.
    - `url` string: Canonical URL of the item.
    - `name` string: Podcast show title. Not a profile displayName alias.
    - `description` string: Description text.
    - `image` string: Image URL.
    - `totalEpisodes` integer: Episode count for the show when Spotify exposes it.
    - `id` string: Stable platform ID for the item.
    - `publisher` object
      - `name` string: Show publisher (e.g. Joe Rogan, Hubspot) — not the show title and not the hosts.
    - `rating` object
      - `average` number: Average. Example: 4.7.
      - `totalRatings` integer: Total ratings. Example: 952065.
    - `topics` object[]
      - `title` string: Title of this topics item.
      - `uri` string: Platform URI for the item.
    - `contentRating` string: Primary Pathfinder label (first of contentRatingLabels). Podcast enum includes EXPLICIT | NINETEEN_PLUS | NOT_FOR_CHILDREN | SPOTIFY_EIGHTEEN_PLUS | UNKNOWN (and NONE on some surfaces).
    - `contentRatingLabels` string[]: Full label list from contentRatingV2 when present.
    - `explicit` boolean: True 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.
    - `mediaType` string: Media type label for this item (platform-specific enum).
    - `playable` boolean: Whether the show is playable in the current market when Spotify exposes it.
    - `consumptionOrder` string: Consumption order. Example: "EPISODIC".
    - `showTypes` string[]: Show type flags when Spotify exposes them (e.g. "SHOW_TYPE_EXCLUSIVE").

## Other responses

- `400`: Bad request: wrong platform URL, unknown endpoint, or an invalid parameter value. Not billed.
- `401`: Missing, invalid or revoked API key. Not billed.
- `402`: Not enough credits for this request. Not billed.
- `404`: The resource does not exist or is not public. Not billed.
- `422`: A required parameter is missing or has the wrong type. Not billed.
- `429`: Rate limit reached. Wait for Retry-After seconds. Not billed.
- `502`: The platform could not be reached or returned nothing usable. Retryable, not billed. 503 and 504 use the same envelope.

---

[API](https://skmtc.dev/captapi/apis/captapi-api.md) · [All operations](https://skmtc.dev/captapi/apis/captapi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/captapi/apis/captapi-api/revisions/c9b9ac5ff1bd?raw)
