Prosody
Management · Dictionaries

Dictionaries API

Create organization-scoped replacement rules and apply them to DIVE or FRTTS synthesis requests.

1

Create dictionary

Creates a dictionary with an empty entries object.

URL

POSThttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1

Authentication and headers

Store API keys in server environment variables and send them only in request headers.

X-API-Key: {YOUR_API_KEY}
Content-Type: application/json

Request fields

Create dictionary Request fields
FieldTypeRequiredDescription
namestringRequired

Dictionary name.

1–100 characters

descriptionstringOptional

Description.

Up to 500 characters

caseSensitivebooleanOptional

Whether English replacements are case-sensitive.

Default true

Request example

{
  "name": "Product pronunciations",
  "description": "Brand and product replacement rules",
  "caseSensitive": true
}

Response

201

Created

Create dictionary Created response fields
FieldTypeRequiredDescription
idUUIDRequired

ID of the created dictionary.

Created
{
  "id": "550e8400-e29b-41d4-a716-446655440000"
}
400

E4201 · Invalid JSON or field type

The body is not a JSON object, or name, description, or caseSensitive has the wrong type.

503

E5002 · Dictionary DB/RPC temporarily unavailable

The plan check, dictionary count lookup, or dictionary storage DB/RPC is temporarily unavailable.

2

List dictionaries

Lists the organization's active dictionaries in creation order.

URL

GEThttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1

Authentication and headers

Store API keys in server environment variables and send them only in request headers.

X-API-Key: {YOUR_API_KEY}

Response

200

List response

List dictionaries List response response fields
FieldTypeRequiredDescription
dictionariesobject[]Required

List of id, name, description, and caseSensitive values.

List response
{
  "dictionaries": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "Product pronunciations",
      "description": "Brand and product replacement rules",
      "caseSensitive": true
    }
  ]
}
503

E5002 · Dictionary DB temporarily unavailable

The dictionary list database is temporarily unavailable.

3

Get dictionary

Gets one dictionary, including its entries.

URL

GEThttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1/{id}

Authentication and headers

Store API keys in server environment variables and send them only in request headers.

X-API-Key: {YOUR_API_KEY}

Path parameters

Get dictionary Path parameters
FieldTypeRequiredDescription
idUUIDRequired

Dictionary ID to retrieve.

Response

200

Dictionary response

Get dictionary Dictionary response response fields
FieldTypeRequiredDescription
idUUIDRequired

Dictionary ID.

namestringRequired

Dictionary name.

descriptionstring | nullOptional

Description.

entriesRecord<string, string>Required

Source and replacement text pairs.

caseSensitivebooleanRequired

Whether matching is case-sensitive.

createdAtISO 8601Required

Creation timestamp.

updatedAtISO 8601Required

Last-updated timestamp.

Dictionary response
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Product pronunciations",
  "description": null,
  "entries": { "API": "A P I" },
  "caseSensitive": true,
  "createdAt": "2026-07-28T00:00:00.000Z",
  "updatedAt": "2026-07-28T00:00:00.000Z"
}
404

E4301 · Dictionary not found or inaccessible

The dictionary does not exist in this organization or belongs to another organization.

503

E5002 · Dictionary DB/RPC temporarily unavailable

The dictionary lookup DB/RPC is temporarily unavailable.

4

Update dictionary

Updates only the supplied fields; at least one field is required.

URL

PATCHhttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1/{id}

Authentication and headers

Store API keys in server environment variables and send them only in request headers.

X-API-Key: {YOUR_API_KEY}
Content-Type: application/json

Path parameters

Update dictionary Path parameters
FieldTypeRequiredDescription
idUUIDRequired

Dictionary ID to update.

Request fields

Update dictionary Request fields
FieldTypeRequiredDescription
namestringOptional

New name.

1–100 characters

descriptionstringOptional

New description.

Up to 500 characters

caseSensitivebooleanOptional

New case-sensitivity setting.

entriesRecord<string, string>Optional

Complete replacement-rules object.

Each key and value is at most 100 characters; entry count is plan-limited

Request example

{
  "entries": {
    "API": "A P I",
    "Humelo": "Humelo"
  }
}

Response

200

Updated

The response body is empty.

400

E4201 · Invalid JSON or field type

The body is not a JSON object, or name, description, caseSensitive, or entries has the wrong type. Whitespace-only names and entry keys or values are rejected, and the string "false" is not coerced to boolean false. Rejected requests do not modify the database row.

404

E4301 · Dictionary not found or inaccessible

The dictionary does not exist in this organization or belongs to another organization.

503

E5002 · Dictionary DB/RPC temporarily unavailable

The ownership check, plan-limit check, or dictionary storage DB/RPC is temporarily unavailable.

5

Delete dictionary

Deletes a dictionary owned by the organization.

URL

DELETEhttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1/{id}

Authentication and headers

Store API keys in server environment variables and send them only in request headers.

X-API-Key: {YOUR_API_KEY}

Path parameters

Delete dictionary Path parameters
FieldTypeRequiredDescription
idUUIDRequired

Dictionary ID to delete.

Response

200

Deleted

The response body is empty.

404

E4301 · Dictionary not found or inaccessible

The dictionary does not exist in this organization or belongs to another organization.

503

E5002 · Dictionary DB temporarily unavailable

The ownership check or dictionary deletion database is temporarily unavailable.