Skip to content

Register a device

POST
/devices/register
curl --request POST \
--url https://example.com/v1/devices/register \
--header 'Content-Type: application/json' \
--data '{ "serialNumber": "example", "brand": "Apple", "model": "Mac16,8", "certificate": "example", "ownerEmail": "hello@example.com", "clientTimestamp": "2026-04-15T12:00:00Z", "signature": "example" }'

Called by Lander on startup. The request is signed with the device key. Idempotent — re-registering with the same certificate and owner is a no-op.

Media typeapplication/json
object
serialNumber
required
string
brand
string

Example

Apple
model
string

Example

Mac16,8
certificate
required

PEM-encoded device certificate

string
ownerEmail
string format: email
clientTimestamp
required
string format: date-time
signature
required

Base64 signature over the canonical payload

string

Device registered

Media typeapplication/json
object
deviceId
string format: uuid
certificateFingerprint
string
ownerAssigned
boolean

Example generated

{
"deviceId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"certificateFingerprint": "example",
"ownerAssigned": true
}

Invalid payload or signature