# `bird contact-properties create`

## Usage

```bash
bird contact-properties create <key> [flags]
```

## Description

Define a custom contact property.

The key and --type are fixed after creation. The key must be lowercase letters,
digits, and underscores, starting with a letter. An optional fallback value (used
when a contact has no value) is set through a --body-file "fallback_value" field.

Build the request from the &lt;key> argument and flags, a JSON ContactPropertyCreateRequest body via
--body-file ("-" reads stdin), or both — an inline value overrides the matching
body field. Run --example to print a ready-to-edit body, or --dry-run to print
the resolved request without sending it.

## Examples

```bash
# print the body shape (no credentials needed)
bird contact-properties create --example

# the body it prints:
```

```json
{
  "fallback_value": "free",
  "key": "plan",
  "type": "string"
}
```

```bash
# define a string property
bird email contact-properties create plan --type string

# with a fallback via a body file
bird email contact-properties create plan --type string --body-file prop.json
```

## Options

#### Property

| Name     | Description                            |
| -------- | -------------------------------------- |
| `--type` | Value type: string, number, or boolean |

#### Request

| Name                | Description                                                  |
| ------------------- | ------------------------------------------------------------ |
| `--body-file`       | Read the JSON request body from this file; "-" reads stdin   |
| `--example`         | Print a complete example request body, then exit             |
| `--dry-run`         | Print the resolved request without sending it, then exit     |
| `--idempotency-key` | Deduplication key; a retry with the same key won't act twice |

#### Options

| Name                | Description                                      |
| ------------------- | ------------------------------------------------ |
| `--response-schema` | Print the fields this command returns, then exit |

## Related

| Name                                                                                    | Description                                 |
| --------------------------------------------------------------------------------------- | ------------------------------------------- |
| [`bird contact-properties archive`](/docs/cli/reference/contact-properties-archive)     | Archive a contact property                  |
| [`bird contact-properties get`](/docs/cli/reference/contact-properties-get)             | Get a contact property                      |
| [`bird contact-properties list`](/docs/cli/reference/contact-properties-list)           | List contact properties                     |
| [`bird contact-properties unarchive`](/docs/cli/reference/contact-properties-unarchive) | Unarchive a contact property                |
| [`bird contact-properties update`](/docs/cli/reference/contact-properties-update)       | Update a contact property's fallback value. |