Podspun Data API · Reference

Data API documentation.

The Podspun Data API returns your account's channels, episodes, full transcripts, and search as JSON. Every endpoint is token-gated and scoped to your account. Below is the base URL, how to authenticate, and every endpoint with its parameters.

Getting started

Authenticate with a bearer key

Create a key in the Data API section of your Podspun dashboard, then send it as a bearer token on every request. A key reads only the channels in the account that made it, so keep it server-side and never ship one to a browser.

Base URL
https://backend.podspun.com/api/v1/feeds
Auth header
Authorization: Bearer pk_live_...
Format
JSON over HTTPS

List a channel's episodes, in your language:

BASE="https://backend.podspun.com/api/v1/feeds"
KEY="pk_live_..."
HANDLE="your-show"

curl -H "Authorization: Bearer $KEY" \
  "$BASE/channels/$HANDLE/episodes"

Endpoints

Every endpoint, with its parameters

Paths are relative to the base URL. Every endpoint here needs your bearer key. List endpoints page with a cursor: pass the next_cursor you get back as the cursor on the next call.

Your account

GET/me

Your account identity and the channels this key can read. Use it as a quick connection check.

Channels

GET/channels

List every channel in your account.

  • limitUp to 100, default 50.
  • cursorThe next_cursor from the previous page.
GET/channels/{handle}

One channel by its handle, with or without the @. Includes episode_count.

GET/channels/{handle}/episodes

A channel's episodes as summaries.

  • limitUp to 100, default 25.
  • cursorThe next_cursor from the previous page.
  • ordernewest or oldest. Default newest.
GET/channels/{handle}/events

Incremental sync feed: episodes created, updated, or removed, and config changes, since a time. Poll with the returned next_cursor to stay in sync.

  • sinceISO timestamp. Returns events after this time.
  • limitUp to 500, default 100.

Episodes

GET/episodes/{id}

One episode with its AI enrichment: summary, highlights, chapters, and quotes.

  • includeSet to transcript to also get the full transcript.

Search

GET/search

Search across your account: channel titles and descriptions, plus episode captions.

  • qrequiredThe search text.
  • typeall, channels, or episodes. Default all.
  • limitUp to 100, default 20.
GET/channels/{handle}/search

Caption search within one channel. Returns a snippet and timestamp per match.

  • qrequiredThe search text.
  • limitUp to 100, default 20.
POST/channels/{handle}/search-ai

Ask a question of one channel and get an answer with the source moments it drew on.

  • qrequiredYour question. Send it in the JSON body.
  • messagesOptional prior turns, for follow-up questions.

Limits and specs

Rate limits and machine-readable docs

Requests are limited to 120 per minute per key, and AI search to 10 per minute. If you are running a large backfill or a heavy nightly sync and hit the limit, please write in and we will lift it for your account.

Create a key and start pulling your transcribed catalog as JSON.

Get an API key