Search Episodes

POST/episodes

Search for episodes by title, description, or transcript text

TOKEN

Authentication

This endpoint requires an API token. You can learn more about how to get an API token from the authentication page.

URL

https://api.podengine.ai/api/v1/search/episodes

Try It

1const options = {
2  method: "POST",
3  headers: {
4    "Content-Type": "application/json",
5    "Authorization": "YOUR_API_TOKEN"
6  },
7  body: JSON.stringify({
8  "searchTerms": [
9    {
10      "searchTargets": [
11        "podcast-title"
12      ],
13      "searchTerm": "This Week In Startups",
14      "searchType": "text",
15      "searchTermOptions": {
16        "phraseMatch": true,
17        "matchMode": "must"
18      }
19    },
20    {
21      "searchTargets": [
22        "transcript"
23      ],
24      "searchTerm": "podcast",
25      "searchType": "text",
26      "searchTermOptions": {
27        "matchMode": "optional"
28      }
29    }
30  ],
31  "languages": [
32    "en"
33  ],
34  "lastEpisodeDateSince": "2025-03-20T15:15:46.355Z",
35  "sortOrder": [
36    {
37      "field": "recentActivity",
38      "direction": "desc"
39    }
40  ]
41})
42};
43
44fetch("https://api.podengine.ai/api/v1/search/episodes", options)
45  .then(response => response.json())
46  .then(data => console.log(data))
47  .catch(error => console.error('Error:', error));

API Specification

Request Body

PropertyTypeDescription
cursoroptionalnullable
string

Pagination cursor for fetching next page of results

pageSizeoptional
number

Number of results to return per page

projectIdoptional
string

Project ID to associate the search with

searchTermsoptional
array
of
object

searchTerm
string

searchType
enum

searchTargets
array
of
enum

searchTermOptions
object

matchMode
enum

phraseMatchoptional
boolean

Whether to match the search term as a phrase

slopoptional
number

How many words apart tokens can appear in a document to be considered a match

fuzzyoptional
boolean

Whether to use fuzzy matching

excludeItunesGenresoptional
array
of
string

iTunes genres to exclude from results

excludePodcastIdsoptional
array
of
string

Specific podcast IDs to exclude from results

explicitoptional
enum

Filter by explicit content rating

foundedSinceoptional
any

Filter podcasts founded after this date

hasPrimaryContactoptional
union

Filter podcasts that have primary contact information

hasSocialsoptional
array
of
enum

Filter podcasts with specific social media presence from beehiiv, behance, bluesky, discord, facebook, github, instagram, linkedin, linktree, mastodon, medium, patreon, pinterest, reddit, snapchat, soundcloud, substack, threads, tiktok, tumblr, twitch, twitter, vimeo, whatsapp, youtube

includeItunesGenresoptional
array
of
string

iTunes genres to include in results

includePodcastIdsoptional
array
of
string

Specific podcast IDs to include in results

languagesoptional
array
of
string

Filter podcasts by language

lastEpisodeDateSinceoptional
date

Filter podcasts with episodes published after this date

maxTotalEpisodesoptional
number

Maximum number of total episodes

minCastboxPlaysoptional
number

Minimum number of Castbox plays

minCastboxSubscribersoptional
number

Minimum number of Castbox subscribers

minItunesRatingoptional
number

Minimum iTunes rating score

minItunesRatingCountoptional
number

Minimum number of iTunes ratings

minSpotifyRatingoptional
number

Minimum Spotify rating score

minSpotifyRatingCountoptional
number

Minimum number of Spotify ratings

minTotalEpisodesoptional
number

Minimum number of total episodes

podcastCountriesoptional
array
of
string

Filter podcasts by country of origin using ISO 3166-1 alpha-2 codes, for example us

podcastHasGuestsoptional
union

Filter podcasts that feature guests

sortOrderoptional
array
of
object

Specify how results should be sorted

field
enum

directionoptional
enum

nullOrderoptional
enum

includeTranscriptSnippetoptional
boolean

transcriptSnippetLengthoptional
number

transcriptHighlightLengthoptional
number

includeEpisodeIdsoptional
array
of
string

publishedSinceoptional
date

hasTranscriptoptional
union

200

Success Response

PropertyTypeDescription
status
literal: OK

data
object

searchMode
literal: episodes

searchId
string

searchOptions
object

cursoroptionalnullable
string

Pagination cursor for fetching next page of results

pageSizeoptional
number

Number of results to return per page

projectIdoptional
string

Project ID to associate the search with

searchTermsoptional
array
of
object

searchTerm
string

searchType
enum

searchTargets
array
of
enum

searchTermOptions
object

matchMode
enum

phraseMatchoptional
boolean

Whether to match the search term as a phrase

slopoptional
number

How many words apart tokens can appear in a document to be considered a match

fuzzyoptional
boolean

Whether to use fuzzy matching

excludeItunesGenresoptional
array
of
string

iTunes genres to exclude from results

excludePodcastIdsoptional
array
of
string

Specific podcast IDs to exclude from results

explicitoptional
enum

Filter by explicit content rating

foundedSinceoptional
any

Filter podcasts founded after this date

hasPrimaryContactoptional
union

Filter podcasts that have primary contact information

hasSocialsoptional
array
of
enum

Filter podcasts with specific social media presence from beehiiv, behance, bluesky, discord, facebook, github, instagram, linkedin, linktree, mastodon, medium, patreon, pinterest, reddit, snapchat, soundcloud, substack, threads, tiktok, tumblr, twitch, twitter, vimeo, whatsapp, youtube

includeItunesGenresoptional
array
of
string

iTunes genres to include in results

includePodcastIdsoptional
array
of
string

Specific podcast IDs to include in results

languagesoptional
array
of
string

Filter podcasts by language

lastEpisodeDateSinceoptional
date

Filter podcasts with episodes published after this date

maxTotalEpisodesoptional
number

Maximum number of total episodes

minCastboxPlaysoptional
number

Minimum number of Castbox plays

minCastboxSubscribersoptional
number

Minimum number of Castbox subscribers

minItunesRatingoptional
number

Minimum iTunes rating score

minItunesRatingCountoptional
number

Minimum number of iTunes ratings

minSpotifyRatingoptional
number

Minimum Spotify rating score

minSpotifyRatingCountoptional
number

Minimum number of Spotify ratings

minTotalEpisodesoptional
number

Minimum number of total episodes

podcastCountriesoptional
array
of
string

Filter podcasts by country of origin using ISO 3166-1 alpha-2 codes, for example us

podcastHasGuestsoptional
union

Filter podcasts that feature guests

sortOrderoptional
array
of
object

Specify how results should be sorted

field
enum

directionoptional
enum

nullOrderoptional
enum

includeTranscriptSnippetoptional
boolean

transcriptSnippetLengthoptional
number

transcriptHighlightLengthoptional
number

includeEpisodeIdsoptional
array
of
string

publishedSinceoptional
date

hasTranscriptoptional
union

result
any

cursornullable
string