---
title: "Record an onboarding checkpoint"
method: POST
path: "/onboarding/checkpoint"
tags: ["Onboarding"]
---

# Record an onboarding checkpoint

`POST /onboarding/checkpoint`

Records that a user has reached or completed an onboarding checkpoint.

Called by events-notifier after validating a Segment webhook. Not intended to be called directly from the browser.

**Checkpoints (1–7):**
1. Authentication Started
2. Auth Method Selected
3. Profile Creation
4. Avatar Creator Started
5. Download Page Viewed
6. Download Clicked
7. Launcher Ready

**Implicit completion:** Recording checkpoint N automatically marks checkpoint N-1 as completed.

## Request body

- object
  - `checkpointId` integer, required — Onboarding checkpoint identifier (1–7)
  - `userIdentifier` string, required — User identifier (email address or wallet address)
  - `identifierType` 'email' | 'wallet', required — Type of user identifier
  - `action` 'reached' | 'completed', required — Whether the user reached or completed this checkpoint
  - `email` string, email — User's email address (used for nudge emails)
  - `source` string — Source of the checkpoint event (e.g. "auth", "website", "launcher")
  - `metadata` object — Additional context (e.g. loginMethod)

## Response `200`

Checkpoint recorded

- object
  - `success` boolean, required

## Other responses

- `400` — Invalid payload (missing fields, invalid checkpointId, invalid identifierType)
- `401` — Missing or invalid API key
- `500` — Internal server error (e.g. database failure)

---

[API](https://skmtc.net/decentraland/apis/realm-provider-api.md) · [All operations](https://skmtc.net/decentraland/apis/realm-provider-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/decentraland/realm-provider-api/revisions/d94e0e0f1821/schema)
