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

# Create Custom Field

> Create a new custom field definition for leads, deals, or partners

## Authentication

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://app.journeybee.io/api/v1/custom-fields" \
    -H "Authorization: Bearer your-api-key-uuid" \
    -H "Content-Type: application/json" \
    -d '{"label": "Deal Size", "type": "select", "category": "lead_deal", "options": [{"label": "Small"}, {"label": "Medium"}, {"label": "Large"}]}'
  ```
</CodeGroup>

## Request Body Schema

<ParamField body="label" type="string" required>
  Field label/name
</ParamField>

<ParamField body="type" type="string" required>
  Field type. Options: `text`, `textarea`, `number`, `date`, `boolean`, `select`, `multi_select`
</ParamField>

<ParamField body="category" type="string" required>
  Field category. Options: `lead`, `lead_deal`, `partner`
</ParamField>

<ParamField body="partner_type" type="string">
  Partner type association. Options: `referral`, `reseller`
</ParamField>

<ParamField body="required" type="boolean">
  Whether field is required (default: false)
</ParamField>

<ParamField body="shared" type="boolean">
  Whether field is shared with partners (default: false)
</ParamField>

<ParamField body="options" type="array">
  Array of option objects for select/multi-select fields

  <Expandable title="Option Object">
    <ParamField body="label" type="string" required>Option label</ParamField>
  </Expandable>
</ParamField>

## Response Schema

<ResponseField name="id" type="number">
  The created custom field ID
</ResponseField>

<ResponseField name="uuid" type="string">
  The created custom field UUID
</ResponseField>

## Notes

* Requires API key with `write_access` permission
* Shared fields are automatically created in partner companies
