---
title: "GET /v1/ai/voices/:voiceId/samples"
method: GET
path: "/v1/ai/voices/:voiceId/samples"
tags: ["AI Knowledge"]
---

# GET /v1/ai/voices/:voiceId/samples

`GET /v1/ai/voices/:voiceId/samples`

## Request

- Base URL: `https://api.quillhub.ai`
- URL: `https://api.quillhub.ai/v1/ai/voices/:voiceId/samples`
- Auth: HTTP bearer

## Path parameters

- `voiceId` integer, required

## Response `200`

Voice samples.

- object
  - `samples` object[], required
    - `id` number, required
    - `source_transcript_id` number, nullable, required
    - `transcript_title` string, nullable, required
    - `speaker_label` string, nullable, required
    - `sample_start` number, nullable, required
    - `sample_end` number, nullable, required
    - `sample_seconds` number, nullable, required
    - `created_by` string, required: 'pipeline' — cut by the worker from this recording; 'user' — added by hand; 'migration' — carried over from the pre-v2 model (voice_cluster / subject_voiceprint). Migrated samples are second-class: a match against them alone groups the label onto the voice but never auto-fills the person's name, because the old system copied embeddings between different people.
    - `created_at` string, required

## Other responses

- `401`: Unauthenticated.
- `403`: Forbidden.
- `404`: Not found.

---

[API](https://skmtc.dev/quillhub/apis/quillhub-public-api.md) · [All operations](https://skmtc.dev/quillhub/apis/quillhub-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/quillhub/apis/quillhub-public-api/revisions/5bd42ee9d967?raw)
