---
title: "Preview Claim"
method: GET
path: "/onboarding/claim"
tags: ["onboarding"]
---

# Preview Claim

`GET /onboarding/claim`

## Request

- Base URL: `https://api.getathly.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getathly.com/onboarding/claim`
- Auth: none declared

What to show someone arriving from the onboarding hand-off.

Deliberately unauthenticated: the visitor has just paid on another property
and has no session yet -- the token is the whole of their proof. It is
resolved here rather than in the browser because the shared secret cannot
reach a bundle, and the response carries neither the token nor the
onboarding answers back out.

``athlete_slug`` is the athlete in the browser's path, and is used for one
thing only: furnishing a dead token's 404 with a link back into onboarding,
which the browser cannot build itself.

## Query parameters

- `token` string, required
- `athlete_slug` string, nullable

## Response `200`

Successful Response

- ClaimPreview: What the create-account screen needs to render, and nothing more. Notably absent: the token, and the onboarding answers. The answers are written to the pair's harness row (``onboarding_data``) server-side at claim time, so there is no reason to hand a browser a copy.
  - `action` 'create_account' | 'sign_in' | 'pay', required
  - `email` string, email, required
  - `name` string, nullable
  - `athlete_slug` string, required
  - `plan` string, nullable
  - `subscription_status` string, nullable
  - `pay_url` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/getathly/apis/athly-api.md) - [All operations](https://skmtc.dev/getathly/apis/athly-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getathly/apis/athly-api/revisions/6adfdc258d75?raw)
