Update Dictionary Entry

Update fields on an existing dictionary entry in the current workspace. Supports partial updates — only the fields included in the request body are changed; omitted fields retain their current values. Passing `null` for `word`, `method`, or `language` is rejected with 422, as these fields are required on the stored entry. To replace the reference audio on a `recorded`-method entry, supply a new `upload_id` pointing to a completed staging upload. The previous audio is orphaned (not deleted from storage) and the new file is copied to permanent storage atomically. Returns 409 if the new `(word, language)` combination already exists in the workspace. Requires `editor` workspace role and the `dictionary:write` scope.

Authentication

AuthorizationBearer
Clerk JWT token
OR
AuthorizationBearer

Onepin live API key (op_live_...). Test and public keys are reserved in Phase 1.

Path parameters

entry_idstringRequiredformat: "uuid"

Headers

X-Workspace-Idstring or nullOptional

Request

This endpoint expects an object.
wordstring or nullOptional1-255 characters
Updated surface form. Omit to leave unchanged.
descriptionstring or nullOptional<=500 characters

Updated human-readable note. Omit to leave unchanged.

pronunciationstring or nullOptional<=500 characters

Updated phonetic respelling. Required when changing method to spelled.

upload_idstring or nullOptionalformat: "uuid"

New staging upload ID to replace the reference audio. Required when changing method to recorded.

methodenum or nullOptional
Updated pronunciation method. Omit to leave unchanged.
languagestring or nullOptionalformat: "^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,4})?$"1-10 characters

Updated BCP-47 locale. Omit to leave unchanged.

ipastring or nullOptional<=500 characters

Updated IPA transcription. Omit to leave unchanged; supply null explicitly to clear.

Response

Successful Response
dataobject
metaobject

Errors

422
Unprocessable Entity Error