---
title: "Join the pre-launch waitlist."
method: POST
path: "/v1/waitlist"
tags: ["waitlist"]
---

# Join the pre-launch waitlist.

`POST /v1/waitlist`

## Request

- Base URL: `https://api.andish.ru` (the document declares no server; this is the origin it was published from)
- URL: `https://api.andish.ru/v1/waitlist`
- Auth: none declared

Create a new waitlist signup and send confirmation email.

Email is normalised to lowercase before duplicate check and storage.
consent_fz152 must be True (validated at Pydantic layer — 422 if False).
Duplicate email returns 409 (idempotent — safe for retry with same email).

## Request body

- WaitlistSignupRequest: Request body for POST /v1/waitlist.
  - `email` string, email, required: Signup email address (normalised to lowercase).
  - `name` string, nullable: Optional contact name.
  - `company` string, nullable: Optional company name.
  - `team_size` '5-30' | '30-200' | '200+', nullable: Team size bracket for ICP segmentation.
  - `icp_role` 'cto' | 'tl' | 'dev' | 'other', nullable: Submitter role for ICP segmentation.
  - `utm_source` string, nullable
  - `utm_medium` string, nullable
  - `utm_campaign` string, nullable
  - `consent_fz152` boolean, required: Explicit consent to process personal data per FZ-152 (Russian law). Must be True — request is rejected with 422 if False.

## Response `202`

Signup accepted — confirmation email dispatched.

- WaitlistSignupResponse: Response for 202 Accepted — confirmation email dispatched.
  - `status` 'pending_confirmation'
  - `message` string

## Other responses

- `409`: Email already on the waitlist.
- `422`: Validation error or consent_fz152=False.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/andish/apis/mnemo-api.md) · [All operations](https://skmtc.dev/andish/apis/mnemo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/andish/apis/mnemo-api/revisions/d5449f23414c?raw)
