Provision Device
POST
/api/v1/provision
const url = 'https://example.com/api/v1/provision';const options = {method: 'POST', headers: {'X-Provisioning-Token': 'example'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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:
- Device boots with provisioning token baked into image
- Device calls this endpoint with hardware identifiers
- Server validates token and creates device + unique API key
- Device stores API key and uses it for all future requests
The provisioning token can be reused for multiple devices (fleet provisioning).
Parameters
Section titled “ Parameters ”Header Parameters
Section titled “ Header Parameters ” X-Provisioning-Token
required
X-Provisioning-Token
string
Responses
Section titled “ Responses ”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
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" } ]}