Your podcast data, in your own tools (API keys)

Published

Your podcast doesn’t live in one app. You plan in one place, track your marketing in another, and report to sponsors from a spreadsheet. Until now, getting your show.fm numbers into those places meant exporting a CSV (on Studio and above) and copying it across by hand.

Today that changes. On any paid plan, you can now create an API key in show.fm and read your own podcasts, episodes, show notes, transcripts, and download analytics from your own code or from any server-side tool that can call an API.

It builds on the API you already have

In July, we released a public, read-only API for everything you’ve already published: your show, your published episodes and the player you can embed on any website. It needs no key because everything it returns is already public on your feed and listen pages.

The new part is your own data, including what isn’t public yet: drafts and scheduled episodes, your show notes, the people and credits on every episode, transcripts, and the download analytics you see on your Analytics page. It’s the same API, at the same address, following the same rules. The public endpoints haven’t changed, and they still don’t require a key.

Why we built it

One of our customers asked a simple question: could they pull their podcast numbers into the marketing dashboard where they already track their social media, website and newsletter? The honest answer was “not easily”. They could export a CSV, set up an automation to send a webhook, or ask an AI assistant through our MCP server. None of those is a data feed you can build on.

That request built on something we’d been planning for a while. Your podcast data is yours, and you should be able to put it wherever it’s most useful to you. The MCP server lets you ask an AI assistant about your show. The API is for when you or a developer you work with wants to build something of your own.

What you can read

Each key has its own permissions, so it only gets what it needs:

  • Podcasts: the podcasts the key can reach.
  • Episodes: every episode, including drafts and scheduled ones, with show notes as plain text and as cleaned-up HTML, plus the people on the episode and its credits. Links to an episode’s audio and artwork only appear once it’s public.
  • Transcripts: each transcript, line by line, with speaker names.
  • Analytics: downloads over time and per episode, broken down by app, country, device, source or referrer, plus your Apple Podcasts and Spotify imports. These are the same download figures you see in the app.

Every downloads response also tells you which dates it covers and which days are final, because the most recent days can still change as late downloads are counted. If you’re storing the numbers, you know exactly what to refresh. The Analytics API guide explains how.

What you could build

A few ideas to get you started:

  • A sponsor report that fills itself in. Pull the last 30 days of downloads into a spreadsheet each week, and include the top countries and apps.
  • One dashboard for all your marketing. Put your podcast downloads next to your newsletter and social numbers.
  • Transcripts on your own website. Publish episode transcripts on your site, or feed them into your own search.
  • A content calendar. List your drafts and scheduled episodes in the planning tool your team already uses.

Safe by default

Giving any app access to your data should be a careful decision, so we built the API to be careful by default:

  • Keys are read-only. You can’t publish, edit, or delete anything through a key.
  • Every key expires. You choose 30, 90 or 180 days, or one year. We email you a week before a key expires.
  • Keys don’t work in a browser. Browsers are refused by design, so a key can’t be used from a web page, even by accident. Keep it on a server.
  • You’ll know what’s happening. We email you when a key is created, rolled or given more access, and when a key that’s been in use suddenly turns up on a new network.
  • Your team’s roles still apply. A key never reaches more than you can see in the app. Analytics are for podcast owners only; a Co-host’s key sees only the episodes they’re on, and if you remove someone from your team, their keys stop reaching your podcast straight away.
  • Owners stay in control. In Podcast Settings → API access, an owner sees every key that includes their podcast and can cut them all off that podcast or stop team members’ keys from reaching it at all.
  • Quick to fix if something goes wrong. Roll gives a key a new secret while keeping its name, permissions, and its linked podcasts. Changing or resetting your password revokes all your keys.

There’s more in Keep keys safe.

Which plans include it

Every paid plan includes the API. Your plan’s limits apply just as they do in the app: analytics go back one year on Creator, and as far back as we have data on Studio and above. Apple Podcasts and Spotify imports need Studio or above. Each plan also has its own rate limit, from 60 requests per minute on Creator up to 600 on Enterprise, which is plenty for a dashboard that refreshes every few minutes.

Getting started

  1. In show.fm, go to Settings → API keys and choose Create a key.
  2. Give it a name you’ll recognise, choose its permissions and podcasts, and set an expiry date.
  3. Copy the key. It’s shown only once, so keep it somewhere safe, like your server’s secret settings or a password manager.
  4. Make your first request:
curl https://api.show.fm/v1/me \
  -H "Authorization: Bearer $SHOWFM_API_KEY"

That answer tells you which key you’re using and what it can reach. Most other requests name a podcast or an episode by its ID. You’ll find podcast IDs with a copy button in Settings → API keys, and every episode has a Copy episode ID option in its More episode actions menu.

From there, the API keys guide walks you through everything step by step. The API reference covers every endpoint, with examples in curl, TypeScript, JavaScript, Python and PHP. The changelog has the full list of what’s new.

Tell us what you build

We’d love to see what you make with it. If you’re a founding member, show Nathan and me in our private Discord. Everyone else can reach us through in-app support or our contact page. And if there’s something you want to read that the API doesn’t cover yet, tell us. That’s exactly how this release started.

Filed under:
, ,