> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plato.ae/llms.txt
> Use this file to discover all available pages before exploring further.

# Update A CMS Entry

> Change field values on an existing CMS entry.

Use update requests from trusted server-side code.

```text theme={null}
PATCH /api/public/cms/[modelId]/[id]
PUT   /api/public/cms/[modelId]/[id]
```

`PATCH` and `PUT` use the same update behavior.

## Example

```bash theme={null}
curl "https://api.plato.ae/api/public/cms/products/entry_123?fields=id,name,published" \
  -X PATCH \
  -H "Authorization: Bearer $PLATO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "values": {
      "published": false
    }
  }'
```

## Partial Updates

Only send the fields you want to change.

```json theme={null}
{
  "values": {
    "price": 42
  }
}
```

Fields not included in the request keep their existing values.

## Localized Field Updates

Localized fields can be updated one language at a time.

```json theme={null}
{
  "values": {
    "name": {
      "ar": "Classic Burger"
    }
  }
}
```

For localized fields, the update merges with the existing language values.

## Response

The response is the updated entry.

```json theme={null}
{
    "id": "entry_123",
    "name": {
      "en": "Classic Burger",
      "ar": "Classic Burger"
    },
  "published": false
}
```

## Validation

Updates validate:

* Unknown field keys.
* Required fields.
* Field value types.
* Relation targets.

If a relation id does not exist in the workspace, Plato returns a `400` error.
