---
title: "List a show's runs."
method: GET
path: "/publishing-series/{seriesId}/show/runs"
tags: ["Shows"]
---

# List a show's runs.

`GET /publishing-series/{seriesId}/show/runs`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/publishing-series/{seriesId}/show/runs`
- Auth: HTTP bearer

The show's recent runs, newest first: when each fired, how many of its episodes it made, its state (open, waiting with why, done, superseded), why it stands so (`reason` and a plain `note`: its target made, stopped at its attempt ceiling, nothing new, holding for the day's limit), and its episodes; plus the newest previews and extras the creator asked for.

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

The runs, newest first.

- ShowRuns: The show's recent runs, newest first: when each fired, how many of its episodes it made, its state (open, waiting with why, done, superseded), why it stands so (`reason` and a plain `note`: its target made, stopped at its attempt ceiling, nothing new, holding for the day's limit), and its episodes; plus the newest previews and extras the creator asked for.
  - `runs` object[], required
    - `runId` string, required
    - `scheduleId` string, required
    - `dateKey` string, required
    - `at` string, date-time, required
    - `state` 'open' | 'waiting' | 'done' | 'superseded', required
    - `target` integer, required
    - `made` integer, required
    - `waitingReason` string, nullable, required
    - `reason` 'target' | 'attempt_ceiling' | 'nothing_new' | 'daily_ceiling' | 'waiting' | 'superseded' | 'entry_removed', nullable, required: Why the run stands as it does: how a done run ended (target, attempt_ceiling, nothing_new), what an open run holds for (daily_ceiling), waiting, superseded, or entry_removed.
    - `note` string, nullable, required: That reason in one plain sentence; null when the state and counts already say it.
    - `episodes` ShowEpisode[], required
      - `episodeId` string, required
      - `seriesId` string, required
      - `kind` 'scheduled' | 'extra' | 'preview' | 'external', required
      - `outcome` 'queued' | 'making' | 'published' | 'held' | 'preview' | 'dropped' | 'skipped' | 'failed', required
      - `outcomeLabel` string, required: How it stands, in the writer's words.
      - `title` string, nullable, required
      - `heldReason` 'review' | 'hard_line' | 'off_cast' | 'voice_pin_failed' | 'voice_effect_failed' | 'sounds_failed' | 'theme_failed' | 'show_turned_off' | 'shows_not_running', nullable, required
      - `skippedReason` 'no_material' | 'not_runnable' | 'not_ready' | 'cap_reached' | 'already_covered', nullable, required
      - `failureCode` string, nullable, required
      - `failureMessage` string, nullable, required
      - `itemId` string, nullable, required
      - `items` object[], required
        - `itemKey` string, required
        - `title` string, required
        - `author` string
        - `url` string
        - `publishedAt` string, date-time
      - `creditsSpent` integer, nullable, required
      - `wornPhrasingLines` integer, nullable, required: Spoken lines of the finished script in a worn-out shape ("it's not X, it's Y" in any form, "Not X. Not Y.", podcast filler): a measure of whether the writing holds the voice rules, never acted on. Null until counted.
      - `audioUrl` string, nullable, required
      - `artifactId` string, nullable, required
      - `releaseId` string, nullable, required: Set once published: the release in the feed.
      - `runId` string, nullable, required
      - `attempts` integer, required
      - `createdAt` string, date-time, required
      - `finishedAt` string, date-time, nullable, required
  - `requested` ShowEpisode[], required: The newest previews and extras.
    - `episodeId` string, required
    - `seriesId` string, required
    - `kind` 'scheduled' | 'extra' | 'preview' | 'external', required
    - `outcome` 'queued' | 'making' | 'published' | 'held' | 'preview' | 'dropped' | 'skipped' | 'failed', required
    - `outcomeLabel` string, required: How it stands, in the writer's words.
    - `title` string, nullable, required
    - `heldReason` 'review' | 'hard_line' | 'off_cast' | 'voice_pin_failed' | 'voice_effect_failed' | 'sounds_failed' | 'theme_failed' | 'show_turned_off' | 'shows_not_running', nullable, required
    - `skippedReason` 'no_material' | 'not_runnable' | 'not_ready' | 'cap_reached' | 'already_covered', nullable, required
    - `failureCode` string, nullable, required
    - `failureMessage` string, nullable, required
    - `itemId` string, nullable, required
    - `items` object[], required
      - `itemKey` string, required
      - `title` string, required
      - `author` string
      - `url` string
      - `publishedAt` string, date-time
    - `creditsSpent` integer, nullable, required
    - `wornPhrasingLines` integer, nullable, required: Spoken lines of the finished script in a worn-out shape ("it's not X, it's Y" in any form, "Not X. Not Y.", podcast filler): a measure of whether the writing holds the voice rules, never acted on. Null until counted.
    - `audioUrl` string, nullable, required
    - `artifactId` string, nullable, required
    - `releaseId` string, nullable, required: Set once published: the release in the feed.
    - `runId` string, nullable, required
    - `attempts` integer, required
    - `createdAt` string, date-time, required
    - `finishedAt` string, date-time, nullable, required
  - `nextCursor` string, nullable, required

## 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 publishing series, destination, or release does not exist or is owned by another account.
- `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/86e084144cef?raw)
