Skip to content
API referenceConsumerConsumer.vspaces

Publish a disco key for one VSpace membership

PUT
/consumer/v1/vspaces/{id}/members/{device_id}/disco-key

Publishes the authenticated device's disco public key for a single VSpace membership in the selected project.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

VSpace ID

Formatuuid
device_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

Base64-encoded 32-byte x25519 disco public key.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/consumer/v1/vspaces/44444444-4444-4444-4444-444444444444/members/55555555-5555-5555-5555-555555555555/disco-key" \  -H "X-Project-Id: 11111111-1111-1111-1111-111111111111" \  -H "Content-Type: application/json" \  -d '{    "disco_key": "AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI="  }'
{  "device_id": "55555555-5555-5555-5555-555555555555",  "disco_key": "AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI=",  "disco_key_updated_at": "2026-04-22T10:05:00Z",  "vspace_id": "44444444-4444-4444-4444-444444444444"}
{  "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"}