---
title: "Join the waitlist"
method: POST
path: "/v1/waitlist"
tags: ["Waitlist"]
---

# Join the waitlist

`POST /v1/waitlist`

## Request

- Base URL: `https://api.chronary.ai`
- URL: `https://api.chronary.ai/v1/waitlist`
- Auth: none required

Join the Chronary soft-launch waitlist. Creates a row in the `waitlist` intake table — no
organization is created until the prospect is approved by a founder and clicks the signed
invite link sent to their email.

Idempotent on repeat hits: the same email returns 200 with the existing entry instead of 409.
An active (non-waitlisted) account at the same email returns 409 `email_taken`.

Rate limit: per-IP and per-email via the public rate limiter.

## Request body

- WaitlistJoinRequest
  - `email` string, email, required
  - `name` string
  - `tos_version` string
  - `intent` string: "What are you building?" — free-text, capped at 200 chars.

## Response `200`

Email already on the waitlist; idempotent re-hit.

- WaitlistJoinResponse
  - `data` WaitlistEntry, required
    - `id` string, required
    - `email` string, email, required
    - `intent` string, nullable, required
    - `status` string, required
    - `created_at` string, required
  - `message` string, required

## Other responses

- `201`: Waitlist entry created. Confirmation email queued.
- `400`: Validation error — invalid request body or query parameters
- `409`: An active account already exists for this email, or `tos_version` is stale.
- `429`: Rate limited — 10 requests per second per key exceeded
- `500`: Internal server error

---

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