---
title: Get property group
slug: cms-saas/api/get-property-group
docTags: 
createdAt: 2026-08-28T15:28:05.479Z
---

{
  "id": "SoS5ef7JtB4BUmxZAcdt2",
  "type": "api-oas-v2",
  "data": {
    "method": "GET",
    "url": "https://api.cms.optimizely.com/v1/propertygroups/{key}",
    "servers": [
      {
        "url": "https://api.cms.optimizely.com/v1/propertygroups/{key}",
        "description": "Optimizely CMS API"
      }
    ],
    "name": "Get property group",
    "description": "Get the property group with the provided key.",
    "contentType": "application/json",
    "request": {
      "pathParameters": [
        {
          "kind": "required",
          "name": "key",
          "type": "string",
          "description": "The key of the property group to retrieve."
        }
      ],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        },
        {
          "kind": "optional",
          "name": "If-None-Match",
          "type": "string",
          "description": "If provided and the value matches the RFC7232 ETag of the current resource a 304 NotModified response will be returned. Weak ETags will always be ignored."
        },
        {
          "kind": "optional",
          "name": "If-Modified-Since",
          "type": "string<http-date>",
          "description": "<p>If provided and the resource has not been modified since the date a 304 NotModified response will be returned. This parameter will be ignored if an 'If-None-Match' parameter is also provided.</p>",
          "format": "http-date"
        }
      ],
      "queryParameters": [],
      "bodyDataParameters": [],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "apiAuth",
          "name": "apiAuth",
          "kind": "optional",
          "type": "oauth2",
          "description": "Use this scheme to generate an access token that can be used to access the API.",
          "oauth2Flows": {
            "clientCredentials": {
              "tokenUrl": "https://api.cms.optimizely.com/oauth/token",
              "scopes": {
                "api:admin": "Grants full administrative access to the API"
              }
            }
          },
          "requiredScopes": [
            "api:admin"
          ]
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "OK",
        "jsonExample": "",
        "isExpanded": true,
        "headers": [
          {
            "kind": "optional",
            "name": "ETag",
            "type": "string",
            "description": "<p>The RFC7232 ETag header field in a response provides the current entity-tag for the resource. An entity-tag is an opaque identifier for different versions of a resource over time, regardless whether multiple versions are valid at the same time.</p>"
          },
          {
            "kind": "optional",
            "name": "Last-Modified",
            "type": "string<http-date>",
            "description": "The date and time at which the resource was last modified.",
            "format": "http-date"
          }
        ],
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "A property group of a content type.",
            "customType": "PropertyGroup",
            "schema": [
              {
                "name": "key",
                "kind": "required",
                "type": "string",
                "description": "<p>The unique identifier (key) of the resource.</p>",
                "minLength": 2,
                "maxLength": 255,
                "pattern": "^[A-Za-z][_0-9A-Za-z]+$"
              },
              {
                "name": "displayName",
                "kind": "required",
                "type": "string",
                "description": "The display name of this property group.",
                "minLength": 1,
                "maxLength": 255
              },
              {
                "name": "source",
                "kind": "optional",
                "type": "string",
                "readOnly": true,
                "description": "A string that indicates the source of this property group. Can be used to distinguish property groups created by the system from types coming from model classes deployed to the CMS server."
              },
              {
                "name": "sortOrder",
                "kind": "optional",
                "type": "integer<int32>",
                "description": "A value that is used when sorting property group instances.",
                "format": "int32"
              },
              {
                "name": "created",
                "kind": "optional",
                "type": "string<date-time>",
                "readOnly": true,
                "description": "A timestamp indicating when this property group was first created.",
                "format": "date-time"
              },
              {
                "name": "createdBy",
                "kind": "optional",
                "type": "string",
                "readOnly": true,
                "description": "The username of the user that created this property group."
              },
              {
                "name": "lastModified",
                "kind": "optional",
                "type": "string<date-time>",
                "readOnly": true,
                "description": "",
                "format": "date-time"
              },
              {
                "name": "lastModifiedBy",
                "kind": "optional",
                "type": "string",
                "readOnly": true,
                "description": "The username of the user that last modified this property group."
              }
            ],
            "modelRef": "#/components/schemas/PropertyGroup",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "304",
        "description": "Not Modified",
        "jsonExample": "",
        "isExpanded": true,
        "headers": [
          {
            "kind": "optional",
            "name": "ETag",
            "type": "string",
            "description": "<p>The RFC7232 ETag header field in a response provides the current entity-tag for the resource. An entity-tag is an opaque identifier for different versions of a resource over time, regardless whether multiple versions are valid at the same time.</p>"
          },
          {
            "kind": "optional",
            "name": "Last-Modified",
            "type": "string<http-date>",
            "description": "The date and time at which the resource was last modified.",
            "format": "http-date"
          }
        ]
      },
      {
        "statusCode": "401",
        "description": "Unauthorized",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "403",
        "description": "Forbidden",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "404",
        "description": "Not Found",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "429",
        "description": "Too Many Requests",
        "jsonExample": "",
        "isExpanded": true,
        "headers": [
          {
            "kind": "optional",
            "name": "Retry-After",
            "type": "number",
            "description": "Indicates how long the client should wait before making a new request."
          }
        ],
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "ProblemDetails",
            "schema": [
              {
                "name": "type",
                "kind": "optional",
                "type": "string<uri>",
                "nullable": true,
                "description": "A URI reference that identifies the problem type.",
                "format": "uri"
              },
              {
                "name": "title",
                "kind": "optional",
                "type": "string",
                "nullable": true,
                "description": "<p>A short, human-readable summary of the problem type.</p>"
              },
              {
                "name": "status",
                "kind": "optional",
                "type": "integer<int32>",
                "nullable": true,
                "description": "The HTTP status code generated by the origin server for this occurrence of the problem.",
                "format": "int32",
                "minimum": 100,
                "maximum": 599
              },
              {
                "name": "detail",
                "kind": "optional",
                "type": "string",
                "nullable": true,
                "description": "<p>A human-readable explanation specific to this occurrence of the problem.</p>"
              },
              {
                "name": "instance",
                "kind": "optional",
                "type": "string<uri>",
                "nullable": true,
                "description": "A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.",
                "format": "uri"
              },
              {
                "name": "code",
                "kind": "optional",
                "type": "string",
                "nullable": true,
                "description": "Error code that identifies the problem type."
              },
              {
                "name": "errors",
                "kind": "optional",
                "type": "array",
                "nullable": true,
                "description": "An array of error details with more detailed information about the problem.",
                "example": "",
                "itemType": "object",
                "customType": "object[]",
                "schema": [
                  {
                    "name": "detail",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p>A granular explanation of one specific error related to a field, header or query parameter.</p>"
                  },
                  {
                    "name": "field",
                    "kind": "optional",
                    "type": "string",
                    "nullable": true,
                    "description": "A string that may provide a hint to which field that was the source of the error.",
                    "example": "properties.header.displayName"
                  }
                ]
              }
            ],
            "modelRef": "#/components/schemas/ProblemDetails",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "500",
        "description": "Internal Server Error",
        "jsonExample": "",
        "isExpanded": true
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "al8KWdI5DZXzr1xzXYJgw",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request GET \\\n     --url https://api.cms.optimizely.com/v1/propertygroups/{key} \\\n     --header 'accept: application/json'"
        },
        {
          "id": "0WSC1hlna7Np_exuTOzA_",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar requestOptions = {\n   method: 'GET',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.cms.optimizely.com/v1/propertygroups/{key}\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "0MhsNdE1s2F861mzzlkGP",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.cms.optimizely.com/v1/propertygroups/{key}\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Get.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "yNOCPelM2mD46d0VRsJzO",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.cms.optimizely.com/v1/propertygroups/{key}\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "al8KWdI5DZXzr1xzXYJgw"
    },
    "results": {
      "languages": [
        {
          "id": "response-0-200",
          "language": "200",
          "code": "// OK\n{\n  \"key\": \"\",\n  \"displayName\": \"\",\n  \"source\": \"\",\n  \"sortOrder\": \"\",\n  \"created\": \"\",\n  \"createdBy\": \"\",\n  \"lastModified\": \"\",\n  \"lastModifiedBy\": \"\"\n}"
        },
        {
          "id": "response-1-304",
          "language": "304",
          "code": "// Not Modified\n"
        },
        {
          "id": "response-2-401",
          "language": "401",
          "code": "// Unauthorized\n"
        },
        {
          "id": "response-3-403",
          "language": "403",
          "code": "// Forbidden\n"
        },
        {
          "id": "response-4-404",
          "language": "404",
          "code": "// Not Found\n"
        },
        {
          "id": "response-5-429",
          "language": "429",
          "code": "// Too Many Requests\n{\n  \"type\": \"\",\n  \"title\": \"\",\n  \"status\": \"\",\n  \"detail\": \"\",\n  \"instance\": \"\",\n  \"code\": \"\",\n  \"errors\": [\n    {\n      \"detail\": \"\",\n      \"field\": \"properties.header.displayName\"\n    }\n  ]\n}"
        },
        {
          "id": "response-6-500",
          "language": "500",
          "code": "// Internal Server Error\n"
        }
      ],
      "selectedLanguageId": "response-0-200"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}