---
title: "Manage custom fields. action='create_definition' (name+kind[+options]), 'delete_definition' (id; removes the field and a"
method: POST
path: "/api/v1/custom-fields/manage"
tags: ["custom-fields"]
---

# Manage custom fields. action='create_definition' (name+kind\[+options\]), 'delete_definition' (id; removes the field and a

`POST /api/v1/custom-fields/manage`

## Request

- Base URL: `https://crispy.sh`
- URL: `https://crispy.sh/api/v1/custom-fields/manage`
- Auth: HTTP bearer

## Request body

- object
  - `action` 'create_definition' | 'delete_definition' | 'set_value', required: Which custom-field operation to perform.
  - `name` string: Field name for action='create_definition' (unique per user).
  - `kind` 'text' | 'number' | 'date' | 'url' | 'select' | 'multi_select': Field type for action='create_definition'.
  - `options` string[]: Allowed values for select/multi_select kinds (action='create_definition').
  - `id` string: custom_field_definition id for action='delete_definition'.
  - `lookup` object: Structured contact identifier. Resolver picks the highest-priority field per RESOLVER-09 (crispy_id > linkedin_provider_id > external_id > linkedin_url > email).
    - `crispy_id` string: Crispy contact UUID (cnt_ prefixed or raw UUID)
    - `linkedin_provider_id` string: LinkedIn provider ID (ACoAA... or ACwA... variant)
    - `linkedin_url` string: LinkedIn URL or slug (e.g. 'john-doe' or full https URL)
    - `email` string: Email address (lowercased before resolution)
    - `external_id` string: Namespaced external ID (e.g. HubSpot contact ID). Requires external_id_namespace.
    - `external_id_namespace` string: Namespace for external_id (e.g. 'hubspot', 'salesforce', 'clay')
  - `custom_field_id` string: custom_field_definition id for action='set_value'.
  - `value` string: Value to store for action='set_value' (must match the field kind).

## Response `200`

Success

## Other responses

- `401`: Missing or expired API key
- `403`: Insufficient key scope or permission denied
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/crispy/apis/crispy-rest-api.md) · [All operations](https://skmtc.dev/crispy/apis/crispy-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crispy/apis/crispy-rest-api/revisions/6bed0974d9ce?raw)
