REST API — Podcasts
Namespace: /wp-json/mediablaster/v3
Available when Enable Podcasts is on. Discovery index includes features.podcasts and links.podcasts.
Endpoints
| Method | Route | Description |
|---|---|---|
| GET | /podcasts | List podcast shows |
| GET | /podcasts/{show_id} | Single show with episode counts |
| GET | /podcasts/{show_id}/episodes | Episodes for a show (filters, pagination) |
| GET | /podcast-episodes/{episode_id} | Single episode with parent show summary |
Query parameters
GET /podcasts
include_episodes(bool, default false)episodes_per_show(int, default 3)episode_preview(latest|featured, defaultlatest)page,per_page
GET /podcasts/{show_id}/episodes
featured(bool)access(free|premium)type(full|trailer|bonus)rss(included|excluded|missing_enclosure)page,per_page
Public vs authenticated
Unauthenticated requests return published public-safe content only. Premium episodes do not expose media URLs, full transcripts, or RSS enclosures publicly.
Episode rss_status values: included, excluded, missing_enclosure — useful when debugging empty RSS feeds.
Users with edit_posts receive authenticated context (drafts/private/premium metadata), still without exposing premium media URLs on anonymous requests.
Normalized objects
Shows include id, slug, title, url, rss_url, artwork, subtitle, description, host, credits, owner fields, language, copyright, app_category, explicit, rss settings, distribution_links, categories, tags, and episode_counts.
Episodes include id, slug, title, url, podcast_show summary, artwork, show_notes, publish_date, type/season/number, duration, explicit, access, featured, rss_status, canonical_audio/video (when allowed), transcript, chapters, guests, and tags.