Search for episodes by title, description, or transcript text
This endpoint requires an API token. You can learn more about how to get an API token from the authentication page.
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));
Property | Type | Description |
---|---|---|
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 | ||
└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 | 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 |
Property | Type | Description |
---|---|---|
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 | ||
└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 | 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 |