Update a Zotero item
zotero_update_itemPartially update a Zotero item by specifying only the fields to change. Dry run shows the before-after diff; automatic retry resolves concurrency conflicts.
Instructions
Partially update one item (HTTP PATCH — only the fields you supply change; omitted fields are preserved). Provide item_key and a patch object of the fields to change (e.g. {"title":"New","extra":"note"} or {"tags":[{"tag":"reviewed"}]}). Optimistic concurrency is handled for you: if you pass the item's version it is used; otherwise the current version is fetched first. If the item changed on the server in the meantime (412), the update is automatically re-fetched and retried once. Writes go to the cloud Web API. Set dry_run:true to preview the field-level before→after diff without writing (arrays like tags/collections are replaced wholesale by PATCH, not merged; a dry_run call performs no write).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| patch | Yes | Object of fields to change (PATCH semantics). Structured fields (creators, tags, collections, relations) must be real JSON arrays/objects, not JSON-encoded strings. | |
| dry_run | No | Preview the field-level before→after diff without writing. | |
| version | No | Known current version; fetched automatically if omitted. | |
| item_key | Yes | The 8-character item key. | |
| library_id | No | ||
| library_type | No |