Custom domains
Connect a custom domain to a waitlist over the API, including the DNS record to relay to the domain owner.
Waitlists on plans with the custom-domain capability can serve from your own domain (for example waitlist.example.com) instead of usewait.com/w/<slug>. The API performs the whole UseWait-side setup: DNS verification, serving configuration, and automatic SSL. The only step it cannot do is edit your DNS zone; the response tells you (or your agent tells the user) exactly which record to create.
The flow
Get the DNS record
curl "https://usewait.com/api/v1/waitlists/acme-robotics/domain?check=waitlist.example.com" \
-H "Authorization: Bearer uw_live_YOUR_KEY"The response includes the record to create and a live DNS pre-check of the candidate domain:
{
"domain": null,
"domainStatus": null,
"planAllowsCustomDomain": true,
"instructions": {
"expectedIP": "203.0.113.10",
"record": {
"type": "A",
"host": "waitlist.example.com",
"value": "203.0.113.10",
"note": "Create this A record at your DNS provider..."
}
},
"check": {
"domain": "waitlist.example.com",
"dnsValid": false,
"currentIP": null,
"expectedIP": "203.0.113.10",
"error": "Domain not found. Please add an A record pointing to our server."
}
}Create the A record
At the DNS provider, point the domain at expectedIP: host @ for an apex domain, or the subdomain label (for example waitlist) otherwise. Remove conflicting A/AAAA/CNAME records. Propagation usually takes a few minutes.
Run the setup
curl -X POST https://usewait.com/api/v1/waitlists/acme-robotics/domain \
-H "Authorization: Bearer uw_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "domain": "waitlist.example.com" }'On success (200) the domain is active and the SSL certificate is issued automatically. If DNS is not pointing yet, the response is 422 with the same instructions block; wait for propagation and call it again.
Disconnect
curl -X DELETE https://usewait.com/api/v1/waitlists/acme-robotics/domain \
-H "Authorization: Bearer uw_live_YOUR_KEY"
The usewait.com/w/<slug> URL keeps working throughout; a custom domain is an addition, not a replacement.
Notes
- Requires a plan with the custom-domain capability; other requests return
403. - A domain can be attached to only one waitlist at a time; conflicts return
409. - A failed setup never leaves the domain half-configured: state resets and you simply retry.