---
title: "Join the pre-launch waitlist (sends a confirmation email; double opt-in)"
method: POST
path: "/v1/waitlist"
tags: ["public"]
---

# Join the pre-launch waitlist (sends a confirmation email; double opt-in)

`POST /v1/waitlist`

## Request

- Base URL: `https://api.wavehouse.cloud`
- URL: `https://api.wavehouse.cloud/v1/waitlist`
- Auth: none declared

Public and unauthenticated. Always returns 202 with the same body — it never reveals whether the address was new, so it cannot be used to test who is on the list. The address is NOT on the list until the confirmation link in the email is clicked.

## Headers

- `CF-IPCountry` string
- `User-Agent` string

## Request body

- JoinWaitlistInput
  - `email` string, required: Email address to add to the waitlist
  - `referrer` string
  - `source` string: Which form/surface this came from (e.g. hero, cta, blog-post)
  - `utm_campaign` string
  - `utm_content` string
  - `utm_medium` string
  - `utm_source` string
  - `utm_term` string

## Response `202`

Accepted

- JoinWaitlistOutput
  - `message` string, required
  - `status` string, required: Always "pending_confirmation"

## Other responses

- `429`: Rate limited, per client IP, API key or org; a client IP is also refused on every route for a while after repeated authentication failures. A limited operation carries RateLimit-Policy and RateLimit on every response; wait Retry-After seconds before retrying.
- `default`: Error

---

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