VoiceStudioDocs
Cloud reference

Text resources

GET
/v1/projects/{project_id}/glossary

The full, bounded Project glossary. Project Membership is masked as 404 to avoid cross-tenant Project enumeration.

Authorization

DeveloperCredential
AuthorizationBearer <token>

In: header

Path Parameters

project_id*string

Exactly 16 cryptographically random Base62 characters.

Match^[A-Za-z0-9]{16}$
Length16 <= length <= 16

Response Body

application/json

application/json

application/json

application/json

application/json

bash
curl -X GET "https://example.com/v1/projects/stringstringstri/glossary"
json
{
  "project_id": "stringstringstri",
  "terms": [
    {
      "term": "string",
      "replacement": "string",
      "language": "string",
      "source": "auto"
    }
  ]
}
PUT
/v1/projects/{project_id}/glossary

Full replacement is deliberately the only glossary mutation: it keeps ordering, deduplication, and idempotent replay simple and sufficient. Terms are unique on the language and term pair.

Authorization

DeveloperCredential
AuthorizationBearer <token>

In: header

Path Parameters

project_id*string

Exactly 16 cryptographically random Base62 characters.

Match^[A-Za-z0-9]{16}$
Length16 <= length <= 16

Header Parameters

Idempotency-Key*string

Replay key bounded at 128 characters by the dubbing and lexicon surfaces. Reusing a key with a different request body is a 409 idempotency_conflict.

Length1 <= length <= 128

Request Body

application/json

The complete replacement glossary. Terms are unique on the language and term pair; an empty list clears the glossary.

terms*array<>
Itemsitems <= 256

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

bash
curl -X PUT "https://example.com/v1/projects/stringstringstri/glossary" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  -d '{
    "terms": [
      {
        "term": "string",
        "replacement": "string",
        "source": "auto"
      }
    ]
  }'
json
{
  "project_id": "stringstringstri",
  "terms": [
    {
      "term": "string",
      "replacement": "string",
      "language": "string",
      "source": "auto"
    }
  ]
}
GET
/v1/pronunciation

Cursor-paged Organization pronunciation lexicon. organization_id is required and is never an authorization input on its own: Membership in it is proven per request, and a missing Membership is indistinguishable from an absent Organization.

Authorization

DeveloperCredential
AuthorizationBearer <token>

In: header

Query Parameters

organization_id*string

Organization whose pronunciation lexicon is addressed. Membership in it is proven per request; the identifier alone never selects a tenant.

Match^[A-Za-z0-9]{16}$
Length16 <= length <= 16
cursor?string
Lengthlength <= 512
limit?integer
Range1 <= value <= 100
Default25

Response Body

application/json

application/json

application/json

application/json

application/json

bash
curl -X GET "https://example.com/v1/pronunciation?organization_id=stringstringstri"
json
{
  "items": [
    {
      "id": "string",
      "grapheme": "string",
      "phoneme": "string",
      "alias": "string",
      "language": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ],
  "next_cursor": "string"
}
POST
/v1/pronunciation

Creates one entry. Exactly one of phoneme or alias must be present. A second entry for the same grapheme answers 409 conflict.

Authorization

DeveloperCredential
AuthorizationBearer <token>

In: header

Header Parameters

Idempotency-Key*string

Replay key bounded at 128 characters by the dubbing and lexicon surfaces. Reusing a key with a different request body is a 409 idempotency_conflict.

Length1 <= length <= 128

Request Body

application/json

Exactly one of phoneme or alias must be supplied; supplying both or neither is a 400. organization_id names the tenant whose lexicon is addressed and is Membership-checked, never trusted on its own.

organization_id*OpaqueId

Exactly 16 cryptographically random Base62 characters.

Match^[A-Za-z0-9]{16}$
Length16 <= length <= 16
grapheme*string

Must carry no leading or trailing whitespace.

Length1 <= length <= 128
phoneme?string
Lengthlength <= 256
alias?string
Lengthlength <= 256
language?string
Match^[A-Za-z0-9-]*$
Lengthlength <= 32

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

bash
curl -X POST "https://example.com/v1/pronunciation" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  -d '{
    "organization_id": "stringstringstri",
    "grapheme": "string"
  }'
json
{
  "id": "string",
  "grapheme": "string",
  "phoneme": "string",
  "alias": "string",
  "language": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z"
}
DELETE
/v1/pronunciation/{entry_id}

Deletes the entry. There is no body; the stable, target-bound digest prevents the same key from being replayed against another entry.

Authorization

DeveloperCredential
AuthorizationBearer <token>

In: header

Path Parameters

entry_id*string
Match^[A-Za-z0-9_-]{16}$

Query Parameters

organization_id*string

Organization whose pronunciation lexicon is addressed. Membership in it is proven per request; the identifier alone never selects a tenant.

Match^[A-Za-z0-9]{16}$
Length16 <= length <= 16

Header Parameters

Idempotency-Key*string

Replay key bounded at 128 characters by the dubbing and lexicon surfaces. Reusing a key with a different request body is a 409 idempotency_conflict.

Length1 <= length <= 128

Response Body

application/json

application/json

application/json

application/json

application/json

bash
curl -X DELETE "https://example.com/v1/pronunciation/string?organization_id=stringstringstri" \
  -H "Idempotency-Key: string"
Empty
PUT
/v1/pronunciation/{entry_id}

Replaces the entry's writable fields. The idempotency digest binds the key to this exact entry and body, so a reused key cannot silently target another entry.

Authorization

DeveloperCredential
AuthorizationBearer <token>

In: header

Path Parameters

entry_id*string
Match^[A-Za-z0-9_-]{16}$

Header Parameters

Idempotency-Key*string

Replay key bounded at 128 characters by the dubbing and lexicon surfaces. Reusing a key with a different request body is a 409 idempotency_conflict.

Length1 <= length <= 128

Request Body

application/json

Exactly one of phoneme or alias must be supplied; supplying both or neither is a 400. organization_id names the tenant whose lexicon is addressed and is Membership-checked, never trusted on its own.

organization_id*OpaqueId

Exactly 16 cryptographically random Base62 characters.

Match^[A-Za-z0-9]{16}$
Length16 <= length <= 16
grapheme*string

Must carry no leading or trailing whitespace.

Length1 <= length <= 128
phoneme?string
Lengthlength <= 256
alias?string
Lengthlength <= 256
language?string
Match^[A-Za-z0-9-]*$
Lengthlength <= 32

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

bash
curl -X PUT "https://example.com/v1/pronunciation/string" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  -d '{
    "organization_id": "stringstringstri",
    "grapheme": "string"
  }'
json
{
  "id": "string",
  "grapheme": "string",
  "phoneme": "string",
  "alias": "string",
  "language": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z"
}