---
title: "Create Custom Property"
method: POST
path: "/v1/projects/{project}/customProperties"
tags: ["Custom Properties"]
---

# Create Custom Property

`POST /v1/projects/{project}/customProperties`

Create a new Custom Property

## Path parameters

- `project` string, required

## Request body

- CreateCustomPropertyDto
  - `name` string, required — Display name for Custom Property.
  - `key` string, required — Auto generated key to be used by the API to reference by 'key' rather then _id for CRUD operations. Must only contain lower-case characters and `_`, `-` or `.`.
  - `type` 'String' | 'Boolean' | 'Number', required — Type of the Custom Propety. Must be one of: "Boolean", "Number" or "String"
  - `propertyKey` string, required — Custom Property key, must be unique by Project. Only to be used by the SDKs to reference the Custom Property..
  - `schema` PropertySchema
    - `schemaType` 'enum'
    - `required` boolean
    - `enumSchema` EnumSchema
      - `allowedValues` AllowedValue[], required
        - `label` string, required
        - `value` object, required
      - `allowAdditionalValues` boolean, required

## Response `201`

- CustomProperty
  - `name` string, required — Display name for Custom Property.
  - `key` string, required — Auto generated key to be used by the API to reference by 'key' rather then _id for CRUD operations. Must only contain lower-case characters and `_`, `-` or `.`.
  - `_id` string, required — A unique CustomProperty ID
  - `_project` string, required — The Project owning the Custom Property
  - `_createdBy` string, required — ID of the User who created the project
  - `propertyKey` string, required — Custom Property key, must be unique by Project. Only to be used by the SDKs to reference the Custom Property..
  - `type` 'String' | 'Boolean' | 'Number', required — The Custom Property type
  - `createdAt` string, date-time, required — The date the Project was created
  - `updatedAt` string, date-time, required — The date the Project was last updated
  - `schema` PropertySchema
    - `schemaType` 'enum'
    - `required` boolean
    - `enumSchema` EnumSchema
      - `allowedValues` AllowedValue[], required
        - `label` string, required
        - `value` object, required
      - `allowAdditionalValues` boolean, required
  - `hasUsage` boolean — Whether the custom property is in use by a feature

## Other responses

- `400`
- `401`
- `403`
- `404`
- `409`

---

[API](https://skmtc.dev/devcycle/apis/devcycle-management-api.md) · [All operations](https://skmtc.dev/devcycle/apis/devcycle-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/devcycle/devcycle-management-api/revisions/d4a127a37608/schema)
