Get a campaign (spine + authored chapters)
Read a campaign: its story spine and the chapter worlds authored so far (ordered by actIndex, growing while the generation job runs). Each chapter is an ordinary world — fetch it with GET /v1/worlds/{worldId} and run it with POST /v1/sessions/token. Generation status/progress is read from GET /v1/jobs/{jobId} (the jobId returned by POST /v1/campaigns), which exposes actsDone/actsTotal. Tenant-scoped: a campaign that isn’t this app’s returns 404. Uses the read scope, so a publishable (pk_) key can read it.
Authorizations
An app API key, e.g. Authorization: Bearer sk_live_…. Secret (sk_) for writes/sessions; publishable (pk_) is read-only (browser-safe).
Path Parameters
Response
The campaign resource (spine + chapters authored so far)
A multi-chapter book→game campaign: one story spine plus the chapter worlds authored from it. Each chapter is an ordinary playable world (run it via POST /v1/sessions/token like any other). worlds lists the chapters authored SO FAR, ordered by actIndex, so the list grows while the generation job runs. Tenant-scoped: only the app that created it can read it.
How closely the chapters track the source text (echoes the create request).
faithful, spirit Total chapters the spine defines (0 until the spine stage completes). worlds.length reaches this when the job succeeds.
Chapters authored so far, ordered by actIndex. Each is a standalone world.
Campaign title (from the book bible; defaults to the request name).
One-line premise distilled from the source text.
Cover image URL (the first chapter's seed, once painted).
The story-spine graph (acts + how they connect). {} until the spine stage completes.
"1.0"

