> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genviral.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List Slideshows

> List slideshow summaries in authenticated key scope

Returns paginated slideshow summaries for the authenticated workspace/personal scope.
Results are ordered by `created_at` descending, with the slideshow ID as a stable
tie-breaker, so the newest-created slideshow is always returned first.

## Query Parameters

<ParamField query="status" type="string">
  Optional status filter (for example `draft` or `rendered`).
</ParamField>

<ParamField query="search" type="string">
  Optional title search (case-insensitive partial match).
</ParamField>

<ParamField query="limit" type="number" default="20">
  Number of records to return. Range: `1-100`.
</ParamField>

<ParamField query="offset" type="number" default="0">
  Number of records to skip.
</ParamField>

<ParamField query="since" type="string">
  Inclusive ISO 8601 lower bound on `created_at` (for example,
  `2026-08-01T00:00:00.000Z`).
</ParamField>

<ParamField query="until" type="string">
  Inclusive ISO 8601 upper bound on `created_at`. When both bounds are supplied,
  `until` must be at or after `since`.
</ParamField>

## Response

<ResponseField name="slideshows" type="array">
  Slideshow summary list.

  <Expandable title="Summary Object">
    <ResponseField name="id" type="string" />

    <ResponseField name="title" type="string" />

    <ResponseField name="status" type="string" />

    <ResponseField name="slideshow_type" type="string" />

    <ResponseField name="product_id" type="string | null" />

    <ResponseField name="preview_image_url" type="string | null" />

    <ResponseField name="slide_count" type="number" />

    <ResponseField name="has_rendered_slide" type="boolean" />

    <ResponseField name="aspect_ratio" type="string">
      The deck's slide ratio: `9:16`, `3:4`, `4:5`, or `1:1` (`9:16` when none is set).
    </ResponseField>

    <ResponseField name="cover_slide" type="object | null">
      The first slide, so a list can draw each cover like the editor; `null` for a deck with
      no slides.

      <Expandable title="Cover Slide Object">
        <ResponseField name="image_url" type="string | null">Background image.</ResponseField>

        <ResponseField name="rendered_image_url" type="string | null">
          Rendered slide with the text baked in; `null` until the deck is rendered (and again
          after an edit).
        </ResponseField>

        <ResponseField name="text_elements" type="array">
          Text drawn on the background: `content`, `x` and `y` (box centre, percent of the
          slide), `width`, `height` (percent), `font_size` (1080px-canvas pixels),
          `style_preset`, `font_family`, `text_color`, `background_color`, `border_radius`.
          Unset style fields are `null`.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="created_at" type="string" />

    <ResponseField name="updated_at" type="string" />
  </Expandable>
</ResponseField>

<ResponseField name="total" type="number">
  Total matching rows before pagination.
</ResponseField>

<ResponseField name="limit" type="number" />

<ResponseField name="offset" type="number" />

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://www.genviral.io/api/partner/v1/slideshows?status=draft&since=2026-08-01T00%3A00%3A00.000Z&until=2026-08-31T23%3A59%3A59.999Z&limit=20&offset=0' \
    --header 'Authorization: Bearer <token>'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "ok": true,
    "code": 200,
    "message": "Slideshows retrieved",
    "data": {
      "slideshows": [
        {
          "id": "2ab58bb0-0c39-45c0-a4d5-b6852f9d7fc0",
          "title": "5 discipline quotes",
          "status": "draft",
          "slideshow_type": "educational",
          "product_id": null,
          "preview_image_url": null,
          "slide_count": 5,
          "has_rendered_slide": false,
          "aspect_ratio": "9:16",
          "cover_slide": {
            "image_url": "https://cdn.vireel.io/slideshow/images/discipline-0.jpg",
            "rendered_image_url": null,
            "text_elements": [
              {
                "content": "5 quotes that rewired my discipline",
                "x": 50,
                "y": 30,
                "width": 80,
                "height": null,
                "font_size": 54,
                "style_preset": "tiktok",
                "font_family": null,
                "text_color": null,
                "background_color": null,
                "border_radius": null
              }
            ]
          },
          "created_at": "2026-02-14T09:20:00.000Z",
          "updated_at": "2026-02-14T09:20:00.000Z"
        }
      ],
      "total": 1,
      "limit": 20,
      "offset": 0
    }
  }
  ```
</ResponseExample>

## Error Responses

* `422 invalid_query` - query params failed validation
* `401` - authentication failed (missing/invalid/revoked token)
* `402 subscription_required` - active Creator/Professional/Business plan required
* `403 tier_not_allowed` - Scheduler tier cannot use Partner API
* `500 slideshows_list_failed` - unexpected listing failure


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.