Skip to content

Update a form field

PATCH
/v1/forms/{form}/fields/{field}
curl --request PATCH \
--url https://api.submeto.com/v1/forms/example/fields/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "label": "example", "type": "string", "required": true, "options": {}, "validation": "email" }'

Updates a field's configuration. Requires the forms:update scope, a current If-Match Form validator, and the form to still be disabled with no submissions for name/type changes. Field validation accepts only a reviewed validation preset, never raw regex.

form
required
string

The form ID.

field
required
string

The field ID.

If-Match
string
Media typeapplication/json
object
name

Must match the regex /^[a-z][a-z0-9_]{0,63}$/.

string
label

Must not be greater than 255 characters.

string
nullable
type
string
Allowed values: string number date boolean array file
required
boolean
options
One of:
object
key
additional properties
any
validation
string
nullable
Allowed values: email url tel ipv4 ipv6 uuid slug hex_color alpha_numeric integer

Field updated

Media typeapplication/json
object
data
object
id
string
name
string
label
string
type
string
required
boolean
options
string
nullable
validation
object
kind
string
preset
string
position
integer
created_at
string
updated_at
string
request_id
string
Example
{
"data": {
"id": "REQUEST_ID",
"name": "email",
"label": "Email",
"type": "string",
"required": true,
"options": null,
"validation": {
"kind": "preset",
"preset": "email"
},
"position": 0,
"created_at": "2026-01-15T09:00:00.000Z",
"updated_at": "2026-08-31T10:15:00.000Z"
},
"request_id": "REQUEST_ID"
}

Not found or not granted

Media typeapplication/json
object
error
object
code
string
message
string
details
object
request_id
string
Example
{
"error": {
"code": "resource_not_found",
"message": "Resource not found.",
"details": {}
},
"request_id": "REQUEST_ID"
}
Media typeapplication/json
One of:

Field contract locked

object
error
object
code
string
message
string
details
object
request_id
string
Example
{
"error": {
"code": "field_contract_locked",
"message": "Field name and type are locked after activation or first submission.",
"details": {}
},
"request_id": "REQUEST_ID"
}

Stale ETag

Media typeapplication/json
object
error
object
code
string
message
string
details
object
request_id
string
Example
{
"error": {
"code": "precondition_failed",
"message": "The Form revision does not match the If-Match ETag.",
"details": {}
},
"request_id": "REQUEST_ID"
}

Missing If-Match

Media typeapplication/json
object
error
object
code
string
message
string
details
object
request_id
string
Example
{
"error": {
"code": "precondition_required",
"message": "A current If-Match Form validator is required.",
"details": {}
},
"request_id": "REQUEST_ID"
}