Appearance
Developers
Build with show.fm’s public content or connect to your own podcasts and analytics. Start with a guide, look up an endpoint, or explore an integration.
Guides
New to the API? Start with the API guide, then create an API key if you need authenticated access to your own data.
| Page | What you’ll find |
|---|---|
| API guide | Understand request conventions, authentication, pagination and caching. |
| API keys | Create a key and find the podcast and episode IDs your integration needs. |
| Analytics API guide | Choose analytics endpoints and understand the figures they return. |
| Versioning & policies | Check versioning, compatibility and fair-use policies. |
Understand public and authenticated access
The API is read-only. Public content endpoints accept GET, HEAD and OPTIONS without an account or API key. They expose published episodes of active shows hosted on show.fm, as on the public feed and listen pages. Drafts and private data require the authenticated endpoints and the appropriate permissions.
Public endpoints allow browser requests from any origin. Call authenticated /v1/me endpoints from your server with an API key. Both have rate limits.
The base URL is https://api.show.fm/v1. Additive changes stay in v1; breaking changes use a new version. See the versioning policy.
Authenticated access with API keys is new in October 2026. Read the changelog announcement for an overview.
API reference
Look up parameters, authentication, response fields and errors. Each endpoint includes curl, TypeScript, JavaScript, Python and PHP request samples.
Fetch a podcast
bash
curl https://api.show.fm/v1/podcasts/acme-radio-hourjson
{
"data": {
"id": "b7e4c1a0-5f2d-4e8a-9c3b-1d6f8a2e4c90",
"slug": "acme-radio-hour",
"title": "The Acme Radio Hour",
"author": "Jess Doe",
"episode_count": 42,
"links": {
"listen": "https://acme-radio-hour.show.fm",
"feed": "https://rss.cdn.media/b3d1a9c2-4e5f-4a6b-8c7d-9e0f1a2b3c4d"
}
}
}(Response truncated; see the full payload reference.)
Integrations
| Page | What you’ll find |
|---|---|
| Connect an AI assistant (MCP) | Connect an AI assistant to your own show.fm account. |
| Embedded player | Add podcast audio to a website. |
| Embed on any site | Add players, episode lists and play buttons with HTML, Astro, Next.js or Laravel. |
| Webhooks | Send HTTP callbacks from your automations. |
The MCP server connects an AI assistant to your own account. Use the API when writing an integration yourself, and MCP when asking an assistant to read your show.
Embed a player in two lines
Paste this anywhere HTML is allowed. The player fetches episode data from the API and renders directly in your page:
html
<script async src="https://embed.cdn.media/player/v1.js"></script>
<showfm-player episode="3f9d2b6e-8c41-4a57-b2f0-6e5d4c3b2a19"></showfm-player>Or embed a whole show, so the player always plays the newest episode:
html
<script async src="https://embed.cdn.media/player/v1.js"></script>
<showfm-player podcast="acme-radio-hour"></showfm-player>Full attribute reference, iframe fallback, and oEmbed support are on the embedded player page. Episode lists, play buttons, transcripts and framework recipes are on Embed on Any Site.
Get ready-made embed code from the dashboard
If you host on show.fm, you don't need to hand-write embeds: the dashboard's Embeds area builds code for a player, an episode list or play buttons, with an iframe version of each.