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

# Claim

`POST /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

Create the account this token paid for and return a real session.

Also unauthenticated, and idempotent in the way that matters: a second
attempt on a token whose email already has a login is refused with 409
rather than resetting the password.

## Request body

- ClaimRequest
  - `token` string, required
  - `password` string, required
  - `athlete_slug` string, nullable
  - `timezone` string, nullable

## Response `200`

Successful Response

- ClaimSessionResponse: A real session, so a paid signup goes straight into the app.
  - `access_token` string, required
  - `refresh_token` string, required
  - `expires_at` integer, required
  - `user_id` string, required
  - `athlete_slug` string, required

## 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)
