---
title: Property groups
slug: cms-saas/docs/property-groups-saas
docTags: 
createdAt: 2026-07-30T20:18:08.000Z
---

Property groups are used to organize content properties within the editing UI. When creating content types, you reference these property groups to ensure a structured and efficient editing experience. You should establish property groups before creating content types so you can reference them during content type creation.

The property group resource contains the following fields:

- `key` – A string identifying the property group in the API.
- `displayName` – A user-friendly name for the group displayed to end users.
- `sortOrder` – A relative index used in some listings to define the order of property groups.
- `source` – A key indicating where this group came from. It is empty when created from the UI and set to **\_system** when defined by CMS (SaaS).

```http
GET https://api.cms.optimizely.com/v1/propertygroups/exampleGroup
```

```json
{
    "key": "exampleGroup",
    "displayName": "Example Group",
    "sortOrder": 42
}
```

## Create a property group

Create a property group through the Property Group API. A property group must have a unique key.

```http
POST https://api.cms.optimizely.com/v1/propertygroups
Content-Type: application/json

{
    "key": "exampleGroup",
    "displayName": "Example Group"
}
```

See [Create property group](docId\:jBLp36NPzWY5O1IqGheUt) API reference.

## Update a property group

Update an existing property group through the Property Group API. Groups created by Optimizely Content Management System (SaaS) with source set to `system` are read-only and cannot be updated.

```http
PATCH https://api.cms.optimizely.com/v1/propertygroups/exampleGroup
Content-Type: application/merge-patch+json

{
    "displayName": "Updated Example Group",
    "sortOrder": 150
}
```

You can modify individual property group field values. The response returns the updated property group.

```http
PATCH https://api.cms.optimizely.com/v1/propertygroups/exampleGroup
Content-Type: application/merge-patch+json

{
    "sortOrder": 150
}
```

```json
{
    "key": "exampleGroup",
    "displayName": "Updated Example Group",
    "sortOrder": 150
}
```

See [Update property group](docId\:qDI5kSZkpDcdqooo9dq-s) API reference.

## List property groups

Retrieve a list of property groups through the Property Group API.

```http
GET https://api.cms.optimizely.com/v1/propertygroups
```

```json
{
    "items": [
        {
            "key": "Content",
            "displayName": "Content",
            "sortOrder": 10,
            "source": "_system"
        },
        {
            "key": "Settings",
            "displayName": "Settings",
            "sortOrder": 30,
            "source": "_system"
        }
    ],
    "pageIndex": 0,
    "pageSize": 50,
    "totalCount": 2
}
```

Use the `sources` query parameter to filter property groups by source. Use `DEFAULT` to include groups without a specific source.

```http
GET https://api.cms.optimizely.com/v1/propertygroups?sources=DEFAULT,custom
```

See [List property groups](docId\:ZkxmsnEnrpymz8o_jcsLC) API reference.

## Get a property group

Retrieve a specific property group through the Property Group API using its unique key.

```http
GET https://api.cms.optimizely.com/v1/propertygroups/Content
```

```json
{
    "key": "Content",
    "displayName": "Content",
    "sortOrder": 10,
    "source": "_system"
}
```

See [Get property group](docId:3jp5yWl-QyrSmxHgHL1-x) API reference.

## Delete a property group

Delete an existing property group through the Property Group API. System property groups (with `source: "_system"`) cannot be deleted. The response returns the deleted property group.

```http
DELETE https://api.cms.optimizely.com/v1/propertygroups/exampleGroup
```

```json
{
    "key": "exampleGroup",
    "displayName": "Updated Example Group",
    "sortOrder": 150
}
```

See [Delete property group](docId\:GzxV5MKiyVxhJ4aeBYAua) API reference.
