PlatPhorm Podcasts API
Public Media Library API Documentation
One input enters one canonical media contract that finds, understands, plays, and saves public media. Compatibility endpoints resolve links, validate feeds, return playback metadata, create share packets, expose Web Status, and support MCP. Operator controls are governed by PLATPHORM_PROTECTED.
Cloudflare web Worker
Next-compatible React rendering through Vite/vinext at podcasts.vanagon.com, public routes, SEO, the universal natural-language or URL input, thin backend-for-frontend handlers, the PWA shell, and one persistent player.
Cloudflare API Worker
The PH3AR backend at podcasts-api.ja1.io owns D1 canonical truth, KV derived state, R2 bounded artifacts, Queues and Workflows, ingestion, normalization, search support, health, ranking, repair, enrichment, and signed relay.
The universal prompt is the primary interaction. Resolve, ingest, feed, and search routes remain supported compatibility and machine surfaces, all converging on the same media graph and playback contract.
Search responses expose searchModel.providerStages with outcome, candidate count and latency. A failed stage may include failure.code and an HTTP status. These bounded diagnostics distinguish an unavailable provider from a successful empty search and exclude raw provider messages, bodies, credentials and query URLs.
Feed sources
69
Archived entries
3260
Audio episodes
3208
Archive mode
persistent
Operator Controls
Existing public product routes and anonymous-session actions follow their published endpoint policy. Protected operations use server-side Cloudflare secrets and the shared PLATPHORM_API_KEY. Configuration-dependent protection and public mutation exceptions are tracked for reconciliation with the platform policy; check each endpoint rather than assuming every write is public or protected.
Cross-site public media
PlatPhorm GameStream
GET /api/v1/live/gamestream returns bounded, source-attributed live gaming records. It uses the GameStream JSON API when healthy and falls back to the canonical public RSS projection without inventing streams or hiding upstream degradation.
- Canonical collection and source URLs remain visible.
- Twitch and Kick playback uses validated embeds inside the persistent player.
- Legacy YouTube records remain metadata-only unless an explicit public source or embed is present.
- HTML provider pages are attribution/embed sources, never media-relay enclosures.
The direct LIVE adapter is public and key-free. Canonical D1 ingestion is reported only after the Cloudflare queue path has persisted the record; catalog membership alone is not persistence proof.
Endpoint Inventory
/api/health
/api/v1/health
/api/docs
/api/v1/feeds
/api/v1/media/{id}
/api/v1/media/search
/api/v1/media/recent
/api/v1/activity/recent
/api/v1/activity/played
/api/v1/library
/api/v1/library/lookup
/api/v1/archive/discovery/status
/api/v1/radio/stations
/api/v1/live/channels
/api/v1/live/gamestream
/api/v1/media/space
/api/v1/media/relay
/api/v1/playback/resolve
/api/v1/media/variants/verify
/api/v1/operations/dead-letters
/api/v1/operations/duplicates
/api/v1/operations/ranking-materialization
/api/v1/operations/search-evaluation
/api/v1/operations/maintenance-workflows
/api/v1/rsscloud/registrations
/api/v1/operations/playlist-continuation-fixture
/api/v1/operations/dead-letters/{id}
/api/v1/operations/dead-letters/{id}/replay
/api/v1/operations/dead-letters/{id}/dismiss
/api/v1/community/actions
/api/v1/community/remediation
/api/v1/source-follows
/api/v1/feed-catalog
/api/v1/ingest
/api/v1/ingest/dry-run
/api/v1/resolve
/api/v1/imports/{id}
/api/v1/storage/status
/api/v1/archive/remote-status
/api/v1/analysis
/api/v1/providers/archive-org/items/{identifier}
/api/v1/discovery
/api/v1/metrics
/api/v1/feeds/{id}
/api/v1/feeds/{id}/sync
/api/v1/feeds/{id}/refresh
/api/v1/feeds/{id}/entries
/api/v1/feeds/{id}/episodes
/api/v1/feeds/{id}/status
/api/v1/entries
/api/v1/entries/search
/api/v1/entries/recent
/api/v1/entries/archive
/api/v1/entries/{id}
/api/v1/shows
/api/v1/shows/{id}
/api/v1/shows/{id}/episodes
/api/v1/episodes
/api/v1/episodes/{id}
/api/v1/episodes/{id}/playback-url
/api/v1/episodes/{id}/archive
/api/v1/episodes/{id}/score-emoji
/api/v1/playlists
/api/v1/playlists/{id}
/api/v1/playlists/{id}/items
/api/v1/share
/api/v1/shares/{id}
/api/v1/clip/dry-run
/api/v1/clip
/api/v1/clips
/api/v1/clips/{id}
/api/v1/search/session
/api/v1/search
/api/ai/chat
/api/ai/analyze
/api/ai/recommend
/api/v1/categories
/api/v1/tags
/api/v1/sources
/api/v1/discovery/batches
/api/v1/community/remediations/{id}
/api/v1/discover
/api/v1/validate/feed
/api/v1/validate/xml
/api/v1/validate/json
/api/v1/integrations/status
/api/v1/status
/api/v1/opml/export
/api/v1/opml/import
/api/web/status
/api/web/manifest
/api/web/scorecard
/api/web/fingerprints
/api/provenance/lookup
/api/provenance/verify
/api/graph
/api/network/graph
/api/mcp
/sitemap.xml
/sitemap-index.xml
/sitemap-network.xml
/sitemap-full.xml
Operator-Controlled Actions
- Operator-controlled persistent ingest when PLATPHORM_PROTECTED=1
- Operator-controlled feed refresh and network sync when PLATPHORM_PROTECTED=1
- Operator-controlled RSSCloud registration and renewal when PLATPHORM_PROTECTED=1
- Operator-controlled saved media and clip artifacts when PLATPHORM_PROTECTED=1
- Operator-controlled publishing, report export, eval, browser journey, workflow, trace, catalog, and private report actions when PLATPHORM_PROTECTED=1
- MCP operator tool calls when PLATPHORM_PROTECTED=1
Integration State
- trace
- trace-linked ingestion headers supported; export is degraded unless PLATPHORM_TRACE_EXPORT_ENABLED=true
- mcp
- https://podcasts.vanagon.com/api/mcp
- xml
- XML validation adapter exists; external validation is not claimed without a real XML service response
- json
- JSON validation adapter exists; external validation is not claimed without a real JSON service response
- emoji
- Emoji scoring adapter exists; scores are unavailable unless the Emoji service returns a real score
- opencontent
- OpenContent publish is only reported after upstream confirmation
- apiAnalytics
- API analytics delivery is not claimed unless api.platphormnews.com confirms the event
- docs
- report creation is degraded until docs integration credentials are configured
- sheets
- report creation is degraded until sheets integration credentials are configured
- decks
- summary creation is degraded until decks integration credentials are configured
- browserops
- public navigation can be tested by BrowserOps; triggers follow PLATPHORM_PROTECTED runtime policy