Skip to main content
PATCH
Update session

Path Parameters

session_id
string
required

Body

application/json

PATCH /v1/projects/{project_id}/sessions/{session_id}

Partial update of mutable session fields. Each field is independently optional; None means "leave unchanged" (not "set to NULL"). session_number is intentionally absent - it is set once at create. title cannot be cleared (NOT NULL since migration 094); when present it must be non-empty.

title
string | null
Required string length: 1 - 200
synopsis
string | null
Maximum string length: 5000
project_context
string | null
Maximum string length: 50000
npc_ids
string<uuid>[] | null
encounter_ids
string<uuid>[] | null

Response

Session updated

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.

id
string
required
session_number
integer
required
project_id
string
required
external_id
string | null

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.

title
string | null
synopsis
string | null
project_context
string | null
npc_ids
string<uuid>[]
encounter_ids
string<uuid>[]
status
string
default:brainstorm
series_id
string | null
created_at
string<date-time> | null