One resource, several configuration blocks
A Session is the only top-level REST resource. Your application creates it, reconnects to it when necessary, and closes it when the experience ends. Everything else on this page is embedded configuration for that Session.Configuration is not an entity model. References and runtime Events belong to a Session, but they are not independently addressable REST resources. Streaming World does not expose character, object, location, scene, or world-state CRUD.
Define the starting world
initial_prompt is the durable creative context for the session. Describe the world as a whole: who or what matters, where the experience begins, the tone it should maintain, and the continuity that later Events should preserve.
Initial prompt
opening_frame is optional. Use it when the first image matters—for example, when an experience must open in a particular lobby, composition, or art direction. It establishes a visual starting point; it is not an authoritative snapshot of queryable world state.
Describe intent, not production steps. Keep dialogue, behavior, reactions, movement, and presentation together in natural language. Do not pre-split an interaction into lines, actions, shots, or timing fields.
Ground the world with named references
A Reference gives a short, stable name to related text, images, or audio. Use one when later Events need to return to the same character, place, object, voice, or visual style without resending its source material.Image
Ground appearance, silhouette, wardrobe, environment, object design, or visual style.
Audio
Ground a voice, ambience, sound identity, delivery quality, or other audible traits.
Text
Add role, temperament, relationships, constraints, or context that media alone cannot express.
A. Runtime Events can then select that anchor and describe the next development in ordinary language.
Choose how the experience runs
These fields express application intent. The create response contains the effective settings for the allocated Session, so clients should render and enable controls from the returned values rather than assuming every model or region behaves identically.
Treat capabilities as the session contract
Streaming models can differ in the inputs and controls they support. After creating a Session, read its returned capabilities before enabling UI or sending runtime content.- Only send Event and reference content types that the Session reports as supported.
- Enable live audio, cancellation, hold, resume, or other controls only when advertised.
- Apply the returned Event and reference limits in the client, while still handling server rejection.
- After reconnecting, refresh the effective Session contract instead of relying on stale assumptions.
Capabilities are authoritative. A field appearing in the general API schema does not mean that every Session supports it. Unsupported content is rejected rather than silently ignored.
Create a configured Session
The following request creates a manually started hotel experience with two grounded characters. It is intentionally compact; Streaming World Sessions contains the complete request, response, validation, and error schemas.Create Session
Continue with Streaming Control
Start the world, steer it with Events, and react to its realtime lifecycle.