Speaker Services - Speakers
Manage speaker identities, enrollment readiness, and speaker lifecycle. Embedding models are documented in Embedding Models, voice-print endpoints are documented in Voice Prints, enrollment endpoints are documented in Enrollments, and verification endpoints are documented in Verifications.
Base path: /api/v1/speaker-services
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/speaker-services/speaker-verification/speakers |
List Speakers |
POST |
/api/v1/speaker-services/speaker-verification/speakers |
Create Speaker |
GET |
/api/v1/speaker-services/speaker-verification/speakers/{id} |
Get Speaker |
PATCH |
/api/v1/speaker-services/speaker-verification/speakers/{id} |
Update Speaker |
DELETE |
/api/v1/speaker-services/speaker-verification/speakers/{id} |
Delete Speaker |
POST |
/api/v1/speaker-services/speaker-verification/speakers/{id}/purge |
Purge Speaker |
Recommended Enrollment Strategy
Enroll each speaker with 3 to 5 clean samples from different sessions, each containing at least 10 to 20 seconds of dominant speech. Avoid overlapping speakers, clipping, aggressive compression, and heavy background noise.
List Speakers
GET /api/v1/speaker-services/speaker-verification/speakers
Requires Authentication - Scopes: speaker:speakers:read
Retrieve a paginated list of speaker identities owned by the authenticated caller.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer |
No | 0 |
Page number (zero-based). |
size |
integer |
No | 20 |
Page size (max 100). |
status |
string[] |
No | - | Filter by speaker status. Values: ACTIVE, DISABLED, ARCHIVED. |
verificationStatus |
string[] |
No | - | Filter by readiness state. Values: NOT_READY, READY. |
name |
string |
No | - | Partial case-insensitive search on display name. |
externalRef |
string |
No | - | Exact match on a client-defined external identifier. |
tags |
string[] |
No | - | Filter by tags (comma-separated). A speaker matches when it has at least one supplied tag. |
createdAfter |
string (ISO 8601) |
No | - | Return speakers created on or after this timestamp. |
createdBefore |
string (ISO 8601) |
No | - | Return speakers created on or before this timestamp. |
isDeleted |
boolean |
No | false |
Filter by deleted state. |
sort |
string |
No | creationDate,desc |
Sort field and direction. Allowed fields: name, creationDate, lastVerificationAt, status. |
SpeakerServiceSpeakersListResponse
| Field | Type | Nullable | Description |
|---|---|---|---|
speakers |
SpeakerServiceSpeakerResponse[] |
No | Array of speaker identities. |
size |
integer |
No | Number of items returned in this page. |
total |
long |
No | Total number of matching items across all pages. |
filters |
object |
No | Echo of applied filters. |
sort |
object |
No | Applied sort order. |
| Status | Description |
|---|---|
200 OK |
Speakers retrieved successfully. |
400 Bad Request |
Invalid sort field or query parameters. |
401 Unauthorized |
Missing or invalid authentication. |
403 Forbidden |
Insufficient scope. |
Create Speaker
POST /api/v1/speaker-services/speaker-verification/speakers
Requires Authentication - Scopes: speaker:speakers:write
Create a new speaker identity.
SpeakerServiceCreateSpeakerRequest
| Field | Type | Required | Description |
|---|---|---|---|
name |
string |
Yes | Human-readable display name. |
externalRef |
string |
No | Client-defined business identifier. Must be unique per owner. |
description |
string |
No | Optional note describing the speaker. |
locale |
string |
No | Preferred IETF BCP 47 locale. |
tags |
string[] |
No | Optional tags for search and organization. |
metadata |
object |
No | Additional key-value metadata. |
{
"name": "Dana Levi",
"externalRef": "crm-contact-1842",
"description": "Primary contact for retail onboarding",
"locale": "he-IL",
"tags": ["Retail", "VIP"],
"metadata": {
"department": "sales"
}
}
SpeakerServiceSpeakerResponse
Returns the created speaker.
| Status | Description |
|---|---|
201 Created |
Speaker created successfully. |
400 Bad Request |
Invalid request body or duplicate externalRef. |
401 Unauthorized |
Missing or invalid authentication. |
403 Forbidden |
Insufficient scope. |
Get Speaker
GET /api/v1/speaker-services/speaker-verification/speakers/{id}
Requires Authentication - Scopes: speaker:speakers:read
Retrieve a single speaker identity including enrollment readiness.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string (UUID) |
Yes | Unique identifier of the speaker. |
SpeakerServiceSpeakerResponse
{
"id": "0d5b31f3-2d77-4b46-a7b0-0d22b9910d10",
"name": "Dana Levi",
"status": "ACTIVE",
"verificationStatus": "READY",
"enrollmentSummary": {
"total": 5,
"successful": 4,
"usable": 4,
"rejected": 1,
"failed": 0,
"minimumRequired": 3,
"recommendedTarget": 5
}
}
| Status | Description |
|---|---|
200 OK |
Speaker retrieved successfully. |
401 Unauthorized |
Missing or invalid authentication. |
403 Forbidden |
Insufficient scope or not authorized. |
404 Not Found |
Speaker not found. |
Update Speaker
PATCH /api/v1/speaker-services/speaker-verification/speakers/{id}
Requires Authentication - Scopes: speaker:speakers:write
Update mutable speaker metadata and administrative state.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string (UUID) |
Yes | Unique identifier of the speaker. |
SpeakerServiceUpdateSpeakerRequest
| Field | Type | Required | Description |
|---|---|---|---|
name |
string |
No | Updated display name. |
externalRef |
string |
No | Updated external business identifier. |
description |
string |
No | Updated description. |
locale |
string |
No | Updated preferred locale. |
status |
string |
No | Administrative state: ACTIVE, DISABLED, ARCHIVED. |
tags |
string[] |
No | Replace all tags with a new array. |
metadata |
object |
No | Replace metadata object. |
Archived Speakers
When a speaker is changed to ARCHIVED, new enrollments and verifications are rejected. Existing data is subject to retention policy.
SpeakerServiceSpeakerResponse
| Status | Description |
|---|---|
200 OK |
Speaker updated successfully. |
400 Bad Request |
Invalid patch payload or duplicate externalRef. |
401 Unauthorized |
Missing or invalid authentication. |
403 Forbidden |
Insufficient scope or not authorized. |
404 Not Found |
Speaker not found. |
Delete Speaker
DELETE /api/v1/speaker-services/speaker-verification/speakers/{id}
Requires Authentication - Scopes: speaker:speakers:delete
Soft-delete a speaker identity. Deleted speakers cannot receive new enrollments or be verified.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string (UUID) |
Yes | Unique identifier of the speaker. |
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
purge |
boolean |
No | false |
Immediately purge biometric artifacts and enrollment media. |
| Status | Description |
|---|---|
204 No Content |
Speaker deleted successfully. |
401 Unauthorized |
Missing or invalid authentication. |
403 Forbidden |
Insufficient scope or not authorized. |
404 Not Found |
Speaker not found. |
409 Conflict |
Speaker already deleted or has active enrollment processing. |
Purge Speaker
POST /api/v1/speaker-services/speaker-verification/speakers/{id}/purge
Requires Authentication - Scopes: speaker:speakers:delete
Permanently purge a deleted speaker and all remaining biometric artifacts.
| Status | Description |
|---|---|
204 No Content |
Speaker purged successfully. |
401 Unauthorized |
Missing or invalid authentication. |
403 Forbidden |
Insufficient scope or not authorized. |
404 Not Found |
Speaker not found. |
409 Conflict |
Speaker is not deleted or is already purged. |
Data Types
SpeakerServiceSpeakerResponse
| Field | Type | Nullable | Description |
|---|---|---|---|
id |
string (UUID) |
No | Unique identifier of the speaker. |
name |
string |
No | Display name. |
externalRef |
string |
Yes | Client-defined external identifier. |
description |
string |
Yes | Optional description. |
locale |
string |
Yes | Preferred IETF BCP 47 locale. |
status |
string |
No | Administrative state. See SpeakerStatus. |
verificationStatus |
string |
No | Verification readiness state. See SpeakerVerificationStatus. |
enrollmentSummary |
SpeakerServiceEnrollmentSummary |
No | Enrollment readiness summary. |
lastEnrollmentAt |
string (ISO 8601) |
Yes | Timestamp of the most recent successful enrollment. |
lastVerificationAt |
string (ISO 8601) |
Yes | Timestamp of the most recent verification. |
tags |
string[] |
Yes | Tags assigned to the speaker. |
metadata |
object |
Yes | Additional key-value metadata. |
isDeleted |
boolean |
No | Whether the speaker has been deleted. |
isPurged |
boolean |
No | Whether biometric artifacts have been permanently removed. |
creationDate |
string (ISO 8601) |
No | Timestamp when the speaker was created. |
deletedAt |
string (ISO 8601) |
Yes | Timestamp when the speaker was deleted. |
purgedAt |
string (ISO 8601) |
Yes | Timestamp when the speaker was purged. |
SpeakerServiceEnrollmentSummary
| Field | Type | Nullable | Description |
|---|---|---|---|
total |
integer |
No | Total number of non-deleted enrollments. |
successful |
integer |
No | Number of READY enrollments. |
usable |
integer |
No | READY, nondeleted, nonpurged enrollments with retained audio. |
rejected |
integer |
No | Number of REJECTED enrollments (policy gate rejections, e.g. sentence verification). |
failed |
integer |
No | Number of FAILED enrollments (unexpected system errors). |
minimumRequired |
integer |
No | Minimum usable enrollments required for verification. Configured server-side. |
recommendedTarget |
integer |
No | Recommended successful enrollment count for stronger matching. Configured server-side. |
Enumerations
SpeakerStatus
| Value | Description |
|---|---|
ACTIVE |
Speaker is active and may receive enrollments and verifications. |
DISABLED |
Speaker is temporarily blocked from enrollment and verification. |
ARCHIVED |
Speaker is retained for history but should not receive new activity. |
SpeakerVerificationStatus
| Value | Description |
|---|---|
NOT_READY |
Not enough usable retained enrollments for verification. |
READY |
Speaker has enough usable retained enrollments for automatic verification. |