Skip to content

Partially update profile configuration

PATCH
/api/v1/profiles/{id}

Applies partial profile config updates for fields like packages, kernel settings, OpenClaw, raw Nix overrides, or arbitrary top-level config keys.

id
required
string

Profile identifier.

object
>= 1 properties
config

Top-level config keys to merge into the existing config object.

object
key
additional properties
any
packages

Replace the parsed package list in the existing config.

Array<string>
kernel
object
attr
string
source_override
object
enabled
required
boolean
url
string format: uri
ref
string
rev
string
patches
Array<object>
object
name
required
string
sha256
required
string
content_base64
required
string
openclaw_microvm_enabled
boolean
raw_nix
string
config_schema_version
integer
>= 1
Examples

Update selected config fields

{
"config": {
"custom_banner": "Canary rollout"
},
"packages": [
"vim",
"htop"
],
"kernel": {
"attr": "linux_6_19"
},
"openclaw_microvm_enabled": false
}

Updated profile configuration.

object
profile
required
object
id
required

Profile identifier.

string
fleet_id

Primary fleet identifier when one is available.

string
fleet_ids
required

All fleet identifiers assigned to the profile.

Array<string>
fleet_name

Human-readable name of the primary fleet.

string
name
required

Profile name.

string
description

Optional profile description.

string
latest_revision
required

Latest known profile revision.

integer
config_hash

Hash of the latest configuration revision when available.

string
created_at
required

UTC timestamp string returned by the current API implementation.

string
config_schema_version
required

Current configuration schema version for the latest revision.

integer
config
required

Canonical JSON configuration object for the latest profile revision.

object
key
additional properties
any
packages
required

Parsed package list from the profile configuration.

Array<string>
kernel
required
object
attr

Selected kernel attribute.

string
source_override
required
object
enabled
required
boolean
url
string format: uri
ref
string
rev
string
patches
required
Array<object>
object
name
required
string
sha256
required
string
content_base64
required
string
openclaw_microvm_enabled
required

Whether the OpenClaw MicroVM integration is enabled.

boolean
raw_nix

Raw Nix overrides stored with the latest profile revision.

string
created_new_revision
required

Whether the mutation created a new profile revision.

boolean
Examples

Patched profile without changing raw Nix

{
"created_new_revision": true,
"profile": {
"id": "a8ce71df-4c80-4d45-919a-bfd474a4d724",
"fleet_id": "fleet-primary",
"fleet_ids": [
"fleet-primary",
"fleet-secondary"
],
"fleet_name": "Primary Fleet, Secondary Fleet",
"name": "Production Base",
"description": "Base image for production devices.",
"latest_revision": 14,
"config_hash": "9b5c5129a7326f3ab3c6a5e04df4e7230f7d6f4e14cd0c57c6dbfd8a57dbc1df",
"config_schema_version": 2,
"created_at": "2026-03-18 12:00:00",
"config": {
"packages": [
"vim",
"htop"
],
"kernel": {
"attr": "linux_6_19"
},
"openclaw_microvm_enabled": false,
"custom_banner": "Canary rollout"
},
"packages": [
"vim",
"htop"
],
"kernel": {
"attr": "linux_6_19",
"source_override": {
"enabled": false,
"patches": []
}
},
"openclaw_microvm_enabled": false,
"raw_nix": "{ pkgs, ... }: { services.openssh.enable = true; }"
}
}

Invalid profile mutation request.

object
error
required
string

Missing or invalid API key.

object
error
required
string

The authenticated user can view the profile but cannot modify it.

object
error
required
string

Profile not found or not visible to the authenticated user.

object
error
required
string