Register a participant
Anonymous-friendly. Works without an Authorization header — the link-share viral loop preserved. Anonymous calls are rate-limited per IP using the strict `anon` tier (60/min reads, 6/min writes, 200/day). Authenticated calls use the credential's tier as usual.
Anonymous-friendly. Works without an Authorization header — the link-share viral loop preserved. Anonymous calls are rate-limited per IP using the strict anon tier (60/min reads, 6/min writes, 200/day). Authenticated calls use the credential's tier as usual.
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/signups/497f6eca-6276-4993-bfeb-53cbbbba6f08/participants" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "email": "user@example.com", "selections": [ { "type": "slot", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "quantity": 1 } ] }'{
"success": true,
"confirmationToken": "string",
"confirmed": [
{
"type": "slot",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7"
}
],
"failed": [
{
"type": "slot",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"reason": "full",
"message": "string"
}
]
}{
"type": "https://thesignup.app/problems/not-found",
"title": "Not found",
"status": 404,
"detail": "string",
"code": "missing_credentials",
"errors": [
{
"path": "string",
"message": "string"
}
],
"cause": {
"property1": null,
"property2": null
}
}{
"type": "https://thesignup.app/problems/not-found",
"title": "Not found",
"status": 404,
"detail": "string",
"code": "missing_credentials",
"errors": [
{
"path": "string",
"message": "string"
}
],
"cause": {
"property1": null,
"property2": null
}
}{
"type": "https://thesignup.app/problems/not-found",
"title": "Not found",
"status": 404,
"detail": "string",
"code": "missing_credentials",
"errors": [
{
"path": "string",
"message": "string"
}
],
"cause": {
"property1": null,
"property2": null
}
}{
"type": "https://thesignup.app/problems/not-found",
"title": "Not found",
"status": 404,
"detail": "string",
"code": "missing_credentials",
"errors": [
{
"path": "string",
"message": "string"
}
],
"cause": {
"property1": null,
"property2": null
}
}{
"type": "https://thesignup.app/problems/not-found",
"title": "Not found",
"status": 404,
"detail": "string",
"code": "missing_credentials",
"errors": [
{
"path": "string",
"message": "string"
}
],
"cause": {
"property1": null,
"property2": null
}
}List participants on a signup GET
Newest first. Slot/item details are joined inline.
Cancel a registration DELETE
Removes a single participant row. Use this for organizer-driven cleanup (e.g. removing a duplicate or no-show). Participant-driven cancellation flows still go through the confirmation-token URL.