---
title: "List your audiobooks, newest first"
method: GET
path: "/api/v1/audiobooks"
tags: ["Public API v1"]
---

# List your audiobooks, newest first

`GET /api/v1/audiobooks`

## Request

- Base URL: `https://api.vieneu.io`
- URL: `https://api.vieneu.io/api/v1/audiobooks`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

A summary of each book (no download links; GET one book for those).

## Query parameters

- `limit` integer
- `page` integer

## Response `200`

One page of books.

- AudiobookListResponseDto
  - `items` AudiobookResponseDto[], required
    - `id` string, required
    - `title` string, required
    - `author` string, nullable, required
    - `status` 'draft' | 'queued' | 'rendering' | 'completed' | 'partial' | 'failed' | 'cancelled', required
    - `narratorVoice` string, required
    - `cast` AudiobookCastEntryDto[], required
      - `speaker` string, required: A character name, as used in `segments[].speaker`.
      - `voiceId` string, required: Voice id from GET /v1/voices (engine of the book; not a cloned voice).
    - `waitingReason` string, nullable, required: gpu_busy: books render only while the GPU fleet is idle; quota: the plan hit a limit, retried automatically; queue_full.
    - `error` string, nullable, required
    - `totals` AudiobookTotalsDto, required
      - `chapters` number, required
      - `completedChapters` number, required
      - `characters` number, required
      - `estimatedTokens` number, required: Tokens the chapters not yet rendered will cost.
      - `tokensCharged` number, required
      - `durationSeconds` number, required
    - `otherBooksWaiting` number, nullable, required: While started: how many other books are waiting too. Books take turns, a chapter each.
    - `chapterCharsMax` number, required: The longest chapter (in characters) the plan behind this key can render: a chapter is billed in one go, so it must fit the plan's daily or weekly token cap. 60,000 when the plan has no tighter cap.
    - `chapters` AudiobookChapterResponseDto[], required
      - `index` number, required
      - `title` string, required
      - `status` 'pending' | 'rendering' | 'rendered' | 'mastering' | 'completed' | 'failed' | 'cancelled', required
      - `characters` number, required
      - `segments` number, required
      - `tokenCost` number, nullable, required
      - `progress` AudiobookChapterProgressDto, required
        - `done` number, required
        - `total` number, nullable, required
      - `durationSeconds` number, nullable, required
      - `audioUrl` string, nullable, required: Presigned link (24 h) once completed.
      - `audioFormat` string, nullable, required: mp3 (wav only if mastering failed).
      - `error` string, nullable, required
    - `createdAt` string, date-time, required
    - `completedAt` string, date-time, nullable, required
  - `page` number, required
  - `limit` number, required

## Other responses

- `401`: API key missing, malformed, or revoked.

## Changes

- **2026-10-10** `8e42136d02f3`: 1 info
  - added the required property `items/items/chapterCharsMax` to the response with the `200` status
- **2026-10-01** `17d7990f256f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vieneu/apis/vieneu-api/changes/api/v1/audiobooks/get.md)

---

[API](https://skmtc.dev/vieneu/apis/vieneu-api.md) - [All operations](https://skmtc.dev/vieneu/apis/vieneu-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vieneu/apis/vieneu-api/revisions/9518b716e16d?raw)
