---
title: "Get Onboarding Route"
method: GET
path: "/v1/onboarding/route"
tags: ["onboarding"]
---

# Get Onboarding Route

`GET /v1/onboarding/route`

## Request

- Base URL: `https://api.4chems.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.4chems.com/v1/onboarding/route`
- Auth: none required

Return the next onboarding step. If this doesn't answer your question, call
`start_inquiry` to ask 4chems directly or request a call.

Anonymous call (no token): returns action=register with no URL and a
`next_step` naming `start_account_registration` and `start_device_login`
(UC-091).
A presented but invalid/expired token returns 401 (no silent fallback).

Authenticated call: existing routing logic (email_verified gate, domain
lookup, etc.) — behaviour is unchanged from pre-UC-053 (UC-014).
The email domain is derived from the token's ``email`` claim only.
Zero DB reads are performed before the email_verified gate (NFR-006 pt 3).

## Response `200`

Successful Response

- RoutingOut
  - `action` string, required
  - `next_step` union
    - string
    - NextStepOut: What a `member` must do next: record consents to the listed documents (UC-093).
      - `operation` string, required
      - `documents` object[], required
  - `tenant_name` string, nullable
  - `registration_url` string, nullable
  - `registration_methods` string[], nullable
  - `subscription` SubscriptionOut
    - `state` 'trialing' | 'expired' | 'erased' | 'active', required: Commercial state (UC-096, UC-086 D7); `TrialStatus` is provisioning only.
    - `expires_at` string, date-time, nullable, required
    - `grace_ends_at` string, date-time, nullable, required

---

[API](https://skmtc.dev/4chems/apis/platform-api.md) · [All operations](https://skmtc.dev/4chems/apis/platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/4chems/apis/platform-api/revisions/65e4f7b4dba0?raw)
