WaitKitWaitKit
Concepts

How WaitKit Works

The WaitKit signup request lifecycle, duplicate prevention for the same email on a project, and asynchronous confirmation email delivery.

Request lifecycle

When a visitor submits their email through your waitlist form, this is what happens:

  1. Browser sends a POST request to the WaitKit API with the subscriber's email and optional fields (name, source, metadata)
  2. API authenticates the request using the API key in the Authorization header
  3. Validation checks the email format and required fields
  4. Duplicate check ensures the email is not already registered for this project
  5. Enrichment records the subscriber's IP address, country (via IP geolocation), and device type (derived from the user-agent)
  6. Storage saves the subscriber entry
  7. Response returns the created entry to the browser
  8. Email (if enabled) schedules a confirmation email for delivery

The signup response returns without waiting for confirmation email delivery. Confirmation email delivery happens in the background.

Email system

When confirmation emails are enabled for a project, each signup records the email as pending, then it is delivered and marked accordingly. Failed deliveries are retried automatically before being marked as failed. Campaign blasts use the same system at scale.

Uniqueness guarantee

Duplicate signups are prevented for the same email on the same project. The same email can join different projects but not the same project twice. Attempting a duplicate returns 409 Conflict.

On this page