Playground ↗ Postman ↗ Dashboard ↗
POST /v2/courses/{course_id}/resume

Resume a course

If a course ended up with gaps — say the upstream LLM hiccupped mid-job and chapter 3 of 5 never rendered — this endpoint kicks off a background task that fills in only the missing chapters.

Idempotent: calling it on a complete course just returns status: "completed".

Request

Headers

HeaderRequiredNotes
X-API-Keyyes
X-External-User-Idyes (or X-User-Id)Must own the course
Content-Typeyesapplication/json (body may be empty {})

Path parameters

course_id string (UUID) required
The course to repair.

Body

The body is currently ignored. Pass {}.

Returns

{
  "course_id": "8fa640c0-22e6-436b-becd-bf2cfc86741a",
  "status": "resuming",
  "missing_chapters": [3],
  "total_chapters": 5,
  "message": "Resuming generation of 1 chapter."
}

If nothing’s missing:

{
  "course_id": "8fa640c0-22e6-436b-becd-bf2cfc86741a",
  "status": "completed",
  "missing_chapters": [],
  "total_chapters": 5,
  "message": "Course is already complete."
}

Watch GET /v2/courses/{course_id}/progress — or subscribe to course.completed — to know when the resumed chapters land. Resume runs in the background; no mode=stream here.

Errors

  • 404 — No course with that ID.
  • 409 — Course is already actively generating; wait for the current job to finish.