Skip to content

Update system settings (admin only)

PUT
/api/settings/system
curl --request PUT \
--url https://example.com/api/settings/system \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "sshCommandTimeoutMs": 1, "sshReadyTimeoutMs": 1, "webhookMaxRetries": 1, "webhookTimeoutMs": 1, "webhookRetryDelaysMs": "example", "pgDumpTimeoutMs": 1, "maxUploadSizeMb": 1, "activeUserWindowMin": 1, "registryMaxTags": 1, "defaultLogLines": 1, "publicUrl": "", "agentCallbackUrl": "", "agentStaleThresholdMs": 1, "agentOfflineThresholdMs": 1, "auditLogRetentionDays": 1, "databaseMetricsRetentionDays": 1, "notificationRetentionDays": 1, "healthLogRetentionDays": 1, "webhookDeliveryRetentionDays": 1, "imageDigestRetentionDays": 1, "timezone": "example", "backupRetentionPreset": "lean", "backupRetentionKeepLast": 1, "backupRetentionDaily": 1, "backupRetentionWeekly": 1, "backupRetentionMonthly": 1, "backupRetentionYearly": 1, "backupRetentionMinFloor": 1, "backupRetentionMaxTotalBytes": 1, "failedBackupRetentionDays": 1, "backupRotationConfirmThreshold": 1 }'
Media typeapplication/json
object
sshCommandTimeoutMs
integer
>= 1000 <= 600000
sshReadyTimeoutMs
integer
>= 1000 <= 120000
webhookMaxRetries
integer
<= 10
webhookTimeoutMs
integer
>= 1000 <= 300000
webhookRetryDelaysMs
string
pgDumpTimeoutMs
integer
>= 30000 <= 3600000
maxUploadSizeMb
integer
>= 1 <= 500
activeUserWindowMin
integer
>= 1 <= 1440
registryMaxTags
integer
>= 10 <= 500
defaultLogLines
integer
>= 10 <= 10000
publicUrl
Any of:
string format: uri
nullable
agentCallbackUrl
Any of:
string format: uri
nullable
agentStaleThresholdMs
integer
>= 60000 <= 600000
agentOfflineThresholdMs
integer
>= 120000 <= 900000
auditLogRetentionDays
integer
<= 3650
databaseMetricsRetentionDays
integer
>= 1 <= 365
notificationRetentionDays
integer
>= 1 <= 365
healthLogRetentionDays
integer
>= 1 <= 365
webhookDeliveryRetentionDays
integer
>= 1 <= 365
imageDigestRetentionDays
integer
>= 1 <= 3650
timezone
string
>= 1 characters
backupRetentionPreset
string
Allowed values: lean balanced long_term custom
backupRetentionKeepLast
integer
<= 100
backupRetentionDaily
integer
<= 366
backupRetentionWeekly
integer
<= 520
backupRetentionMonthly
integer
<= 240
backupRetentionYearly
integer
<= 50
backupRetentionMinFloor
integer
>= 1 <= 10
backupRetentionMaxTotalBytes
integer
nullable
failedBackupRetentionDays
integer
>= 1 <= 3650
backupRotationConfirmThreshold
integer
<= 10000

Bad request — malformed input or failed validation.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}

Unauthorized — missing or invalid bearer token.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}

Forbidden — token scope or role does not permit this operation.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}