> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nedzo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a contact custom field

> Create a custom field contacts can hold.

Every plan can use this endpoint. Every request needs `workspaceId`.

## Body

**workspaceId** `string` *required*

The workspace. Required.

**name** `string` *required*

The field name, 1 to 255 characters after trimming. A contact's value for this field is keyed by this name in its `customFields`.

**type** `string` (default: text)

One of `text`, `number`, `date` or `boolean`.

**position** `integer`

Where the field sits in the list, a whole number from 0 up.

```bash cURL theme={null}
curl -X POST "https://api.nedzo.ai/v1/contacts/custom-fields" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "workspaceId": "789e4567-e89b-12d3-a456-426614174000", "name": "Lead Source", "type": "text", "position": 0 }'
```

```json 201 Created theme={null}
{ "id": "5c1d2e3f-4a5b-4c6d-8e7f-9a0b1c2d3e4f", "workspaceId": "789e4567-e89b-12d3-a456-426614174000", "name": "Lead Source", "type": "text", "position": 0, "createdAt": "2026-10-11T12:00:00Z", "updatedAt": "2026-10-11T12:00:00Z" }
```

## Errors

| Status | When |
| - | - |
| `400` | `name` is missing, empty or longer than 255 characters, `type` is not one of the four, `position` is not a whole number of 0 or more, `workspaceId` is not a UUID, or `workspaceId` is missing. |
| `404` | The workspace is not in this key's scope. |
| `409` | The workspace already has a custom field with this name, in any case. The message is `A custom field with this name already exists`. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.