API referenceConsumerConsumer.devices
Register a device for the current project
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.
Format
uuidRequest 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"}