Playground ↗ Postman ↗ Dashboard ↗
GET /v2/courses/{course_id}/podcasts

List podcast episodes

Returns every podcast episode generated for a course, in chapter order, with audio URLs and script snippets.

Request

Headers

HeaderRequiredNotes
X-API-Keyyes
X-External-User-Idyes (or X-User-Id)Must own the course

Path parameters

course_id string (UUID) required
The course whose episodes to list.

Returns

{
  "course_id": "8fa640c0-22e6-436b-becd-bf2cfc86741a",
  "episodes": [
    {
      "id": "p_01HW0XYZ…",
      "chapter_order": 0,
      "title": "Sunlight & Chlorophyll",
      "status": "ready",
      "audio_url": "https://cdn.nuton.app/podcasts/p_01HW0XYZ.mp3",
      "script": { "turns": [ { "speaker": "host", "text": "Welcome back…" } ] },
      "created_at": "2026-05-19T14:09:33Z"
    },
    {
      "id": "p_01HW0XZA…",
      "chapter_order": 1,
      "title": "The Calvin Cycle",
      "status": "generating",
      "audio_url": null,
      "script": null,
      "created_at": "2026-05-19T14:09:34Z"
    }
  ],
  "count": 2
}

status is one of ready, generating, error. Episodes with status: "error" carry an error field with a structured reason.

The audio URLs are signed and time-limited. If you want to embed them in a frontend, fetch this endpoint fresh per session — don’t cache the URLs.

Errors

  • 404 — Course not found.