UseWait
Create and manage product waitlists from your AI agent.
Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data
What it can do
- Get Started: Read this first. Explains how to set up a complete UseWait waitlist: recommended order of tool calls, the page code format, slugs, assets, and referrals.
- Get Page Format: Returns the exact contract for a waitlist page's reactCode so you can generate custom page code safely. Read this before writing or replacing reactCode.
- Get Page Example: Returns a complete working GeneratedWaitlist function that satisfies the page contract, Turnstile and honeypot included. Start from this and restyle it rather than writing page code
What data it sees
Do you need an account
No: the server works without sign-in
Create and manage product waitlists from your AI agent. Generate a custom page, connect a custom domain, write confirmation emails, read signups, and send broadcasts. One-time $12 per waitlist, free to start. OAuth sign-in, no API key needed.
Server tool list (29)
Raw names from tools/list. Only developers need these.
| get_started | Read this first. Explains how to set up a complete UseWait waitlist: recommended order of tool calls, the page code format, slugs, assets, and referrals. |
| get_page_format | Returns the exact contract for a waitlist page's reactCode so you can generate custom page code safely. Read this before writing or replacing reactCode. |
| get_page_example | Returns a complete working GeneratedWaitlist function that satisfies the page contract, Turnstile and honeypot included. Start from this and restyle it rather than writing page code from scratch. This is the same code a new waitlist ships with. |
| get_account | Get the authenticated account's plan, capabilities, and waitlist count. |
| list_waitlists | List all waitlists owned by this account. |
| create_waitlist | Create a new waitlist. It is live at https://usewait.com/w/<slug> immediately (default template unless reactCode is provided). |
| get_waitlist | Get one waitlist by id or slug, including its current reactCode. |
| update_waitlist | Update a waitlist: rename, change slug, set SEO fields, referral settings, or replace the page's reactCode. |
| delete_waitlist | Permanently delete a waitlist and all of its entries. Irreversible. |
| list_entries | List signups for a waitlist (newest first). |
| upgrade_waitlist | Get a Stripe checkout link to license a waitlist ($12 one-time) or to add 5000 more signups ($5). Relay the returned URL to the user; the purchase applies automatically once they pay. Licensing unlocks custom domains, custom Turnstile, own database, referrals, branding removal, and 30 more AI generations. |
| get_domain_status | Get a waitlist's custom-domain state plus the DNS record (A record and server IP) the domain owner must create. Pass checkDomain to pre-verify a candidate domain's DNS without configuring anything. |
| set_custom_domain | Connect a custom domain to a waitlist (requires a licensed waitlist). Runs DNS verification and configures serving + SSL. If DNS is not pointing yet, the result includes the exact A record (type, recordName relative to the zone, value): if you have a DNS provider connected, create that record with recordName and value, then call this tool again; otherwise relay it to the user and wait for propagation. SSL is issued automatically after a successful setup. |
| remove_custom_domain | Disconnect a waitlist's custom domain. The page stays live at its usewait.com/w/<slug> URL. |
| set_turnstile_keys | Set custom Cloudflare Turnstile keys for a waitlist (requires a plan with custom domains; custom keys are needed when serving from a custom domain). Omit a field to leave it unchanged; pass null to clear one. Use get_turnstile_status to inspect state; secrets are never returned. |
| get_turnstile_status | Whether a waitlist has custom Turnstile keys configured (secrets are never returned). |
| clear_turnstile_keys | Remove a waitlist's custom Turnstile keys; UseWait's own keys are used again on the hosted URL. |
| setup_external_database | Connect the user's own Postgres or MySQL database (BYOD; requires a plan with database access). With testOnly it just verifies connectivity. Otherwise it creates the entries table (waitlist_<slug>) in their database and persists the connection so new signups are stored there. get_database_status inspects current state. |
| get_database_status | Which database a waitlist stores signups in (internal or the user's own), and the BYOD table name if external. |
| detach_external_database | Disconnect a waitlist's external database; future signups go to the internal database again. |
| get_email_template_format | Returns the contract for waitlist confirmation email templates: available {{variables}}, HTML rules, waitlist linking, and how to author them with react-email. |
| list_email_templates | List the account's email templates (confirmation emails sent to new signups) with their linked waitlist ids. |
| get_email_template | Get one email template by id, including its full HTML. |
| create_email_template | Create a confirmation email template. Call get_email_template_format first for the variable contract. Pass waitlistIds to link it to waitlists so new signups receive it. |
| update_email_template | Update an email template's name, subject, html, or linked waitlists (waitlistIds replaces the full assignment set when provided). |
| delete_email_template | Permanently delete an email template. Irreversible. |
| send_campaign | Send a one-time broadcast email to every subscriber of a waitlist, from the owner's connected email provider. Needs a LICENSED waitlist and a provider connected in the dashboard settings (the owner pastes their Resend key there; you cannot set it). subject and html support {{name}}, {{email}}, {{waitlistName}}, {{description}} and {{unsubscribeUrl}}; an unsubscribe footer and List-Unsubscribe header are added automatically. Returns a campaignId to poll with get_campaign. Guardrails: only one broadcast sends per waitlist at a time, and each subscriber is emailed at most once per campaign, so it is safe to call once and poll rather than retrying. Do NOT call this repeatedly to retry; a retry is rejected while one is in flight. |
| get_campaign | Check the progress of a broadcast started with send_campaign. Returns status (sending, sent, failed), and how many were sent and failed out of the total. |
| upload_asset | Upload an image (logo, background, og-image) to the UseWait CDN. Returns a public URL to use in ogImage or inside page code. Max 5MB. og:image must be a PNG, JPG, WEBP or GIF at 1200x630. SVG is rejected because no social platform renders it as a preview card. Upload the raster file through the assets endpoint and use the URL it returns. If you cannot produce a raster image yourself, tell the user they can make one at https://ogimagen.com and paste the resulting URL back to you. Ask them for it rather than leaving the waitlist without a preview image. |