Printago API
PATCH
/v1/custom-metadata-definitions/{id}
Update a custom field definition
The key is immutable: it is both the jsonb key and the identity a routing rule stores, so renaming it would need a value rewrite plus AST rewrites. Label, unit, type and enum values are all editable.
Path Parameters
id
required
string
Request Body
UpdateCustomMetadataDefinitionRequest
clearIncompatibleValuesoptional
boolean
defaultToNowoptional
boolean
defaultValueoptional
string | number | boolean
enumValuesoptional
string[]
labeloptional
string
unitoptional
string
valueTypeoptional
any
Example Request
application/json
{
"label": "string",
"defaultToNow": true,
"clearIncompatibleValues": true
}
Response Schema
CustomMetadataDefinition
createdAtrequired
string
format: date-time
defaultToNowrequired
boolean
Date/time fields only, and the only default they can carry: the value is
the moment the record was created. A fixed date is almost never the right
default, and there is no way to express "now" as a literal.
defaultValuerequired
string | number | boolean
Written into a record's `customMetadata` when that record is created, so
the field is on every new record of its type. This is the only way a
definition puts itself on a record: a field with no value is not listed,
because a row the record does not carry is a row that lies about it.
Never applied to records that already exist.
entityTyperequired
any
enumValuesrequired
string[]
idrequired
string
pattern: ^[a-z0-9]{24}$
keyrequired
string
labelrequired
string
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
unitrequired
string
updatedAtrequired
string
format: date-time
valueTyperequired
any
Example Response
200 OK — application/json
{
"key": "string",
"label": "string",
"defaultToNow": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-09-13T00:32:48.554Z",
"updatedAt": "2026-09-13T00:32:48.554Z"
}