Skip to Content

Waitlist

Manage your project’s pre-launch waitlist. Requires the waitlist feature to be enabled for the project.

GET/v1/waitlist/signups

ParameterTypeDescription
searchstringFilter by email substring.
statusstringFilter by status: waiting, invited, or joined.
limitintegerPage size. Defaults to 25.
offsetintegerNumber of items to skip. Defaults to 0.

POST/v1/waitlist/signups

ParameterTypeDescription
emailrequiredstringEmail of the person joining.
referral_codestringReferral code from another entry's share link (`?ref=`).

GET/v1/waitlist/signups/:id

PATCH/v1/waitlist/signups/:id

ParameterTypeDescription
statusrequiredstringNew status: waiting, invited, or joined. invited stamps invited_at; joined stamps joined_at.

DELETE/v1/waitlist/signups/:id

Creating a signup requires paid-plan write access. The API sends no email — use the returned token to build the portal status link (/waitlist/status?token=...) and referral_code for the share link.

List signups

curl "https://api.supdesk.app/v1/waitlist/signups?status=waiting&limit=10" \ -H "Authorization: Bearer sd_live_..."
{ "data": [ { "id": "8f7a...", "email": "jamie@example.com", "status": "waiting", "position": 42, "referral_count": 3, "referral_code": "a1b2c3", "token": "9d8c7b...", "source": "api", "created_at": "2026-07-01T09:12:00Z", "invited_at": null, "joined_at": null } ], "pagination": { "limit": 25, "offset": 0, "has_more": false } }

Positions are computed live over waiting entries; invited and joined entries have a null position.

Create a signup

curl -X POST https://api.supdesk.app/v1/waitlist/signups \ -H "Authorization: Bearer sd_live_..." \ -H "Content-Type: application/json" \ -d '{ "email": "jamie@example.com" }'
{ "data": { "id": "8f7a...", "email": "jamie@example.com", "status": "waiting", "position": 42, "referral_count": 0, "referral_code": "a1b2c3", "token": "9d8c7b...", "source": "api", "created_at": "2026-07-01T09:12:00Z", "invited_at": null, "joined_at": null } }

Get a signup

curl "https://api.supdesk.app/v1/waitlist/signups/8f7a..." \ -H "Authorization: Bearer sd_live_..."
{ "data": { "id": "8f7a...", "email": "jamie@example.com", "status": "waiting", "position": 42, "referral_count": 3, "referral_code": "a1b2c3", "token": "9d8c7b...", "source": "api", "created_at": "2026-07-01T09:12:00Z", "invited_at": null, "joined_at": null } }

Returns a single signup, or 404 when the id is unknown.

Update a signup

curl -X PATCH https://api.supdesk.app/v1/waitlist/signups/8f7a... \ -H "Authorization: Bearer sd_live_..." \ -H "Content-Type: application/json" \ -d '{ "status": "invited" }'
{ "data": { "id": "8f7a...", "email": "jamie@example.com", "status": "invited", "position": null, "referral_count": 3, "referral_code": "a1b2c3", "token": "9d8c7b...", "source": "api", "created_at": "2026-07-01T09:12:00Z", "invited_at": "2026-07-02T10:00:00Z", "joined_at": null } }

Only status can be changed. Moving to invited stamps invited_at; moving to joined stamps joined_at. Requires paid-plan write access.

Delete a signup

curl -X DELETE https://api.supdesk.app/v1/waitlist/signups/8f7a... \ -H "Authorization: Bearer sd_live_..."

Deletes the signup permanently and returns 204. The same email can sign up again.

Last updated on