---
title: "List all stories"
method: GET
path: "/v2/stories"
tags: ["stories"]
---

# List all stories

`GET /v2/stories`

## Request

- Base URL: `https://api.storydoc.com`
- URL: `https://api.storydoc.com/v2/stories`
- Auth: HTTP bearer

Retrieves a list of all stories in the organization with optional status filtering

## Query parameters

- `status` 'Draft' | 'Live' | 'Archived'

## Response `200`

Stories retrieved successfully

- StoryResponse[]
  - `optionalContent` OptionalEntity[], nullable: Content the author marked optional in the story's published version (see OptionalEntity); empty when none, null when the content could not be read. Only on GET /v2/stories/{storyId} with `?include=optionalContent`, not on the list
    - `id` string: Entity id, the key in `data._optionalContent`
    - `name` string, nullable: Name the author gave it
    - `type` 'slide' | 'combo' | 'set' | 'element'
    - `slideIndex` integer: 1-based position of the slide it is on
    - `slideTitle` string, nullable
    - `mode` 'simple' | 'conditional': `simple`: shown or hidden per version. `conditional`: follows `rule`, cannot be toggled
    - `toggleable` boolean: True when `data._optionalContent` can show or hide it
    - `rule` object: Conditional entities only: shown or hidden by a variable's value
      - `variable` string
      - `operator` 'equals' | 'not-equals'
      - `value` string
      - `then` 'show' | 'hide'
  - `repeatables` RepeatableGroup[]: Repeatable-content groups of the story (see RepeatableGroup); empty when none
    - `key` string
    - `name` string
    - `fields` object[]
      - `key` string
      - `name` string
      - `type` string
      - `generated` boolean: Produced by Storydoc (AI per row, calculations) — do not send
    - `children` object[]: Nested groups (same shape)
    - `exampleRow` object
  - `id` string, required: Unique identifier for the story
  - `status` 'Draft' | 'Live' | 'Archived', required: Current status of the story
  - `previewUrl` string, uri, nullable: Preview URL for the story (null if not published)
  - `createdAt` string, date-time: Timestamp when the story was created
  - `title` string, required: Title of the story
  - `dynamicVariables` object: Dynamic variables configuration for the story

## Other responses

- `403`: Authentication failed or missing token
- `404`: No stories found
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/storydoc/apis/storydoc-api-v2.md) - [All operations](https://skmtc.dev/storydoc/apis/storydoc-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/storydoc/apis/storydoc-api-v2/revisions/366e7d124e9e?raw)
