Spotify

Spotify

Podcast / Episodes

per_call

Returns a podcast show record — name, publisher, description, language, total episodes and artwork — and a paginated list of its episodes with titles, descriptions, durations, explicit flags and release dates. Use it for podcast research, guest tracking and monitoring publishing cadence across a show catalog.

What you get

Each call returns one podcast record. There is no pagination.

Endpoint

GET /v1/spotify/podcast-episodes

Price

$1.50

per 1,000 calls · $0.0015 per call

Cost per call

1 credit

Failed calls never charged

Parameters

id
optional
string

The Spotify show ID. Required unless `url` is supplied.

url
optional
string

The public Spotify show URL. Required unless `id` is supplied.

cursor
optional
string

Pagination cursor returned by a previous response.

fresh
optional
enum

Bypass cached data and force a live fetch for this one call. Use it for daily monitoring or any figure you are tracking over time. Accepts `true`, `1`, `false` or `0`; anything else returns 400 `invalid_fresh`. Defaults to false and costs exactly the same as a cached call.

One of: true, 1, false, 0

Example request

Live call. Successful calls are charged; failed and empty results are not.

curl
curl "https://fastfetchz.com/v1/spotify/podcast-episodes?id=4rOoJ6Egrf8K2IrywzwOMk" \
  -H "X-API-Key: $FASTFETCHZ_KEY"

Example response

200 application/json
{
  "success": true,
  "service": {
    "platform": "Spotify",
    "name": "Podcast / Episodes",
    "slug": "podcast-episodes"
  },
  "credits_charged": 1,
  "credits_remaining": 99,
  "latency_ms": 214,
  "data": {
    "id": "4rOoJ6Egrf8K2IrywzwOMk",
    "uri": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk",
    "__typename": "Podcast",
    "accessInfo": null,
    "consumptionOrderV2": "EPISODIC",
    "contentCapabilityTrait": {
      "rateability": {
        "value": "RESTRICTED"
      }
    },
    "contentRatingV2": {
      "labels": [
        "EXPLICIT"
      ]
    },
    "contentType": "CONTENT_TYPE_PODCAST",
    "coverArt": {
      "sources": [
        {
          "height": 64,
          "url": "https://i.scdn.co/image/ab6765630000f68d94c7c734f09452f9f9b5acfc",
          "width": 64
        },
        {
          "height": 300,
          "url": "https://i.scdn.co/image/ab67656300005f1f94c7c734f09452f9f9b5acfc",
          "width": 300
        }
      ]
    },
    "description": "The official podcast of comedian Joe Rogan.",
    "episodesV2": [
      {
        "entity": {
          "__typename": "EpisodeResponseWrapper",
          "data": {
            "__typename": "Episode",
            "creator": null,
            "uri": "spotify:episode:59Tq6VDaAlNxZg0hNrBOji"
          }
        }
      }
    ],
    "gatedEntityRelations": [],
    "htmlDescription": "<p>The official podcast of comedian Joe Rogan.</p>",
    "mediaType": "MIXED",
    "musicAndTalk": false,
    "name": "The Joe Rogan Experience",
    "playability": {
      "playable": true,
      "reason": "PLAYABLE",
      "unplayabilityReasons": []
    },
    "publisher": {
      "name": "Joe Rogan"
    },
    "rating": {
      "averageRating": {
        "average": 4.654030498348038,
        "showAverage": true,
        "totalRatings": 953691
      },
      "canRate": true,
      "rating": {
        "rating": 0
      }
    },
    "saved": false,
    "sharingInfo": {
      "shareId": "Cxqs86B8TVy7KvI8rSuceg",
      "shareUrl": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk?si=Cxqs86B8TVy7KvI8rSuceg"
    },
    "showTypes": [
      "SHOW_TYPE_EXCLUSIVE"
    ],
    "topics": [
      {
        "__typename": "PodcastTopic",
        "title": "Comedy",
        "uri": "spotify:genre:0JQ5DAqbMKFNr6gDrHHVKL"
      }
    ],
    "trailerV2": null,
    "visualIdentity": {
      "sixteenByNineCoverImage": null,
      "squareCoverImage": {
        "__typename": "VisualIdentityImage",
        "extractedColorSet": {
          "encoreBaseSetTextColor": {
            "alpha": 255,
            "blue": 91,
            "green": 166,
            "red": 255
          },
          "highContrast": {
            "backgroundBase": {
              "alpha": 255,
              "blue": 0,
              "green": 58,
              "red": 137
            },
            "backgroundTintedBase": {
              "alpha": 255,
              "blue": 0,
              "green": 23,
              "red": 93
            },
            "textBase": {
              "alpha": 255,
              "blue": 255,
              "green": 255,
              "red": 255
            },
            "textBrightAccent": {
              "alpha": 255,
              "blue": 255,
              "green": 255,
              "red": 255
            },
            "textSubdued": {
              "alpha": 255,
              "blue": 146,
              "green": 192,
              "red": 255
            }
          },
          "higherContrast": {
            "backgroundBase": {
              "alpha": 255,
              "blue": 0,
              "green": 25,
              "red": 96
            },
            "backgroundTintedBase": {
              "alpha": 255,
              "blue": 40,
              "green": 63,
              "red": 137
            },
            "textBase": {
              "alpha": 255,
              "blue": 255,
              "green": 255,
              "red": 255
            },
            "textBrightAccent": {
              "alpha": 255,
              "blue": 96,
              "green": 215,
              "red": 30
            },
            "textSubdued": {
              "alpha": 255,
              "blue": 146,
              "green": 192,
              "red": 255
            }
          },
          "minContrast": {
            "backgroundBase": {
              "alpha": 255,
              "blue": 12,
              "green": 122,
              "red": 233
            },
            "backgroundTintedBase": {
              "alpha": 255,
              "blue": 0,
              "green": 96,
              "red": 204
            },
            "textBase": {
              "alpha": 255,
              "blue": 255,
              "green": 255,
              "red": 255
            },
            "textBrightAccent": {
              "alpha": 255,
              "blue": 255,
              "green": 255,
              "red": 255
            },
            "textSubdued": {
              "alpha": 255,
              "blue": 255,
              "green": 255,
              "red": 255
            }
          }
        }
      }
    },
    "popularity": null
  }
}

Limits

  • Maximum per call: 1 podcasts.
  • Minimum per call: 1 podcast — a target with less data returns fewer podcasts, and an empty result is still a successful call.
  • Each call fetches a full page of up to 1 and costs the same either way. Pass limit to receive fewer than that in the response.
  • This endpoint returns a single record per call and is not paginated.

What this costs in practice

10,000 podcasts = 10,000 calls × 1 credits per call = 10,000 credits = $0.00

Priced at the Custom pack rate: 1,000,000 credits for $0.00.

Open in the pricing calculator

Error codes

401invalid_api_keyMissing or unrecognized X-API-Key header. No credits are charged.
402insufficient_creditsYour balance is below the cost of the call. Top up to continue.
403account_suspended / key_revokedThe account is suspended or the key was revoked.
429rate_limitedOver your account's requests-per-second limit. Retrying helps: the body carries retry_after_seconds and the response carries a Retry-After header. Not charged.
429monthly_cap_reachedThis key used the monthly call cap you set for it. Retrying will not help — raise the cap, use another key, or wait for the next calendar month. No Retry-After header is sent. Not charged.
500upstream_errorUnexpected failure while fulfilling the request. Not charged.