{"service":"curio-api","description":"API-only backend for Curio. The product frontend is a native iOS app; there is no web UI.","auth":"All /episodes routes require 'Authorization: Bearer <supabase-jwt>'.","endpoints":{"GET /health":"liveness check","POST /episodes":"create a podcast — body {\"topic\": \"<1-600 chars>\"} → 202 + episode","GET /episodes":"list your episodes, newest first","GET /episodes/:id":"poll one episode — status is one of researching|drafting|narrating|ready|failed; audioUrl is set once ready","POST /episodes/:id/retry":"re-run a failed episode","PATCH /episodes/:id":"update playbackPositionSec","DELETE /episodes/:id":"delete an episode","GET /playlists":"list your playlists, each with its ordered episodes","POST /playlists":"create a playlist — body {\"name\": \"<1-80 chars>\", \"episodeId\"?: \"<uuid>\"}","PATCH /playlists/:id":"rename — body {\"name\": \"<1-80 chars>\"}","DELETE /playlists/:id":"delete a playlist (episodes are not deleted)","POST /playlists/:id/episodes":"add an episode — body {\"episodeId\": \"<uuid>\"}","DELETE /playlists/:id/episodes/:episodeId":"remove an episode from the playlist","PATCH /playlists/:id/reorder":"reorder — body {\"episodeIds\": [\"<uuid>\", …]}","POST /events":"append a batch of client analytics events — body {\"events\": [{\"name\", \"ts\", \"props\"?}, …]}","POST /shows/draft":"propose a recurring show — body {\"topic\", \"mode\": \"pulse\"|\"series\"}","POST /shows":"create a recurring show (playlist + first episode(s) included)","GET /shows":"list your shows","PATCH /shows/:id":"rename and/or pause/resume — body {\"name\"?, \"status\"?: \"active\"|\"paused\"}","DELETE /shows/:id":"delete a show and its playlist (episodes survive)"},"createFlow":"POST /episodes {topic} → poll GET /episodes/:id until status=\"ready\" → play audioUrl"}