> ## 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.

# Create A CMS Entry

> Create a new entry in a CMS database from a trusted backend.

Create entries from server-side code only.

```text theme={null}
POST /api/public/cms/[modelId]/list
```

## Example

```bash theme={null}
curl "https://api.plato.ae/api/public/cms/products/list?fields=id,name,price" \
  -X POST \
  -H "Authorization: Bearer $PLATO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "values": {
      "name": {
        "en": "Classic Burger",
        "ar": "Classic Burger"
      },
      "price": 38,
      "published": true
    }
  }'
```

## Body

Send field values inside `values`:

```json theme={null}
{
  "values": {
    "title": {
      "en": "Summer Menu"
    },
    "published": true
  }
}
```

The API also accepts `data` or a direct object for compatibility, but `values` is the clearest format.

## Response

The response is the created entry.

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

Successful creates return status `201`.

## Defaults And Required Fields

When a field has a default value, Plato can apply it during creation.

If a required field is missing or empty, Plato returns:

```json theme={null}
{
  "message": "Field 'name' is required."
}
```

## Select The Response

Use `fields` when you only need part of the created entry:

```text theme={null}
?fields=id,name
```

That keeps the response predictable and fast.
