Skip to content
UseWait Docs
Esc
navigateopen⌘Jpreview
On this page

REST API

Base URL, request format, rate limits, and error shape for the UseWait REST API.

The REST API lives at:

https://usewait.com/api/v1

All endpoints accept and return JSON (assets also accept multipart/form-data). Authenticate every request with your API key; see Authentication.

Discovery

GET /api/v1 requires no authentication and returns a machine-readable index of every endpoint, the MCP endpoint, and usage notes. Hand it to an agent or use it to explore.

Endpoints

Method Path Purpose
GET /api/v1/me Account, plan, and capabilities
GET /api/v1/waitlists List your waitlists
POST /api/v1/waitlists Create a waitlist
GET /api/v1/waitlists/{idOrSlug} One waitlist, including page code
PATCH /api/v1/waitlists/{idOrSlug} Update a waitlist
DELETE /api/v1/waitlists/{idOrSlug} Delete a waitlist
GET /api/v1/waitlists/{idOrSlug}/entries List signups
GET /api/v1/waitlists/{idOrSlug}/domain Domain state and the DNS record to create
POST /api/v1/waitlists/{idOrSlug}/domain Connect a custom domain (DNS check + SSL)
DELETE /api/v1/waitlists/{idOrSlug}/domain Disconnect the custom domain
GET PUT DELETE /api/v1/waitlists/{idOrSlug}/turnstile Manage custom Turnstile keys
GET POST DELETE /api/v1/waitlists/{idOrSlug}/database Connect your own Postgres/MySQL
GET /api/v1/email-templates List email templates and the variable contract
POST /api/v1/email-templates Create an email template
GET /api/v1/email-templates/{id} One template with full HTML
PATCH /api/v1/email-templates/{id} Update a template
DELETE /api/v1/email-templates/{id} Delete a template
POST /api/v1/assets Upload an image to the CDN

Errors

Errors return a JSON body with an error message and, for validation failures, a details array:

{
  "error": "Validation failed.",
  "details": [{ "path": "name", "message": "Required" }]
}
Status Meaning
400 Invalid input (see details)
401 Missing or invalid API key
403 Plan does not include the capability, or account inactive
404 Resource not found or not yours
409 Conflict, for example a taken slug
413 File too large (assets, max 5 MB)
422 Domain setup failed DNS verification (response includes the record to create)
429 Rate limit exceeded (120 requests per minute)

Was this page helpful?