Administration - Sentence Verification Models
Configure sentence verification (sentver) model clients and aliases. Sentver models are Speech Services sentence-verification resources, separate from transcription models, and are currently used by Speaker Services enrollment and verification pipelines.
Base path: /api/v1/speech-services/admin
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/speech-services/admin/sentence-verification/models |
List Sentver Models |
POST |
/api/v1/speech-services/admin/sentence-verification/models |
Register Sentver Model |
PUT |
/api/v1/speech-services/admin/sentence-verification/models/{name} |
Update Sentver Model |
PATCH |
/api/v1/speech-services/admin/sentence-verification/models/{name}/status |
Update Sentver Model Status |
DELETE |
/api/v1/speech-services/admin/sentence-verification/models/{name} |
Delete Sentver Model |
GET |
/api/v1/speech-services/admin/sentence-verification/model-aliases |
List Sentver Model Aliases |
PUT |
/api/v1/speech-services/admin/sentence-verification/model-aliases/{alias} |
Create or Update Sentver Model Alias |
PUT |
/api/v1/speech-services/admin/sentence-verification/model-aliases/{alias}/resolve |
Update Sentver Alias Resolution |
PUT |
/api/v1/speech-services/admin/sentence-verification/model-aliases/{alias}/deprecate |
Deprecate Sentver Model Alias |
PUT |
/api/v1/speech-services/admin/sentence-verification/model-aliases/{alias}/undeprecate |
Undeprecate Sentver Model Alias |
DELETE |
/api/v1/speech-services/admin/sentence-verification/model-aliases/{alias} |
Delete Sentver Model Alias |
List Sentver Models
GET /api/v1/speech-services/admin/sentence-verification/models
Requires Authentication - Scopes: admin:sentver-models:write
Returns concrete sentver model client configurations for the tenant.
Register Sentver Model
POST /api/v1/speech-services/admin/sentence-verification/models
Requires Authentication - Scopes: admin:sentver-models:write
Registers a concrete sentver model client. Newly registered models start as INACTIVE; use the status endpoint to make a model available. The name is immutable after creation and remains the concrete model identifier used by aliases and retained records.
Inference calls use round-robin load balancing. grpcTarget accepts a single host:port, dns:///sentver-headless:443 for DNS discovery, an unprefixed list such as server-a:2222,server-b:2222, or the preferred explicit form static:///server-a:2222,server-b:2222. Static lists have fixed membership; use DNS for dynamic membership. DNS targets are refreshed periodically even while another endpoint remains healthy. TLS endpoints must share a certificate identity or use the authority override.
SentverModelAdminRequest
| Field | Type | Required | Description |
|---|---|---|---|
name |
string |
Yes | Concrete sentver model/client identifier. |
displayName |
string |
Yes | Human-readable name. |
description |
string |
No | Optional description. |
supportedLocales |
string[] |
Yes | Supported BCP-47 locales. |
maxExpectedTextLength |
integer |
No | Maximum expected sentence length. |
grpcTarget |
string |
Yes | Single, DNS, or explicit static gRPC target. |
grpcTlsMode |
GrpcTlsMode |
Yes | TLS mode for the gRPC connection. |
grpcAuthority |
string |
No | Optional gRPC authority override. |
grpcDeadlineMs |
integer |
No | Request deadline/timeout in milliseconds. |
grpcMaxInboundMessageBytes |
integer |
No | Optional maximum inbound message size. |
grpcMetadata |
object |
No | Metadata sent with inference requests. |
thresholdDefaults |
ModelThresholdDefaults |
No | Per-mode threshold defaults. When omitted or null, global service defaults apply. |
{
"name": "sentver-he-v2",
"displayName": "Hebrew Sentence Verification v2",
"description": "Hebrew sentence verification model client",
"supportedLocales": ["he-IL"],
"maxExpectedTextLength": 500,
"grpcTarget": "dns:///sentver-prod:443",
"grpcTlsMode": "SYSTEM_TRUST",
"grpcAuthority": "sentver-prod",
"grpcDeadlineMs": 10000,
"grpcMaxInboundMessageBytes": 4194304,
"grpcMetadata": {
"x-client": "speaker-services"
}
}
Update Sentver Model
PUT /api/v1/speech-services/admin/sentence-verification/models/{name}
Requires Authentication - Scopes: admin:sentver-models:write
Replaces editable configuration for an existing concrete sentver model. Required fields must be supplied. Nullable fields may be supplied, omitted, or set to null; omitted nullable fields are cleared.
This endpoint is for configuration fixes such as display text, locale coverage, timeout values, and inference server connection settings. It does not change which concrete model an alias resolves to.
name is immutable and is not accepted in the request body. status is updated only through PATCH /models/{name}/status.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string |
Yes | Concrete sentver model identifier. |
UpdateSentverModelRequest
| Field | Type | Required | Nullable | Description |
|---|---|---|---|---|
displayName |
string |
Yes | No | Human-readable name. |
description |
string |
No | Yes | Optional description. Omit or set to null to clear. |
supportedLocales |
string[] |
Yes | No | Supported BCP-47 locales. Must be non-empty. |
maxExpectedTextLength |
integer |
No | Yes | Maximum expected sentence length. Omit or set to null to clear. |
grpcTarget |
string |
Yes | No | Single, DNS, or explicit static gRPC target. |
grpcTlsMode |
GrpcTlsMode |
Yes | No | TLS mode for the gRPC connection. |
grpcAuthority |
string |
No | Yes | Optional gRPC authority override. Omit or set to null to clear. |
grpcDeadlineMs |
integer |
Yes | No | Request deadline/timeout in milliseconds. Must be positive. |
grpcMaxInboundMessageBytes |
integer |
No | Yes | Optional maximum inbound message size. Omit or set to null to clear. |
grpcMetadata |
object |
No | Yes | Metadata sent with inference requests. Omit or set to null to clear. |
thresholdDefaults |
ModelThresholdDefaults |
No | Yes | Per-mode threshold defaults. Omit or set to null to clear (revert to global service defaults). |
{
"displayName": "Hebrew Sentence Verification v2.1",
"description": "Hebrew sentence verification model client",
"supportedLocales": ["he-IL"],
"grpcTarget": "dns:///sentver-prod-v2:443",
"grpcTlsMode": "SYSTEM_TRUST",
"grpcAuthority": "sentver-prod",
"grpcDeadlineMs": 12000
}
{
"displayName": "Hebrew Sentence Verification v2.1",
"supportedLocales": ["he-IL"],
"grpcTarget": "dns:///sentver-prod-v2:443",
"grpcTlsMode": "SYSTEM_TRUST",
"grpcDeadlineMs": 12000
}
| Status | Description |
|---|---|
200 OK |
Model configuration updated. |
400 Bad Request |
Request body is invalid or omits a required field. |
401 Unauthorized |
Missing or invalid authentication. |
403 Forbidden |
Insufficient scope. |
404 Not Found |
Model not found. |
Update Sentver Model Status
PATCH /api/v1/speech-services/admin/sentence-verification/models/{name}/status
Requires Authentication - Scopes: admin:sentver-models:write
Updates concrete model availability. Use this endpoint for lifecycle changes such as promoting a model to AVAILABLE, putting it in MAINTENANCE, deprecating it, or making it INACTIVE.
Configuration fields such as displayName, supportedLocales, and gRPC settings are not accepted here. Use PUT /models/{name} for configuration updates.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string |
Yes | Concrete sentver model identifier. |
UpdateSentverModelStatusRequest
| Field | Type | Required | Nullable | Description |
|---|---|---|---|---|
status |
SentverModelStatus |
Yes | No | New model status. |
statusMessage |
string |
No | Yes | Optional operator-facing reason for the status change. |
{
"status": "AVAILABLE",
"statusMessage": "Promoted after validation"
}
| Status | Description |
|---|---|
200 OK |
Model status updated. |
400 Bad Request |
Request body is invalid. |
401 Unauthorized |
Missing or invalid authentication. |
403 Forbidden |
Insufficient scope. |
404 Not Found |
Model not found. |
Delete Sentver Model
DELETE /api/v1/speech-services/admin/sentence-verification/models/{name}
Requires Authentication - Scopes: admin:sentver-models:delete
Deletes a concrete model only when no aliases or retained enrollment/verification records reference it.
Alias Management
List Sentver Model Aliases
GET /api/v1/speech-services/admin/sentence-verification/model-aliases
Requires Authentication - Scopes: admin:sentver-model-aliases:write
Returns all sentver aliases for the tenant.
Create or Update Sentver Model Alias
PUT /api/v1/speech-services/admin/sentence-verification/model-aliases/{alias}
Requires Authentication - Scopes: admin:sentver-model-aliases:write
Creates or updates an alias. Exactly one sentver alias per tenant can be marked as default.
SentverModelAliasAdminRequest
| Field | Type | Required | Description |
|---|---|---|---|
type |
string |
Yes | Alias type: FAMILY, PINNED, or CONCRETE. |
displayName |
string |
Yes | Human-readable alias name. |
description |
string |
No | Optional alias description. |
resolvedModel |
string |
Yes | Primary concrete sentver model. |
fallbackModel |
string |
No | Optional fallback concrete model used when the primary model is unavailable. |
isDefault |
boolean |
No | Whether this is the tenant default sentver alias. |
minHierarchyOrder |
integer |
No | Minimum role hierarchy allowed to see this alias. |
Update Sentver Alias Resolution
PUT /api/v1/speech-services/admin/sentence-verification/model-aliases/{alias}/resolve
Requires Authentication - Scopes: admin:sentver-model-aliases:write
Changes the primary resolved model and optional fallback model. Existing enrollment and verification records keep their requested alias and actual resolved model lineage.
Deprecate Sentver Model Alias
PUT /api/v1/speech-services/admin/sentence-verification/model-aliases/{alias}/deprecate
Requires Authentication - Scopes: admin:sentver-model-aliases:write
Marks an alias as deprecated and optionally sets a sunset time. After the sunset time, public requests reject the alias with 410 Gone.
DeprecateSentverAliasRequest
| Field | Type | Required | Description |
|---|---|---|---|
deprecationDate |
string (ISO 8601 timestamp) |
No | Timestamp when deprecation takes effect. |
sunsetDate |
string (ISO 8601 timestamp) |
No | Timestamp after which public requests reject the alias. |
message |
string |
No | Optional migration guidance for clients. |
Undeprecate Sentver Model Alias
PUT /api/v1/speech-services/admin/sentence-verification/model-aliases/{alias}/undeprecate
Requires Authentication - Scopes: admin:sentver-model-aliases:write
Removes the deprecated status from a sentver model alias, clearing the deprecation date, sunset date, and deprecation message. The alias becomes fully active again.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
alias |
string |
Yes | Alias identifier. |
Delete Sentver Model Alias
DELETE /api/v1/speech-services/admin/sentence-verification/model-aliases/{alias}
Requires Authentication - Scopes: admin:sentver-model-aliases:delete
Deletes an alias. Existing retained records remain reproducible because they store both alias and resolved model metadata.
Data Types
ModelThresholdDefaults
Per-mode threshold defaults for a concrete sentver model. All fields are optional and nullable. A null field means "use the global service default" for that mode. Thresholds are floating-point values in the range [0.0, 1.0].
| Field | Type | Nullable | Description |
|---|---|---|---|
strictAcceptThreshold |
number |
Yes | Accept threshold for STRICT mode. |
strictReviewThreshold |
number |
Yes | Review threshold for STRICT mode. |
balancedAcceptThreshold |
number |
Yes | Accept threshold for BALANCED mode (default). |
balancedReviewThreshold |
number |
Yes | Review threshold for BALANCED mode. |
lenientAcceptThreshold |
number |
Yes | Accept threshold for LENIENT mode. |
lenientReviewThreshold |
number |
Yes | Review threshold for LENIENT mode. |
{
"strictAcceptThreshold": 0.88,
"strictReviewThreshold": 0.78,
"balancedAcceptThreshold": 0.72,
"balancedReviewThreshold": 0.58,
"lenientAcceptThreshold": 0.58,
"lenientReviewThreshold": 0.42
}
GrpcTlsMode
| Value | Description |
|---|---|
PLAINTEXT |
Connect without TLS. Use only for trusted private networks. |
SYSTEM_TRUST |
Use TLS with the system trust store. |
MTLS |
Use mutual TLS when configured for the deployment. |
SentverModelStatus
| Value | Description |
|---|---|
AVAILABLE |
Model can process sentence verification requests. |
DEPRECATED |
Model remains usable while clients or aliases migrate away from it. |
MAINTENANCE |
Model is temporarily unavailable. Alias fallback may be used when configured. |
INACTIVE |
Model cannot process requests. Alias fallback may be used when configured. |