Create session
Create a TTRPG session with an optional title + synopsis, linking NPCs and encounters for a specific session number. Starts in brainstorm status. Use /sessions/{session_id}/generate to generate narrative content.
Body
POST /v1/projects/{project_id}/sessions
title is required (2026-05-16, migration 094). session_number
alone is not a unique identifier - there is no UNIQUE constraint on
(project_id, session_number) and series_id is auto-generated per
session today, so two Game Nights both numbered "1" are valid state.
Without a title the dashboard list shows two indistinguishable rows.
x >= 1User-facing session name
1 - 200Short prose summary of the session
500050000NPCs to include
Encounters to include
Response
Session created
Session resource representation.
Carries the full mutable field set so the create response and the
detail GET both round-trip what the edit form needs. project_context
/ npc_ids / encounter_ids were added 2026-05-14 - before that the
response omitted them and the dashboard edit form had nothing to read.
Human-readable slug for the URL (/projects/<slug>/sessions/<external_id>). Derived from title (or session-<N> fallback) at create time and immutable. May be null on legacy rows pre-migration 102.