Skip to content
API referenceConsumerConsumer.devices

Bump the device's last-seen timestamp

POST
/consumer/v1/devices/{id}/heartbeat

Headless devices (Linux exit-node agent, etc.) hit this every 30 s so the dashboard can show liveness. Authenticated with the device session bearer token issued by /v1/auth/device/register/. Returns 204 on success.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

Device ID

Formatuuid

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/consumer/v1/devices/55555555-5555-5555-5555-555555555555/heartbeat"
Empty
{  "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"}