---
title: "Read the table read's theater presentation and every scene's theater."
method: GET
path: "/artifacts/{artifactId}/theater"
tags: ["Artifacts"]
---

# Read the table read's theater presentation and every scene's theater.

`GET /artifacts/{artifactId}/theater`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/artifacts/{artifactId}/theater`
- Auth: HTTP bearer

Returns the whole read's presentation (theater mode default, backgrounds, scene visuals, the active style set, the scene theme and transitions, the script pane, fonts, the title screen, fullscreen chrome, noun imagery), every style set `applyStyleSetId` takes, and each scene's theater (text reveal, look, transition, backdrop prompt and media, FX cues). Read-only. Scope: `artifact:read`.

## Response `200`

The theater presentation.

- TableReadTheaterResponse: The whole read's theater presentation, its style sets, and every scene's theater.
  - `artifactId` string, required
  - `presentation` object, required: Every presentation field resolved to what plays: theaterModeDefault, backgroundAnimationEnabled, adaptiveMusicEnabled, adaptiveStyleEnabled, activeStyleSetId, fullscreenChrome, globalSceneTheme, scriptPaneTheme, fontTheme, titleScreen, styleSets, nounImagery.
  - `styleSets` object[], required
    - `id` string, required
    - `name` string, required
    - `description` string, nullable, required
    - `source` 'preset' | 'manual' | 'slug', required
  - `scenes` TableReadTheaterScene[], required
    - `sceneIndex` integer, required
    - `heading` string, required
    - `mood` string, nullable, required
    - `summary` string, nullable, required
    - `textRevealStyle` 'fade' | 'drift' | 'spotlight', nullable, required
    - `visualStyle` object, required
    - `transitionType` 'crossfade' | 'spotlight' | 'curtain' | 'drift' | 'hard-cut', nullable, required
    - `transitionDurationMs` number, nullable, required
    - `transitionPrompt` string, nullable, required
    - `backdrop` object, required
      - `prompt` string, nullable, required
      - `mediaPreference` 'image' | 'video', nullable, required
      - `status` 'idle' | 'queued' | 'ready' | 'failed', required
      - `imageUrl` string, nullable, required
      - `videoUrl` string, nullable, required
      - `error` string, nullable, required
    - `fxCues` TableReadFxCue[], required
      - `id` string
      - `entryIndex` integer, required: The line the effect fires on.
      - `kind` 'light-flash' | 'hot-white' | 'strobe' | 'pulse' | 'color-wash' | 'texture-shift' | 'fabric-tear' | 'blood-splatter' | 'lightning' | 'weather' | 'darkness' | 'shroud' | 'ember' | 'vignette-pulse', required
      - `origin` 'tl' | 'tr' | 'bl' | 'br' | 'top' | 'bottom' | 'left' | 'right' | 'edges' | 'full', required: The corner or edge it comes from, every edge, or the full frame.
      - `color` string: Hex tint, e.g. "#ef4444".
      - `intensity` number
      - `durationMs` number: How long it plays (150–8000 ms).
      - `delayMs` number: Delay after the line before it starts (0–6000 ms).
      - `easing` 'ease-in' | 'ease-out' | 'ease-in-out' | 'linear'
    - `motionBeatCount` integer, required: Motion graphics directed on this scene (POST /artifacts/{artifactId}/theater-motion).

## Other responses

- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `404`: The story artifact does not exist or is owned by another account.
- `409`: The artifact is not in a state where this operation is valid yet (e.g. requesting an MP4 render before the share link exists).
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.

---

[API](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api.md) · [All operations](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/revisions/4534f5d25540?raw)
