ListenNotes

FREEMIUM
By listennotes
Updated 4 months ago
Media
9.4/10
Popularity Score
226ms
Latency
100%
Success Rate

ListenNotes API Documentation

Podcast search, directory, and recommendation API. Note: We are retiring this version of API (v1) from RapidAPI. Please use the latest version v2 at https://www.listennotes.com/api/

View API Details
Search API
GETFull-text Search
GETTypeahead
Directory API
GETFetch meta data for a podcast by id
GETFetch meta data for an episode by id
GETFetch a list of podcast genres
GETFetch a list of supported languages for podcasts
GETFetch a list of best podcasts by genre
GETFetch a list of supported countries/regions for best podcasts
GETFetch recommendations for a podcast
GETFetch recommendations for an episode
POSTBatch fetch basic meta data for episodes
POSTBatch fetch basic meta data for podcasts
GETFetch a random podcast episode
GETFetch a curated list of podcasts by id
GETFetch curated lists of podcasts
GETFull-text Search

Search episodes or podcasts

Header Parameters
X-RapidAPI-HostSTRING
REQUIRED
X-RapidAPI-KeySTRING
REQUIRED
Required Parameters
qSTRING
REQUIREDSearch term
Optional Parameters
sort_by_dateNUMBER
OPTIONALSort by date or not? If 1, sort by date. If 0 (default), sort by relevance.
typeSTRING
OPTIONALWhat to search: "episode" (default), "podcast", or "curated"? Note: "curated" is for curated lists of podcasts.
offsetNUMBER
OPTIONALOffset for search results, for pagination. You'll use next_offset from response for this parameter.
len_minNUMBER
OPTIONALMinimum audio length in minutes. Applicable only when type parameter is "episode".
len_maxNUMBER
OPTIONALMaximum audio length in minutes. Applicable only when type parameter is "episode".
genre_idsSTRING
OPTIONALA comma-delimited string of a list of genre ids. You can find the id and the name of all genres in the response of /api/v1/genres . It works only when "type" is episode or podcast.
published_beforeNUMBER
OPTIONALOnly show episodes published before this timestamp (in milliseconds). Default: now. If published_before & published_after are used at the same time, published_before should be bigger than published_after.
published_afterNUMBER
OPTIONALOnly show episodes published after this timestamp (in milliseconds). Default: 0 (since the very first episode). If published_before & published_after are used at the same time, published_before should be bigger than published_after.
only_inSTRING
OPTIONALSearch only in specific fields. Allowed values: title, description, author, audio. If not specified, then search every fields
languageSTRING
OPTIONALLimit search results to a specific language. If not specified, it'll be any language. You can get a list of supported languages from /api/v1/languages endpoint. It works only when "type" is episode or podcast.
ocidSTRING
OPTIONALA podcast id (the podcast_id field in response). This parameter is to limit search results in a specific podcast. It works only when "type" is episode.
ncidSTRING
OPTIONALA podcast id (the podcast_id field in response). This parameter is to exclude search results from a specific podcast. It works only when "type" is episode.
safe_modeNUMBER
OPTIONALWhether or not to exclude podcasts/episodes with explicit language. 1 is yes and 0 is no. Default: 0. It works only when "type" is episode or podcast.
Code Snippet
unirest.get("https://listennotes.p.rapidapi.com/api/v1/search?sort_by_date=0&type=episode&offset=0&len_min=2&len_max=10&genre_ids=68%2C82&published_before=1490190241000&published_after=1390190241000&only_in=title&language=English&safe_mode=1&q=star+wars")
.header("X-RapidAPI-Host", "listennotes.p.rapidapi.com")
.header("X-RapidAPI-Key", "SIGN-UP-FOR-KEY")
.end(function (result) {
  console.log(result.status, result.headers, result.body);
});
Sample Response
General
Request URL: https://listennotes.p.rapidapi.com/api/v1/search
Request Method: GET
Response Headers
Response Body

Install SDK for NodeJS

Installing

To utilize unirest for node.js install the the npm module:

$ npm install unirest

After installing the npm package you can now start simplifying requests like so:

var unirest = require('unirest');

Creating Request

unirest.get("https://listennotes.p.rapidapi.com/api/v1/search?sort_by_date=0&type=episode&offset=0&len_min=2&len_max=10&genre_ids=68%2C82&published_before=1490190241000&published_after=1390190241000&only_in=title&language=English&safe_mode=1&q=star+wars")
.header("X-RapidAPI-Host", "listennotes.p.rapidapi.com")
.header("X-RapidAPI-Key", "SIGN-UP-FOR-KEY")
.end(function (result) {
  console.log(result.status, result.headers, result.body);
});
OAuth2 Authentication
Client ID
Client Secret
OAuth2 Authentication