Waitlist
Manage your project’s pre-launch waitlist. Requires the waitlist feature to be enabled for the project.
GET/v1/waitlist/signups
| Parameter | Type | Description |
|---|---|---|
search | string | Filter by email substring. |
status | string | Filter by status: waiting, invited, or joined. |
limit | integer | Page size. Defaults to 25. |
offset | integer | Number of items to skip. Defaults to 0. |
POST/v1/waitlist/signups
| Parameter | Type | Description |
|---|---|---|
emailrequired | string | Email of the person joining. |
referral_code | string | Referral code from another entry's share link (`?ref=`). |
GET/v1/waitlist/signups/:id
PATCH/v1/waitlist/signups/:id
| Parameter | Type | Description |
|---|---|---|
statusrequired | string | New 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.