API Reference
Events
- GET
/eventsList / search eventsSearch and list events with rich filters. The public response omits startTime / endTime / onlineUrl (read schedules instead). groupByDate=true returns date-grouped results. - GET
/events/:idEvent detailRetrieve event detail. The path accepts an ID or a slug. Includes sessions, speakers, stages, tickets and organizers. - GET
/events/geojsonEvent map pinsReturns published events that have coordinates as a GeoJSON FeatureCollection. Not paginated; narrow the result with bbox. Filters have the same meaning as GET /events. - GET
/events/counts-by-dateDates that have eventsReturns only the dates within the given range that have events. Intended for marking days in a calendar; lighter than the list API. - GET
/events/my-entriesOwn participated eventsRetrieve events the authenticated user has registered for, ordered by entry date descending. - GET
/events/:eventId/is-staffCheck if you are event staffReturn whether the authenticated user is staff of the event. To obtain the role and its permission list, use GET /manage/events/:eventId/acl instead. - GET
/events/:eventId/chat-roomEvent chat roomGet the event's public chat room, creating it if it does not exist. Available to participants of events with chat enabled. - GET
/events/:eventId/participantsParticipantsRetrieve event participants (confirmed / checked in and accepting meetings). Access is controlled by the participant list visibility setting. - GET
/events/:eventId/participants/:userId/questionsA participant's survey answersReturn the survey questions and answers for a single event participant. Only public questions are included. Used when viewing a profile before requesting a meeting. - PATCH
/events/:eventId/entries/:entryId/meeting-preferenceMeeting request preferenceToggle whether the authenticated user accepts meeting requests for their own event entry. Setting it to false removes them from participant search and blocks new requests; existing meetings are unaffected. - GET
/events/:eventId/stagesList stagesList the stages (venues) of an event. - GET
/events/:eventId/sessionsList sessionsList the published sessions (timetable) of an event. - GET
/events/:eventId/sessions/:idSession detailRetrieve a single session. - GET
/events/:eventId/speakersList speakersList the published speakers of an event. - GET
/events/:eventId/speakers/:entryIdSpeaker detailRetrieve a single speaker, including their sessions. - GET
/events/:eventId/announcementsList event announcementsList event announcements. Participants only. - GET
/events/:eventId/announcements/:idEvent announcement detailRetrieve a single event announcement. Participants only. - GET
/events/:eventId/ticketsList ticketsList the ticket types on sale for an event. - GET
/events/:eventId/tickets/:ticketIdTicket detailRetrieve a single ticket type. - GET
/events/:eventId/questionsList survey questionsList the survey questions asked during event registration. - GET
/events/:eventId/my-questionsOwn survey answersReturn the survey questions and the authenticated user's own answers. - GET
/events/:eventId/meeting-spotsList meeting spotsList the meeting spots configured by the event organizers. - GET
/events/:eventId/referral-rankingReferral influence rankingRetrieve the influence ranking (top 100) based on the event's invitation chain. - GET
/events/:eventId/entriesOwn entry stateRetrieve the authenticated user's entries (non-canceled) for the specified event. - DELETE
/events/:eventId/entries/:entryIdCancel a registrationCancel your own registration. Already-canceled or checked-in registrations cannot be canceled. Paid tickets are refunded automatically according to the event's cancellation policy. - POST
/events/:eventId/entries/:entryId/invitation-codeCreate an invitation codeCreate a referral invitation code from the authenticated user's own entry. Each entry has one code; if it already exists, that code is returned (after syncing its target ticket and redemption limit with the ticket's current invitation settings). No request body is required. - GET
/events/:eventId/entries/:entryId/referral-ancestorsReferral ancestors (inviter chain)Walk the inviter chain upward from the given entry, returned nearest-first. Returns 403 unless the caller is a confirmed participant (CONFIRMED / CHECKED_IN) of the event. - GET
/events/:eventId/entries/:entryId/referral-descendantsReferral descendants (invite tree)Expand the invite tree downward from the given entry as root. Each node's direct children are paginated by childrenLimit + cursor and include a total child count (CONFIRMED / CHECKED_IN only). Returns 403 unless the caller is a confirmed participant. - POST
/events/:eventId/registerRegister for an eventRegister for an event. Free tickets are confirmed immediately as UNUSED (or PENDING for approval-based events). For paid tickets, complete payment first via the payment link or prepaid checkout endpoints. - POST
/events/:eventId/tickets/:ticketId/payment-linkCreate a payment linkCreate a Stripe payment link for a paid ticket. Send the user to the returned url; the registration is confirmed via webhook once payment completes. Use successUrl / cancelUrl to bring the user back to your own site after payment. - POST
/events/:eventId/tickets/:ticketId/prepaid-checkoutCreate prepaid checkoutCreate a Stripe Checkout session after storing the survey answers up front. Inventory is held for a limited time and released if payment is not completed. - POST
/events/:eventId/tickets/:ticketId/payment-intentCreate a payment sheet PaymentIntentCreate a PaymentIntent so a mobile app can charge through the Stripe payment sheet. Like prepaid checkout, survey answers and profile fields are stored first and inventory is held for a limited time. Entries are created by the payment-completed webhook. - PUT
/events/:eventId/entries/:entryId/transferTransfer a ticketTransfer an unused (UNUSED) ticket from a multi-ticket purchase to another user. Only the purchaser can transfer, and tickets marked non-transferable cannot be transferred. - POST
/questions/:questionId/answerAnswer a survey questionSubmit or update an answer to a survey question after registering. An existing answer is overwritten. - POST
/questions/:questionId/answer-imageUpload survey answer imageUpload an image for an image-type survey question and get the stored URL. Pass the URL as `answer` to POST /questions/:questionId/answer. - GET
/events/:eventId/meetingsList meetingsList the meetings the authenticated user is involved in, both sent and received. Meetings between other participants are not included. - POST
/events/:eventId/meetingsRequest a meetingRequest a meeting with another participant of the event. A direct chat room is created if one does not already exist, and the message body is posted as the first message. The meeting starts in the REQUESTED status with no spot or time set. - GET
/chat-rooms/:chatRoomId/meetingsMeetings of a chat roomReturn the meetings linked to a chat room. Used to render meeting controls or a meeting list inside a chat view. Returns 403 when the caller is not a member of the room. - PUT
/meetings/:meetingId/statusChange meeting statusHandles approve, reject, cancel, re-allow and undo-cancel in one endpoint. Whether a transition is permitted depends on the current status and the caller's role in the meeting. - PUT
/meetings/:meetingId/confirmSet meeting spot and timeSet the spot and time of an approved (CONFIRMED) meeting. Calling it again on a meeting that already has them changes the booking. - GET
/meetings/:meetingId/meeting-spotsSelectable meeting spotsList the meeting spots selectable for this meeting. Unlike the event-wide list (GET /events/:eventId/meeting-spots), the result is narrowed to the spots allowed for the participants' ticket types. - GET
/meetings/:meetingId/available-slotsAvailable time slotsReturn the time slots at which the meeting can be booked for the given spot and date. Slots are aligned to the event's meetingSlotDuration.