canonical: https://jentic.com/apis/listennotes.com/listennotes

# Listennotes Listen API: Podcast Search, Directory, and Insights API

The Listen API by Listen Notes is a podcast search, directory, and insights service indexing millions of podcasts and episodes. It provides full-text search across episodes and podcasts, typeahead and spellcheck for search inputs, curated and best-podcast lists, recommendations, audience demographics, batch metadata fetches, and tools to submit or refresh podcast feeds. Useful for podcast discovery products, voice assistants, and analytics dashboards that need a normalised view of the podcast ecosystem.

## For AI agents

Search podcasts and episodes, fetch detailed metadata, get recommendations and best-of lists, and pull audience demographics across the global podcast directory.

## Scope

Does not handle podcast hosting, audio transcoding, or episode playback - use for podcast search, directory, and insights metadata only.

## Capabilities

- Run full-text search across podcasts and episodes via GET /search with filters for language, region, and length
- Power search inputs with typeahead suggestions and spellcheck via GET /typeahead and GET /spellcheck
- Fetch detailed podcast or episode metadata by id via GET /podcasts/{id} and GET /episodes/{id}
- Batch fetch basic metadata for many podcasts or episodes via POST /podcasts and POST /episodes
- Surface curated and best podcast lists via GET /best_podcasts and GET /curated_podcasts
- Retrieve recommendations and audience demographics via GET /podcasts/{id}/recommendations and GET /podcasts/{id}/audience

## Use cases

### Podcast Discovery Search

Build a podcast discovery experience that returns relevant shows and episodes for any query. GET /search supports full-text search with filters for language, country, length, and date, and GET /typeahead provides autocomplete suggestions as the user types. Suitable for podcast apps, voice assistants, and content portals serving millions of queries per month.

Example prompt: Call GET /search with q='machine learning', type=podcast, language=English and return the top 10 results with title, description, and image.

### Best-Of and Curated Lists

Render best-of and curated podcast lists by genre, region, or topic without scraping the Listen Notes site. GET /best_podcasts returns the top podcasts for a given genre and region, while GET /curated_podcasts returns editor-curated lists. Useful for newsletters, recommendation pages, and weekly content drops.

Example prompt: Call GET /best_podcasts with genre_id=99 and region=us, then format the top 25 results as a newsletter section.

### Audience and Recommendation Insights

Fetch audience demographics and similar-podcast recommendations to power editorial planning, ad inventory analysis, and personalised user feeds. GET /podcasts/{id}/audience returns audience signals for a podcast and GET /podcasts/{id}/recommendations returns related shows. Best for analytics teams sizing audiences and product teams driving 'more like this' recommendations.

Example prompt: Call GET /podcasts/{id}/audience for the target show and GET /podcasts/{id}/recommendations to assemble an audience insights summary.

### Catalogue Sync and Refresh

Keep a downstream catalogue in sync with Listen Notes by batching metadata fetches and refreshing RSS feeds for tracked shows. POST /podcasts and POST /episodes fetch basic metadata for many ids in one call, and POST /podcasts/{id}/rss refreshes a feed when a host has published new episodes. Reduces sync time on large catalogues from hours to minutes.

Example prompt: POST /podcasts with a list of tracked podcast ids, then POST /podcasts/{id}/rss for any whose last_pub_date is older than 24 hours.

### AI Agent Podcast Search

Let an AI agent search the podcast directory and return episode-level matches in a chat or research workflow. Through Jentic, the agent searches for the Listen API search operation, loads the schema, and executes GET /search with the user's query and filters, while the API key stays in your Jentic One instance. The agent can chain follow-ups by calling GET /episodes/{id} or GET /podcasts/{id}/recommendations.

Example prompt: Search Jentic for 'search podcasts on a topic', load the schema, execute GET /search with q=<user topic>, and summarise the top results.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /search | Full-text search across podcasts and episodes |
| GET | /typeahead | Typeahead search suggestions |
| GET | /podcasts/{id} | Get podcast metadata and episodes |
| GET | /episodes/{id} | Get episode metadata |
| GET | /best_podcasts | List best podcasts by genre and region |
| GET | /podcasts/{id}/recommendations | Recommended similar podcasts |
| GET | /podcasts/{id}/audience | Audience demographics for a podcast |

## Key resources

- **Search API** — Full-text, typeahead, and spellcheck search via GET /search, /typeahead, /spellcheck, /trending_searches, /related_searches
- **Directory API** — Podcast and episode metadata via /podcasts/{id}, /episodes/{id}, batch fetch via POST /podcasts and POST /episodes
- **Insights API** — Audience demographics and recommendations via /podcasts/{id}/audience and /podcasts/{id}/recommendations
- **Playlist API** — User playlist retrieval via /playlists and /playlists/{id}
- **Podcaster API** — Submit new podcast feeds via POST /podcasts/submit and refresh feeds via POST /podcasts/{id}/rss

## Why Jentic

- **Setup:** Wiring the Listen API by hand means setting up its X-ListenAPI-Key header auth, attaching it to every request against listen-api.listennotes.com, and handling retries yourself across search and directory calls. Through Jentic you install once, import the Listen API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The Listen API puts the podcast or episode id in the URL path (/podcasts/{id}, /episodes/{id}), so a rule can pin your agent to reads for a given podcast, such as its recommendations or audience insights. Every operation here is a read, so the agent retrieves directory and insights data and performs no writes.
- **Credential handling:** Your Listen API key is stored once, encrypted, by your own Jentic One instance and injected as the X-ListenAPI-Key header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find podcasts about a topic' or 'get episode details', and Jentic returns the matching Listen API operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Spotify Web API** — First-party podcast catalogue limited to Spotify-licensed content with playback links
- **Deepgram API** — Speech-to-text transcription for podcast episodes discovered via Listen Notes
- **ElevenLabs API** — Text-to-speech that can summarise discovered podcast content into audio briefings
- **Castos API** — Podcast hosting and analytics for shows discovered through Listen Notes search

## FAQ

### What authentication does the Listen Notes API use?

Listen Notes uses an API key passed in the X-ListenAPI-Key header on every request. Through Jentic, the key is stored in your Jentic One instance and injected at execution time, so agents only see the response payloads.

### Can I find episodes by topic or person with the Listen Notes API?

Yes. GET /search supports full-text search across podcasts and episodes with q for the query, type to scope to podcast or episode, and filters for language, country, and length. GET /search_episode_titles narrows search to episode titles only when that's a better match for the use case.

### What are the rate limits for the Listen Notes API?

Rate limits are tiered by plan. Free tiers are tightly throttled (suitable for development) while paid plans provide thousands of monthly requests with higher per-second limits. Agents should cache podcast metadata by id rather than re-fetching for repeated queries.

### How do I search podcasts through Jentic?

Run pip install jentic, then search for 'search podcasts on a topic'. Jentic returns GET /search. Load the schema, supply q=<topic>, type=podcast, and any filters, and execute. Iterate by calling GET /podcasts/{id} for full metadata on the top hits.

### Does Listen Notes expose audience demographics?

Yes, on supporting plans. GET /podcasts/{id}/audience returns audience demographic signals for the requested podcast id, useful for ad-inventory analysis and editorial sizing. Pair it with GET /podcasts/{id}/recommendations to surface comparable shows.

### Can I limit what my agent is allowed to do with the Listen Notes API?

Yes. Because you run your own self-hosted Jentic One instance, your rules decide which Listen Notes operations and credentials the agent may use. Since the podcast or episode id sits in the URL path on calls like GET /podcasts/{id}, GET /episodes/{id}, GET /podcasts/{id}/recommendations, and GET /podcasts/{id}/audience, you can pin the agent to reads for a specific show, such as its recommendations or audience insights. Every operation in this API is a read, so the agent retrieves directory and insights data and performs no writes.
