API ReferenceField values and clearing
Send custom-field values
Read each custom-field definition before writing a value. field_type selects the JSON shape, while config can narrow lengths, numeric ranges, currencies, and allowed options.
Value type matrix
| field_type | JSON example | Validation |
|---|---|---|
| string | "enterprise" | JSON string; config.max_length can limit Unicode characters. |
| number | 12.25 | Finite JSON number; config min, max, and precision can apply. |
| boolean | true | JSON true or false. |
| date | "2026-08-31" | String in exact YYYY-MM-DD form. |
| time | "17:45:30" | String in HH:MM or HH:MM:SS form. |
| datetime | "2026-08-31T17:45:30+03:00" | RFC 3339 string with a time-zone designator. |
| monetary | {"amount": 12.25, "currency": "EUR"} | Object with amount number and three-letter uppercase currency allowed by config. |
| json | {"nested": [1, true]} | Any valid JSON value. |
| select | "gold" | One option value, unless config.allow_custom permits another string. |
| multi_select | ["gold", "silver"] | Array of unique string option values; an empty array is valid. |
Create and update values
The IDs 50 and 51 below are illustrative. Replace them with actual field IDs from your workspace. Match each value and currency to its field definition.
On incident creation, custom_field_values is an array of {field_id, value}. The field ID is numeric. Include every definition marked required_on_creation; the API validates all values before Slack work and saves them with the incident in one database transaction.
To change stored values, PATCH /api/v1/incidents/{id}/custom-fields with a non-empty values array. Omitted fields stay unchanged. A repeated request that sends the same values is safe.
{
"custom_field_values": [
{"field_id": 50, "value": 1500},
{"field_id": 51, "value": {"amount": 12.25, "currency": "EUR"}}
]
}Clear or unset a value
JSON null is accepted for a non-required field, but a required field rejects null. To remove a stored value explicitly, call DELETE /api/v1/incidents/{id}/custom-fields/{fieldId}. That request is repeat-safe when no value is stored, and it returns the remaining values. A required field cannot be unset.
An empty string, false, zero, an empty object, and an empty array are JSON values rather than universal clearing signals. They are accepted only when the field type and its config allow them.