List Audio Files
listAudioList the audio library in your workspace: recordings, uploads and generated speech, each with an id, category, filename, content type, size, duration, when it was created and the id of what it belongs to (associatedId, e.g. a run). Takes optional filters: category or categories (comma-separated), associatedId (all audio for one run or job), search (part of the name, any case), dateFrom / dateTo, sourceType (recorded, uploaded or generated), sortDirection (asc or desc), limit and cursor. Use when: the user asks what recordings or uploaded prompts they have, or whether a run has audio. Returns metadata only, never the audio or a link to it: the person plays or downloads it in the web app. Read-only. Needs audio:read.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "listAudio"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items to return. | |
| cursor | No | Opaque pagination cursor from a previous response's `nextCursor`. | |
| dateTo | No | ISO 8601 upper bound (inclusive) on `createdAt`. | |
| search | No | Case-insensitive substring match against filename, computed display name, and description — searched server-side across the full paginated history, not just the current page. | |
| category | No | Bucket used by the upload-URL handler to derive the S3 key. Audio files for test runs live under `tests/`, mapping recordings under `maps/`, voice profiles under `voices/`, and transcript audio under `transcripts/`. | |
| dateFrom | No | ISO 8601 lower bound (inclusive) on `createdAt`. | |
| categories | No | Comma-separated list of categories (e.g. `voice,test,map`). Presence of this param (or `search`/`dateFrom`/`dateTo`/`sourceType`/`cursor`) activates the cursor-paginated full-history query path. | |
| sourceType | No | Voice-only sub-filter on `metadata.source`. Only meaningful paired with `categories=voice`. `generated` is speech made with `POST /audio/generate`; `uploaded` is everything that is neither recorded nor generated. | |
| associatedId | No | Filter to audio owned by a specific parent entity (e.g. a `runId`). Note this query uses a cross-workspace GSI; callers should only pass ids they obtained from other workspace-scoped responses. Mutually exclusive with the categories/search/date-range/cursor path. | |
| sortDirection | No | Native `createdAt` order. Default matches pre-fix behaviour (newest-first). | desc |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | Number of items in the page. | |
| audioFiles | Yes | ||
| nextCursor | No | Present when more history is available. Pass back as `cursor` to fetch the next page. Only populated when the `categories`/`search`/`dateFrom`/`dateTo`/ `sourceType`/`cursor` pagination path is used. |