xtract.bot
POST /api/json-patch

Apply RFC 6902 JSON Patch or RFC 7396 JSON Merge Patch to a JSON document. Atomic — patches that fail mid-way leave the document unchanged.

Applies a patch to a JSON document. Two formats are supported: - `patch`: RFC 6902 JSON Patch — an array of operations (`add`, `remove`, `replace`, `move`, `copy`, `test`) with JSON Pointer paths. - `merge`: RFC 7396 JSON Merge Patch — a partial document whose fields override the corresponding fields in the target. JSON Patch is more powerful (supports test / move / array operations) but more verbose; JSON Merge Patch is simpler but cannot remove fields or operate on arrays cleanly. Application is atomic: if any operation fails, the document is unchanged.

Inputs

NameTypeDefaultDescription
document*stringThe source JSON document, as a string.
patch*stringThe patch (an RFC 6902 array, or an RFC 7396 object), as a string.
formatenum (rfc6902 | rfc7396)"rfc6902"Which patch format the `patch` input uses.

Response

Modes: json. Cache: yes (24h TTL).

Code samples

Built from the rename-field example.


curl -X POST https://api.xtract.bot/api/json-patch \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "X-Account-Id: $XTRACT_ACCOUNT_ID" \
  -H "X-Api-Key: $XTRACT_API_KEY" \
  -d '{
  "document": "{\"name\":\"alice\",\"age\":30}",
  "patch": "[{\"op\":\"add\",\"path\":\"/displayName\",\"value\":\"alice\"},{\"op\":\"remove\",\"path\":\"/name\"}]",
  "format": "rfc6902"
}'