Custom Fields

Create a custom field

Create ONE custom field definition. Accepts `name`, `field_type` (`input` | `autocomplete` | `datepicker`), and `categories` (autocomplete only, as `[{ category }]`). Ranking is assigned automatically

POST /v2/custom-fields/

Parameters

Header parameters

Idempotency-Key
string required
Required. UUID per logical operation, reused on every retry. See apps/rest-api/src/shared/idempotency.ts for the full contract. Missing → 400 BadRequest; same key + different body → 409 Conflict.

Request body

Content-Type: application/json

custom_field
object required
custom_field.name
string required
custom_field.field_type
string enum required
Possible values: "input", "autocomplete", "datepicker"
custom_field.categories
array<object>
custom_field.categories[].category
string

Example

{
  "custom_field": {
    "name": "string",
    "field_type": "input"
  }
}

Responses

201 — Created

Content-Type: application/json

data
object required
data.custom_field
object required
data.custom_field.id
string (uuid) required
data.custom_field.user_id
string
data.custom_field.name
string
data.custom_field.field_type
string
data.custom_field.categories
array<string>
data.custom_field.ranking
integer | null

Example

{
  "data": {
    "custom_field": {
      "id": "00000000-0000-0000-0000-000000000000"
    }
  }
}

400

No response body.

401

No response body.

403

No response body.

404

No response body.

409

No response body.

429

No response body.

500

No response body.

Code samples

curl https://api.prod.getdex.com/v2/custom-fields/ \
  --request POST \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "custom_field": {
    "name": "string",
    "field_type": "input"
  }
}'
Copyright © 2026