Authentication uses your project-scoped API key. Master-key callers
must supply
?project_id=<id> on every request because the master
key is not pinned to a project.Common Request Fields
The
project_id query parameter is omitted from the examples because ordinary
Dashboard API keys are already project-scoped.
Response Objects
Dictionary responses contain:
Entry responses contain:
Wrapper responses contain:
List Dictionaries
Return every dictionary in the caller’s project.Query Parameters
integer
Required for master-key callers; rejected for project-scoped keys
whose value disagrees with the key’s project.
Response
Example
Create Dictionary
Body
string
required
Display name (1-200 characters). Must be unique within the project.
string
Free-form description (maximum 2000 characters). Omit or send an empty string
for no description.
string
BCP-47 language tag (
en, de-DE, …), maximum 16 characters. Omit or
send an empty string for all languages.Example
Get Dictionary
Returns the dictionary record. Returns403 Forbidden if the dictionary
belongs to a project your API key is not scoped to.
Update Dictionary
Only the provided fields are changed.Body
string
New name (1-200 characters).
string
New description (maximum 2000 characters). Send an empty string to clear it;
null leaves it unchanged.string
New language tag (maximum 16 characters). Send an empty string to clear it;
null leaves it unchanged.boolean
Disable a dictionary without deleting it.
Example
Delete Dictionary
Deletes the dictionary and all its entries.Response
List Entries
Query Parameters
string
Case-insensitive substring filter on
word.integer
default:"100"
Page size, 1-500.
integer
default:"0"
Pagination offset.
Response
Add Entry
Body
string
required
Word to match (≤ 200 chars).
string
required
Text the engine pronounces instead (≤ 1000 chars).
string
Optional IPA transcription (maximum 200 characters). Takes precedence over
replacement when set.boolean
default:"false"
Match the original case exactly.
Example
Bulk Replace Entries
Replace every entry in the dictionary. Entries currently in the dictionary whoseword is not in the supplied list are deleted. The operation is
idempotent — calling twice with the same payload converges to the same final
state.
Body
array
required
Array of
{ word, replacement, ipa?, case_sensitive? } items.
word and replacement are required on every item; their limits and
case_sensitive: false default match Add Entry. Duplicate
word values within the payload are rejected.Response
Example
Update Entry
Only non-null fields are sent.Body
string
New word (1-200 characters).
string
New replacement (1-1000 characters).
string
New IPA transcription (maximum 200 characters). Send an empty string to clear
it;
null leaves it unchanged.boolean
Delete Entry
Response
entry_id also returns { "deleted": true }.