Skip to main content

Guestlist API

Create events, manage guest lists, process RSVPs, handle check-ins, and sell tickets with optional on-chain payment verification on Base.
Event data is stored in memory and does not persist across server restarts. Ticket purchases with a non-zero tier price are verified against the buyer’s USDC balance on Base mainnet.

List events

Returns all events.

Response

Get event

Returns a single event with its full guestlist.

Query parameters

ParameterTypeRequiredDescription
eventIdstringYesEvent identifier

Response

FieldTypeDescription
idstringEvent identifier
namestringEvent name
datestringEvent date
venuestringEvent venue
capacitynumberMaximum number of guests
guestlistarrayList of guest objects
guestlist[].idstringGuest identifier
guestlist[].namestringGuest name
guestlist[].emailstringGuest email (optional)
guestlist[].walletstringGuest wallet address (optional)
guestlist[].statusstringOne of: pending, confirmed, checked-in, cancelled
guestlist[].tierstringOne of: vip, guestlist, general, press
guestlist[].timestampnumberUnix timestamp (milliseconds) when the guest was added
guestlist[].checkedInAtnumberUnix timestamp (milliseconds) when the guest checked in (only present after check-in)
tiersarrayAvailable ticket tiers
tiers[].namestringTier name
tiers[].pricestringTier price in token units (0 for free)
tiers[].countnumberNumber of spots in this tier

Errors

CodeDescription
404Event not found

Create event

Request body

FieldTypeRequiredDescription
actionstringYesMust be create-event
namestringYesEvent name
datestringYesEvent date
venuestringYesEvent venue
capacitynumberNoMaximum guests (default: 200)
tiersarrayNoTicket tiers. Defaults to general (150 spots) and guestlist (50 spots) tiers, both free.

Response

RSVP

Adds a guest to an event’s guestlist with pending status.

Request body

FieldTypeRequiredDescription
actionstringYesMust be rsvp
eventIdstringYesEvent identifier
namestringYesGuest name
emailstringNoGuest email
walletstringNoGuest wallet address
tierstringNoTicket tier (default: general). Options: vip, guestlist, general, press

Response

Errors

CodeDescription
400Event full — the guestlist has reached the event capacity
404Event not found

Check in

Marks a guest as checked in. You can identify the guest by either guestId or wallet.

Request body

FieldTypeRequiredDescription
actionstringYesMust be check-in
eventIdstringYesEvent identifier
guestIdstringConditionalGuest identifier (provide this or wallet)
walletstringConditionalGuest wallet address (provide this or guestId)

Response

Errors

CodeDescription
400Already checked in
404Event not found
404Guest not found

Buy ticket

Purchases a ticket for an event. When the tier price is non-zero, the buyer’s USDC balance on Base is verified before confirming.

Request body

FieldTypeRequiredDescription
actionstringYesMust be buy-ticket
eventIdstringYesEvent identifier
namestringYesBuyer name
emailstringNoBuyer email
walletstringYesBuyer wallet address (used for on-chain payment verification)
tierstringYesTicket tier to purchase

Response

Guests added via buy-ticket receive confirmed status immediately, unlike rsvp which creates guests with pending status.

Errors

CodeDescription
400Invalid tier — the specified tier does not exist for this event
400Insufficient payment — the wallet’s on-chain USDC balance is below the tier price
404Event not found

Common errors

CodeDescription
400Invalid action
500Internal error