Skip to content
API referenceConsumerConsumer.devices

Rotate a device node key in the current project

POST
/consumer/v1/devices/{id}/rotate-key

Replaces the WireGuard node key for a device owned by the authenticated user and keeps the previous key during the transition window.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Device ID

Formatuuid

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

Replacement base64 WireGuard node key for the target device.

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/55555555-5555-5555-5555-555555555555/rotate-key" \  -H "X-Project-Id: 11111111-1111-1111-1111-111111111111" \  -H "Content-Type: application/json" \  -d '{    "node_key": "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE="  }'
{  "device_id": "55555555-5555-5555-5555-555555555555",  "node_key": "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE=",  "node_key_expires_at": "2026-07-12T10:05:00Z",  "old_node_key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",  "rotated_at": "2026-04-13T10:05:00Z"}
{  "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"}