Skip to content

Provision Device

POST
/api/v1/provision
curl --request POST \
--url https://example.com/api/v1/provision \
--header 'X-Provisioning-Token: example'

Provision a new device using a provisioning token.

This is the recommended way for devices to register on first boot. The device receives a unique API key that should be stored and used for all subsequent requests.

Flow:

  1. Device boots with provisioning token baked into image
  2. Device calls this endpoint with hardware identifiers
  3. Server validates token and creates device + unique API key
  4. Device stores API key and uses it for all future requests

The provisioning token can be reused for multiple devices (fleet provisioning).

X-Provisioning-Token
required
X-Provisioning-Token
string

Successful Response

Media type application/json
DeviceProvisionResponse

Response after successful device provisioning

object
api_key
required
Api Key
string
api_key_prefix
required
Api Key Prefix
string
device_id
required
Device Id
string
device_identifier
required
Device Identifier
string
device_name
required
Device Name
string
is_new
required
Is New
boolean
message
required
Message
string
status
Status
string
default: ok
tunnel_token
Any of:
string
tunnel_token_prefix
Any of:
string
Example
{
"status": "ok"
}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Example generated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}