Skip to content

Save a profile as a new version (REQ-012, REQ-013). Maintainers of the profile and admins.

PUT
/profiles/{key}
curl --request PUT \
--url https://example.com/api/v1/profiles/example \
--header 'Content-Type: application/json' \
--data '{ "yaml": "example", "template": "example" }'
key
required
string
Media typeapplication/json
object
yaml
required
string
template
required
string
Examplegenerated
{
"yaml": "example",
"template": "example"
}

The profile.

Media typeapplication/json
object
key
required
string
name
required
string
version
required
integer format: int64
origin
required
string
yaml
required
string
template
required
string
versions
required
Array<object>
object
version
required
integer format: int64
created_by
required
string
created_at
required
string format: date-time
origin
required

Where the version came from. A rollback says which version it repeats.

string
maintainers
required
Array<string>
can_edit
required
boolean
editable
required

False when the profile cannot be saved here, such as a built-in in local mode with no .speccy/profiles folder rights.

boolean
Examplegenerated
{
"key": "example",
"name": "example",
"version": 1,
"origin": "example",
"yaml": "example",
"template": "example",
"versions": [
{
"version": 1,
"created_by": "example",
"created_at": "2026-04-15T12:00:00Z",
"origin": "example"
}
],
"maintainers": [
"example"
],
"can_edit": true,
"editable": true
}

An error.

Media typeapplication/problem+json

RFC 9457 problem details with a stable code.

object
type
required
string
title
required
string
status
required
integer
detail
string
instance
string
code
required

A stable machine-readable error code.

string
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"code": "example"
}