Skip to content
API referenceConsumerConsumer.devices

Register a device for the current project

POST
/consumer/v1/devices

Creates a device under the authenticated user's consumer account for the project identified by X-Project-Id. The returned payload includes ownership metadata, lifecycle status, and any assigned VSpace addresses.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Header Parameters

X-Project-Id*string

UUID of the project that scopes consumer accounts, devices, sessions, and VSpaces for the request.

Formatuuid

Request Body

application/json

Device registration payload with a user-facing name, platform, and optional base64 WireGuard node key.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/consumer/v1/devices" \  -H "X-Project-Id: 11111111-1111-1111-1111-111111111111" \  -H "Content-Type: application/json" \  -d '{    "machine_key": "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE=",    "name": "Georgy\'s MacBook Pro",    "node_key": "L2M8V1kzY0R0VExzb1E4N2Y1K0xYSk5rV0h6S1I0dz0=",    "platform": "macos"  }'
{  "addresses": {    "ipv4": "100.101.0.14",    "ipv6": "fd7a:115c:a1e0:efe3::14",    "vspace_id": "44444444-4444-4444-4444-444444444444"  },  "consumer_account_id": "22222222-2222-2222-2222-222222222222",  "created_at": "2026-04-12T09:45:00Z",  "id": "55555555-5555-5555-5555-555555555555",  "last_seen_at": "2026-04-12T10:05:00Z",  "machine_key": "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE=",  "name": "Georgy's MacBook Pro",  "node_key": "L2M8V1kzY0R0VExzb1E4N2Y1K0xYSk5rV0h6S1I0dz0=",  "platform": "macos",  "status": "active",  "updated_at": "2026-04-12T10:05:00Z",  "user_id": "33333333-3333-3333-3333-333333333333"}
{  "detail": "Pool slug must be unique.",  "instance": "urn:forestvpn:trace:a1b2c3d4",  "title": "Validation Error",  "type": "https://fvpn.net/errors/validation"}
{  "detail": "Pool slug must be unique.",  "instance": "urn:forestvpn:trace:a1b2c3d4",  "title": "Validation Error",  "type": "https://fvpn.net/errors/validation"}
{  "detail": "Pool slug must be unique.",  "instance": "urn:forestvpn:trace:a1b2c3d4",  "title": "Validation Error",  "type": "https://fvpn.net/errors/validation"}
{  "detail": "Pool slug must be unique.",  "instance": "urn:forestvpn:trace:a1b2c3d4",  "title": "Validation Error",  "type": "https://fvpn.net/errors/validation"}