confirm_attendee
ChatGPTConfirms a pending attendee registration. Sets confirmed = true and records the confirming user. Side effect: confirming is what triggers the event's welcome/confirmation email to the attendee's own inbox, if the attendee type has welcome emails enabled. Sent mail cannot be recalled.
create_attendee
ChatGPTRegisters a new attendee for the event. The payload is wrapped under the attendee key. Required fields: first_name, last_name, email, attendee_type_id. (email may be skipped only when the selected attendee_type has email_required disabled; default is required.) If a draft attendee already exists for the same email + event it is promoted; otherwise a new attendee is created and registered. An optional top-level coupon_code is applied after a successful registration. Precondition: registration must be enabled for the event; otherwise the request fails with 422 "Registration for this event is not enabled". Side effect: may send the event's welcome email to the attendee's own inbox, if the attendee type has welcome emails enabled and the registration is not left as a draft.
create_attendee_type
ChatGPTCreates a new attendee type. Required fields: name and limit.
create_attendee_type_custom_field
ChatGPTCreates a new custom field on an attendee type. Required: name, input_type. Multiple-choice inputs (select, checkbox, radio) require values as a JSON array. Each value must be a non-empty string without commas (the legacy storage uses comma-separated serialization). `terms_conditions` input requires terms_url. File uploads are not supported via API — the server always forces terms_mode=url. Default fields cannot be created via this endpoint (they are auto-created with the AttendeeType).
create_checkpoint
ChatGPTCreates a new checkpoint for the given event. Requires create_checkpoints permission. Fails with 422 if: - name or checkpoint_type are missing - The event has exceeded its checkpoint plan limit
create_event
ChatGPTCreates a new event in the authenticated user's account. Attendance mode rules: - offline: Requires city_id. Timezone derived from the city. - online: Requires virtual_timezone. No city_id needed. - mixed: Requires both city_id and virtual_timezone. Dates must be sent as dd/mm/yyyy - HH:MM.
create_payment
ChatGPTCreates a manual deposit payment for an attendee. Internally calls Payment.manual_payment(attendee, params, current_user) with operation_type set to deposit.
create_session
ChatGPTCreates a new session (Workshop slot) under a WorkshopDefinition. Required fields: start_date and end_date. The session inherits the WorkshopDefinition's name/description. Streaming, chat, Zoom and related integrations are not configurable via this API. Precondition: the event must have multiple sessions enabled; otherwise the request fails with 422 "You cannot create a workshop session because multiple sessions are disabled for this event.". A workshop's first session is created through create_workshop (via workshops_attributes).
create_speaker
ChatGPTCreates a new speaker. Required field: name. Image fields (picture, banner) are not supported via this API. The attendee association is not exposed in this version.
create_workshop
ChatGPTCreates a new workshop definition together with at least one session (workshops_attributes). Required fields: name (multilingual hash) and workshops_attributes (non-empty). Image fields (banner_image, background_image) are not supported via this API. The response carries the workshop definition only; fetch the created session(s) and their GUIDs with list_sessions.
delete_checkpoint
ChatGPTSoft-deletes a checkpoint by setting archived: true. Requires delete_checkpoints permission. The checkpoint is no longer returned in listings but is not removed from the database. ⚠️ DESTRUCTIVE OPERATION LLM/MCP clients MUST obtain explicit end-user confirmation before invoking: present the target resource with user-recognizable identifiers and receive an affirmative response. Confirmation MUST NOT be inferred from dialogue or context.
delete_payment
ChatGPTDeletes a deposit payment. Only payments with operation = deposit are deletable.
destroy_session
ChatGPTPerforms a destructive mutation to transition a workshop session state to 'archived'. - Cascade Behavior: Atomically tearing down all related active enrollment fixtures. - Idempotency: Non-idempotent lookup; subsequent DELETE operations on the same GUID scope will resolve to a 404 response. ⚠️ DESTRUCTIVE OPERATION LLM/MCP clients MUST obtain explicit end-user confirmation before invoking: present the target resource with user-recognizable identifiers and receive an affirmative response. Confirmation MUST NOT be inferred from dialogue or context.
enroll_attendee_in_session
ChatGPTEnrolls an attendee in a specific workshop session. This endpoint safely handles concurrent requests to prevent overbooking and automatically recomputes related attendee charges. Validation Rules Availability: Checks seat capacity and enforces per-attendee-type limits. Scheduling: Prevents double-enrollment and time overlaps with other registered sessions. Timeline:* Ensures the booking deadline has not passed.
get_attendee
ChatGPTReturns a single attendee scoped to the event by its attendee_uuid. Cached for 5 minutes.
get_attendee_event_checkin
ChatGPTReturns the event-level check-in status of an attendee. Indicates whether the attendee has checked in to the event and, if so, the check-in timestamp converted to the event's local timezone (format: YYYY-MM-DD HH:MM:SS).
get_attendee_type
ChatGPTReturns a single attendee type by ID.
get_attendee_type_form_schema
ChatGPTReturns the ordered list of form fields the admin uses to create an Attendee of this AttendeeType. Includes default fields (first_name, email, etc.) and custom fields. Includes admin-only fields. Skips fields with display=false.
get_checkpoint
ChatGPTReturns a single non-archived checkpoint by ID for the event. Requires view_checkpoints permission.
get_event
ChatGPTReturns the details of a single event by its UUID. Authentication is optional. When unauthenticated, only non-archived public events are returned.
get_event_modules
ChatGPTReturns boolean flags indicating which modules (activities, checkpoints) are enabled for the event.
get_event_summary
ChatGPTReturns lightweight aggregated metrics for an event: attendee totals (attendees: non-draft, non-archived registrations in any confirmation state; drafts; rejected: archived without confirmation), date range with timezone, per-attendee-type seat usage, and top 5 workshops by check-in count. All counts are computed with grouped SQL queries (no N+1) regardless of the number of attendee types or workshops. Caching: Responses are cached for 1 minute.
get_session
ChatGPTReturns a single workshop session by GUID.
get_speaker
ChatGPTReturns a single speaker by ID, scoped to the event.
get_workshop
ChatGPTReturns a single workshop definition by GUID.
get_workshop_stats
ChatGPTReturns used seats and check-in counts for a single workshop session. guid is the session GUID returned by list_sessions/get_session, not the workshop definition GUID used by get_workshop.
list_attendee_checkpoint_checkins
ChatGPTReturns a paginated list of checkpoint check-in logs for an attendee. Each log records an entry (and optional exit) at a named checkpoint. Includes the checkpoint name, entry timestamp, and checkout status. Logs are ordered by creation time descending (most recent first). The response includes total_entries for the unfiltered count.
list_attendee_type_custom_fields
ChatGPTReturns the form fields configured for an attendee type. Default fields (first_name, email, etc.) and custom fields are both included. Filters: by default returns only active fields (archived: false, draft: false). Override with ?archived=true|all and ?draft=true|all.
list_attendee_type_group_limits
ChatGPTReturns per-group capacity limits for an attendee type.
list_attendee_types
ChatGPTReturns a paginated list of attendee types for an event. Only non-archived, non-draft types are returned.
list_attendee_workshop_checkins
ChatGPTReturns a paginated list of workshop check-ins for an attendee. Only includes workshops where the attendee has an active registration AND has physically checked in (checked_in = true). Results are ordered by check-in date descending (most recent first). The response includes total_entries for the unfiltered count.
list_attendees
ChatGPTReturns a paginated list of attendees for a given event. By default only non-archived, non-draft, non-rejected attendees are returned. Use the filter query parameters to change this scope.
list_checkpoints
ChatGPTReturns the paginated list of non-archived checkpoints for the event. Requires view_checkpoints permission.
list_event_custom_fields
ChatGPTReturns the account-level custom field definitions applicable to every event in the authenticated user's account. This endpoint is account-scoped, not event-scoped: it takes no uuid path parameter. The id of each definition (cast to string) is the key expected inside custom_fields_data on create_event / update_event. Only active fields are returned (archived: false, draft: false), ordered by order ASC. Caching: Responses are cached for 30 minutes.
list_events
ChatGPTReturns a paginated list of events belonging to the authenticated user's account. Events are filtered by the user's security access level and account scope. Archived events are excluded automatically. Sorting: Use the order parameter to sort results. Format: column_name direction (e.g., start_date desc, name asc). Supports up to two sort fields separated by comma. Pagination: Default page size is 24 (max 24). Use page[number] and page[size] to control pagination. Caching: Responses are cached for 1 minute. Rate limit: 100 requests/minute per IP (600 for whitelisted IPs).
list_payments
ChatGPTReturns the payments (deposits and charges) for a given attendee.
list_sessions
ChatGPTReturns the sessions (concrete time-slots) registered under a WorkshopDefinition.
list_speakers
ChatGPTReturns a paginated list of speakers for an event. By default only non-archived, non-draft speakers are returned. Use ?archived=true to list only archived speakers, or ?archived=all to include both.
list_workshops
ChatGPTReturns a paginated list of workshop definitions for an event. Excludes archived, sponsor-owned and empty (no active sessions) definitions by default.
reject_attendee
ChatGPTRejects an attendee registration. Archives the attendee if previously confirmed and unchecks-in if checked in. Side effect: sends a rejection email to the attendee's own inbox. Sent mail cannot be recalled.
resend_attendee_email
ChatGPTResends the welcome/confirmation email to a confirmed attendee. Returns 422 if the attendee is not eligible (draft, archived, unconfirmed, missing email, no attendee_type, or unpaid when payment is required).
search_cities
ChatGPTCase-insensitive substring search over the global cities catalog. Useful to resolve a human-readable location into a numeric city_id before creating an offline or mixed event. Each result is preloaded with its region and country to avoid N+1 queries on the caller side. Behavior: - Matches name LIKE "%q%" (substring, case-insensitive in MySQL utf8_general_ci). - Wildcards % and _ in q are escaped — no client-side wildcard matching. - Optional country_iso_code narrows results to a single country (case-insensitive). - Results are ordered by name ASC. - Capped at 20 results (no pagination — refine the query instead). - Response is cacheable for 30 minutes (Cache-Control: public, max-age=1800). Rate limit: 100 requests/minute per IP (600 for whitelisted IPs).
unenroll_attendee_from_session
ChatGPTRemoves an attendee's enrollment from a specific workshop session. Key Effects Participation: Cancels the attendee's registration for this session. Charges: Triggers an automatic recomputation of the associated attendee charges. ⚠️ DESTRUCTIVE OPERATION LLM/MCP clients MUST obtain explicit end-user confirmation before invoking: present the target resource with user-recognizable identifiers and receive an affirmative response. Confirmation MUST NOT be inferred from dialogue or context.
update_attendee
ChatGPTUpdates the profile of an existing attendee. Payload is wrapped under the attendee key. Only provided fields are modified. Side effect: may send the event's welcome email to the attendee's own inbox, if the attendee type has welcome emails enabled and the email had not been sent yet.
update_attendee_type
ChatGPTUpdates an existing attendee type. Only provided fields are modified.
update_attendee_type_custom_field
ChatGPTUpdates an existing custom field. Default fields support a restricted set of mutations (only required, display, allow_duplicate_values for email, min_age for birthdate).
update_checkpoint
ChatGPTUpdates an existing checkpoint. Requires edit_checkpoints permission. Only fields included in the request body are updated.
update_event
ChatGPTUpdates an existing event. Only the provided fields are modified.
update_session
ChatGPTUpdates an existing workshop session. Only the provided fields are modified. Streaming, chat, Zoom and related integrations are not configurable via this API.
update_speaker
ChatGPTUpdates an existing speaker. Only provided fields are modified. Image fields (picture, banner) are not supported via this API. The attendee association is not exposed in this version.
update_workshop
ChatGPTUpdates a workshop definition. Only name and description (multilingual) are accepted; nested workshops_attributes is ignored on update.