Skip to content

Update a form

PATCH
/api/v1/forms/{id}
curl --request PATCH \
--url https://api.deploybase.eu/api/v1/api/v1/forms/example \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "allowed_origins": [ "example" ], "enabled": true, "honeypot_field": "example", "name": "example", "notify_emails": [ "example" ], "redirect_url": "example", "retention_days": 1, "store_ip": "example" }'

Partially updates a form’s settings. public_id and project_id are immutable.

id
required
string

Form ID

Settings to change

Media type application/json
object
allowed_origins
Array<string>
enabled
boolean
honeypot_field
string
name
string
notify_emails

NotifyEmails / AllowedOrigins: pointer-to-slice so an explicit [] can clear the list while an omitted key leaves it alone. A plain slice couldn’t tell those apart.

Array<string>
redirect_url

RedirectURL: empty string clears it.

string
retention_days

RetentionDays: 0 clears it (keep forever), positive sets it, negative is rejected.

integer
store_ip
string
Example generated
{
"allowed_origins": [
"example"
],
"enabled": true,
"honeypot_field": "example",
"name": "example",
"notify_emails": [
"example"
],
"redirect_url": "example",
"retention_days": 1,
"store_ip": "example"
}

OK

Media type application/json
object
data
meta
object
request_id
string
timestamp
string
trace_id
string
data
object
allowed_origins
Array<string>
created_at
string
deleted_at
string
enabled
boolean
endpoint_url
string
honeypot_field
string
id
string
name

Name is the dashboard identity, unique per project among live rows only — a soft-deleted form releases its name (uq_forms_project_name_active).

string
notify_emails
Array<string>
project_id

ProjectID is immutable after creation. This is enforced structurally rather than by a check: UpdateFormInput has no project_id field, so no code path can reassign it.

string
public_id

PublicID is immutable after creation: it is baked into the customer’s deployed HTML, so regenerating it would silently break every live form pointing at it.

string
redirect_url
string
retention_days
integer
source
string
Allowed values: manual build_detected
store_ip
string
Allowed values: none truncated
team_id
string
updated_at
string
Example
{
"data": {
"source": "manual",
"store_ip": "none"
}
}

Bad Request

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Unauthorized

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Forbidden

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Not Found

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

A form with this name already exists in this project

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}