Skip to content
Infrastructure API

Consumers

Your end users on the ForestVPN platform — consumer accounts, device authentication, sessions, and strict per-project isolation.

Consumers are your product's end users. They are a deliberately separate identity system from your project's staff: a consumer is a consumer account that exists only inside your project, talks only to the /consumer/v1 plane, and can never hold project-management credentials. The separation is structural — the two planes have different auth, different tokens, and different data scopes.

The consumer plane

Everything an end user does goes through /consumer/v1/*:

AreaEndpoints
IdentityGET /consumer/v1/me, linked sign-in identities under /consumer/v1/me/identities
AccountGET /consumer/v1/account, usage at /consumer/v1/account/usage, export and deletion flows
Device auththe /consumer/v1/auth/device/* family — challenge/verify, pairing tokens, registration, session refresh and revocation
Devicesthe /consumer/v1/devices family
Networksprivate mesh networks (vspaces) under /consumer/v1/vspaces
Billingthe consumer's own plan, subscription, and invoices under /consumer/v1/billing/*
AuditGET /consumer/v1/audit-log — the consumer's own trail

How a device gets signed in

The device-auth family implements a challenge-based flow:

  1. the device asks for a challenge (POST /consumer/v1/auth/device/challenge) and proves control of its key (…/challenge/verify);
  2. a signed-in surface can hand a device a one-time pair token (POST /consumer/v1/auth/device/pair-token) to adopt it onto an account;
  3. the device registers (POST /consumer/v1/auth/device/register) and holds a session it can refresh (…/sessions/refresh) — and the account can revoke any or all sessions.

After that, GET /consumer/v1/bootstrap hands the device its configuration profile — the same document the Apple quickstart feeds into the SDK.

Isolation guarantees

  • A consumer account is scoped to one project; there is no cross-project consumer identity.
  • Suspending a consumer account cuts off the whole account — every device session it holds stops authenticating.
  • Consumer data (accounts, devices, usage) is queryable only through your project's own credentials.

Reference

Every operation above is documented in the generated API reference under the consumer plane.