Accept an invite
Redeem a live invite code. This marks the waitlist entry as joined and consumes the code. Call it when someone completes your join flow.
POST /sdk/v1/waitlist/invites/{code}/accept
- Auth: None — public.
- Idempotent: redeeming an already-accepted code returns
200with the same result. It re-validates the code server-side, so you can call it directly without a prior validate step.
Path parameters
| Parameter | Type | Description |
|---|---|---|
code | string | The invite code (1–200 chars) to redeem. |
Response
200 OK when the invite is redeemed (or already had been):
| Field | Type | Description |
|---|---|---|
ok | true | Always true on success. |
email | string | The email the invite belonged to. |
waitlist | object | { id, name } of the waitlist. |
json
{
"ok": true,
"email": "ada@example.com",
"waitlist": { "id": "wl_launch", "name": "Launch waitlist" }
}Example
bash
curl -X POST \
https://api.uselucerna.app/sdk/v1/waitlist/invites/INV-7Q2K9F/acceptts
const res = await fetch(
`https://api.uselucerna.app/sdk/v1/waitlist/invites/${code}/accept`,
{ method: "POST" },
);
if (res.ok) {
const { email, waitlist } = await res.json();
// Invite redeemed — send them into the product.
} else {
const { code: reason } = await res.json(); // "expired" | "revoked" | "not_found"
}Errors
| Status | code | When |
|---|---|---|
400 | invalid_request | The code is empty or longer than 200 characters. |
404 | not_found | No invite matches this code. |
410 | expired / revoked | The invite has expired or been revoked and can't be redeemed. |
See Errors for the response shape and retry guidance.