Substack hub

Substack Podcast Search API

Find podcast shows by text, with art and the publication behind each show.

GET /v1/substack/search/podcasts

1 credit Failed requests are free

About this endpoint

GET /v1/substack/search/podcasts?query=... searches Substack podcast shows. The query is required and may be up to 200 characters. cursor comes from the previous page's page.nextCursor.

data.shows[] carries title, byline, description, artUrl, paidEpisodeArtUrl, url, a publication summary with id, name and subdomain, and a section with id and slug. data.page reports hasMore and nextCursor. An empty first page is either confirmed or marked emptyIsUnverified. An unconfirmed empty list comes back as 200 with emptyIsUnverified: true and is not charged. lookupStatus is found or not_found.

Substack Podcast Search API FAQ

What is in a show row?

The show title, byline, description, artwork, URL, the publication it belongs to and the section it sits in. Episode lists are not part of this route.

How do I page podcast search?

Follow page.nextCursor while page.hasMore is true. The cursor is opaque and tied to the query. When the last results exactly fill a page, page.hasMore can still be true, and the next page comes back empty and is charged like any other page.

Can the list be empty?

Yes. A query with no shows returns an empty list. lookupStatus: found with an empty shows array and emptyIsUnverified: false is a real empty. With emptyIsUnverified: true it could not be confirmed, and the request is not charged.

How many credits does a podcast search page cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.