POST/api/waitlist/{slug}/signupJoin a waitlist
Adds an email to the specified waitlist. Returns the new signup’s position and a personal referral link. If the email is already on the waitlist, returns 409 with the existing record so you can show the same confirmation UI.
Rate limit: 10 / min per (IP, slug); 30 / min per IP overall
Example
curl -X POST https://buzzlist.app/api/waitlist/<slug>/signup \
-H "content-type: application/json" \
-d '{"email":"someone@example.com","name":"Optional","ref":"optional-referral-code"}'
Responses
201Signup created.
{
"signup": {
"position": 42,
"referralCode": "abc123",
"referralLink": "https://buzzlist.app/<slug>?ref=abc123",
"referralCount": 0
},
"totalSignups": 42
}
409Email already on the waitlist. Body contains the existing signup record (same shape as 201).
400{"error": "invalid_email"} or {"error": "invalid_body"}
403{"error": "PLAN_LIMIT_SIGNUPS_<TIER>"} when the owner’s plan is at its signup cap.
404{"error": "not_found"} when the slug does not exist.
429{"error": "rate_limited"}
GET/api/waitlist/{slug}/positionLook up signup position
Returns the current queue position and referral state for an email already on a waitlist. Useful for building a “check my position” UI without storing the position client-side.
Rate limit: 30 / min per IP
Example
curl "https://buzzlist.app/api/waitlist/<slug>/position?email=someone@example.com"
Responses
200Current position.
{
"position": 36,
"signupOrder": 42,
"referralCount": 2,
"referralCode": "abc123",
"referralLink": "https://buzzlist.app/<slug>?ref=abc123",
"queueMode": "referral-weighted"
}
400{"error": "missing_email"}
404{"error": "not_found"} — slug unknown or email not on this waitlist.
429{"error": "rate_limited"}
Public waitlist JSON
Returns the same public information shown on the waitlist page, as JSON. Handy for building previews, embeds, or agent-driven flows without parsing HTML. Cached for 60 seconds at the edge.
Example
curl https://buzzlist.app/<slug>/data
Responses
200Public waitlist data.
{
"slug": "my-launch",
"name": "My Launch",
"headline": "Coming this fall",
"description": null,
"signupCount": 128,
"queueMode": "fifo",
"referralsEnabled": true,
"branding": {
"primaryColor": "#D4870F",
"ctaText": "Join the waitlist",
"successMessage": "You're on the list!"
},
"createdAt": "2026-04-01T12:00:00.000Z"
}
404{"error": "not_found"}