---
title: "Create a custom field (v2)"
method: POST
path: "/v2/custom-fields/"
tags: ["custom-fields"]
---

# Create a custom field (v2)

`POST /v2/custom-fields/`

Create ONE custom field definition. Accepts `name`, `field_type` (`input` | `autocomplete` | `datepicker`), and `categories` (autocomplete only, as `[{ category }]`). Ranking is assigned automatically (appended last). **Requires `Idempotency-Key`.** Returns `{ data: { custom_field: {...} } }` with status 201.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `custom_field` object, required
    - `name` string, required
    - `field_type` 'input' | 'autocomplete' | 'datepicker', required
    - `categories` object[]
      - `category` string, required

## Response `201`

Created

- object
  - `data` object, required
    - `custom_field` object, required
      - `id` string, uuid, required
      - `user_id` string
      - `name` string
      - `field_type` string
      - `categories` string[]
      - `ranking` integer, nullable

## Other responses

- `400` — Request body failed validation.
- `401` — Missing or invalid API key.
- `403` — Valid key, insufficient permission.
- `404` — Resource does not exist.
- `409` — Request body failed validation.
- `429` — Rate limit exceeded.
- `500` — Unexpected server error.

---

[API](https://skmtc.net/getdex/apis/dex-public-api.md) · [All operations](https://skmtc.net/getdex/apis/dex-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getdex/dex-public-api/versions/6f01cd52ac12/schema)
