> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.helpyousponsor.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an event

> Creates a draft by default, resolves a unique slug and organization timezone, normalizes event dates to UTC and applies an optional starter preset. Historical templates are archived with public registration and messaging disabled. Requires the event management capability; all referenced records must belong to this event and organization.



## OpenAPI

````yaml post /admin/events
openapi: 3.0.0
info:
  title: Gratona API
  description: >-
    REST API for the Gratona fundraising platform, including donor, donation,
    sponsorship, program, event, and integration workflows. Endpoints are
    organized by tag. Most endpoints require either a Passport bearer token or
    an issued API key — see the Security Schemes section.
  contact:
    name: Gratona Engineering
    url: https://gratona.com
    email: devs@gratona.com
  version: 1.0.0
servers:
  - url: https://api.gratona.com/v1
    description: Server Version 1.0.0
security: []
tags:
  - name: Auth
    description: >-
      Login, signup, logout, password reset, and email verification for admin
      users and donors.
  - name: Donors
    description: >-
      Donor records: CRUD, profile fields, household linkage, search, filters,
      merge, and duplicate detection.
  - name: Donations
    description: >-
      Individual donation records, recurring commitments, soft credits, refunds,
      designations, and exports.
  - name: Sponsorships
    description: >-
      Donor-to-entity commitment relationships, lifecycle transitions, and
      commitment-specific filters.
  - name: Entities
    description: >-
      Recipient records (children, families, projects, animals, etc.), their
      status, and entity-level fields.
  - name: Programs
    description: >-
      Program / campaign configuration: hierarchy, settings, and program-level
      metadata.
  - name: Forms
    description: >-
      Custom form builder (HysForm), form fields, standardized donor fields, and
      field migrations.
  - name: Trips
    description: >-
      Mission-trip management: trips, participants, budgets, tasks,
      e-signatures, fundraising milestones, and background checks.
  - name: Communications
    description: >-
      Email templates, SMS, newsletters, donor email manager, and per-donor
      notes.
  - name: Payments
    description: >-
      Payment-gateway management (Stripe, PayPal, Flutterwave, QuickBooks).
      Excludes inbound webhooks — see the Webhooks tag.
  - name: Reports
    description: Dashboards, analytics, scheduled reports, and exports.
  - name: Admin
    description: >-
      Client-account administration: users, groups/permissions, settings,
      integrations, and account lifecycle.
  - name: Donor Portal
    description: >-
      Endpoints consumed by the donor-facing portal (donor login, dashboard,
      donation history, messages).
  - name: Recipient Portal
    description: Endpoints consumed by the recipient-facing portal.
  - name: Public
    description: >-
      Unauthenticated public endpoints: donor signup, public trip pages,
      peer-to-peer campaigns, public checkout.
  - name: Webhooks
    description: >-
      Inbound webhooks from third parties (Stripe, PayPal, Flutterwave, Checkr,
      DropboxSign). Annotated minimally for reference; payload shapes are owned
      by the upstream provider.
  - name: Events
    description: >-
      Event setup, invitations, registration, ticketing, attendance and event
      reporting.
  - name: Journeys
    description: >-
      Journey graphs, activation, enrollment, message templates and event
      follow-up automations.
  - name: Tasks
    description: Workspace tasks, assignments, saved task views and record collaboration.
  - name: Fundraising
    description: >-
      Fundraising portfolios, stewardship plans, giving anniversaries and
      personal donor follow-up.
  - name: Impact Stories
    description: Story intake, review, assets, consent and publication workflows.
  - name: Integrations
    description: Workspace integration connections, mappings, synchronization and recovery.
  - name: Email Calendar
    description: Connected email/calendar accounts and donor interactions.
  - name: Spaces
    description: Workspace Spaces and collaborative Pages.
  - name: Library
    description: Workspace documents, source connections, files and analysis.
  - name: Intelligence
    description: Donor intelligence and Tali workspace workflows.
  - name: Automation
    description: >-
      V3 automation primitive discovery, input validation, invocation and Zapier
      contracts.
  - name: Schema
    description: V3 model, enum, capability and scope discovery.
  - name: Zapier
    description: Zapier automation connections, polling feeds and actions.
  - name: Files
    description: Files
  - name: Client
    description: Client
  - name: Payment Gateways
    description: Payment Gateways
  - name: Email Settings
    description: Email Settings
  - name: Admin Dashboard
    description: Admin Dashboard
  - name: Recipients
    description: Recipients
  - name: Historical Archived Updates
    description: Historical Archived Updates
  - name: Team & access
    description: Team & access
  - name: Settings
    description: Settings
  - name: Notifications
    description: Notifications
  - name: Participation
    description: Participation
  - name: Users
    description: Users
  - name: Wrapped
    description: Wrapped
  - name: Donor SignUp
    description: Donor SignUp
  - name: Frontend
    description: Frontend
  - name: User
    description: User
  - name: Workspace
    description: Workspace
paths:
  /admin/events:
    post:
      tags:
        - Events
      summary: Create an event
      description: >-
        Creates a draft by default, resolves a unique slug and organization
        timezone, normalizes event dates to UTC and applies an optional starter
        preset. Historical templates are archived with public registration and
        messaging disabled. Requires the event management capability; all
        referenced records must belong to this event and organization.
      operationId: EventController_store
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - name
              properties:
                name:
                  description: Name.
                  type: string
                  maxLength: 255
                  example: Annual Gala
                slug:
                  description: Slug.
                  type: string
                  maxLength: 255
                  pattern: ^[a-z0-9-]+$
                  example: annual-gala
                  nullable: true
                description:
                  description: Description.
                  type: string
                  example: Example
                  nullable: true
                type:
                  description: Type.
                  type: string
                  maxLength: 80
                  example: Example
                  nullable: true
                status:
                  description: Status.
                  type: string
                  enum:
                    - draft
                    - published
                    - registration_open
                    - registration_closed
                    - live
                    - completed
                    - reconciled
                    - archived
                    - null
                  example: draft
                  nullable: true
                visibility:
                  description: Visibility.
                  type: string
                  enum:
                    - public
                    - unlisted
                    - invite_only
                    - internal
                    - null
                  example: public
                  nullable: true
                search_indexing_enabled:
                  description: Search indexing enabled.
                  type: boolean
                  example: false
                  nullable: true
                timezone:
                  description: >-
                    IANA timezone; legacy aliases are accepted except Factory.
                    Omitted values use the organization timezone on creation.
                  type: string
                  maxLength: 64
                  example: Example
                  nullable: true
                starts_at:
                  description: >-
                    Starts at. Date without offset is interpreted in the event
                    timezone.
                  type: string
                  format: date-time
                  example: '2026-12-20T18:00:00Z'
                  nullable: true
                ends_at:
                  description: >-
                    Ends at. Date without offset is interpreted in the event
                    timezone. Must be at least starts_at.
                  type: string
                  format: date-time
                  example: '2026-12-20T18:00:00Z'
                  nullable: true
                registration_opens_at:
                  description: >-
                    Registration opens at. Date without offset is interpreted in
                    the event timezone.
                  type: string
                  format: date-time
                  example: '2026-12-20T18:00:00Z'
                  nullable: true
                registration_closes_at:
                  description: >-
                    Registration closes at. Date without offset is interpreted
                    in the event timezone.
                  type: string
                  format: date-time
                  example: '2026-12-20T18:00:00Z'
                  nullable: true
                location_name:
                  description: Location name.
                  type: string
                  maxLength: 255
                  example: Example
                  nullable: true
                location_address:
                  description: Location address.
                  type: string
                  example: Example
                  nullable: true
                public_location_mode:
                  description: Public location mode.
                  type: string
                  enum:
                    - hidden
                    - summary
                    - venue_only
                    - full
                    - null
                  example: hidden
                  nullable: true
                public_location_summary:
                  description: Public location summary.
                  type: string
                  maxLength: 255
                  example: Example
                  nullable: true
                full_address_release_policy:
                  description: Full address release policy.
                  type: string
                  enum:
                    - never
                    - after_confirmation
                    - confirmation_email
                    - scheduled_reminder
                    - null
                  example: never
                  nullable: true
                full_address_release_at:
                  description: >-
                    Full address release at. Date without offset is interpreted
                    in the event timezone.
                  type: string
                  format: date-time
                  example: '2026-12-20T18:00:00Z'
                  nullable: true
                communications_hold:
                  description: Communications hold.
                  type: boolean
                  example: false
                  nullable: true
                release_communications_hold_confirmed:
                  description: >-
                    Required true to release an existing communications hold;
                    releasing permits future sends and sends nothing
                    immediately.
                  type: boolean
                  example: false
                  nullable: true
                registration_identity_mode:
                  description: Registration identity mode.
                  type: string
                  enum:
                    - minimal_rsvp
                    - organization_donor_form
                    - custom_event_fields
                    - null
                  example: minimal_rsvp
                  nullable: true
                virtual_url:
                  description: Virtual url.
                  type: string
                  maxLength: 255
                  example: Example
                  nullable: true
                capacity:
                  description: Capacity.
                  type: integer
                  minimum: 1
                  example: 1
                  nullable: true
                program_id:
                  description: >-
                    Program id. Referenced record must belong to the
                    authenticated organization.
                  type: integer
                  example: 1
                  nullable: true
                campaign_program_id:
                  description: >-
                    Campaign program id. Referenced record must belong to the
                    authenticated organization.
                  type: integer
                  example: 1
                  nullable: true
                recipient_group_entity_id:
                  description: >-
                    Recipient group entity id. Referenced record must belong to
                    the authenticated organization. Sample trip records are
                    unavailable.
                  type: integer
                  example: 1
                  nullable: true
                trip_id:
                  description: >-
                    Trip id. Referenced record must belong to the authenticated
                    organization. Sample trip records are unavailable.
                  type: integer
                  example: 1
                  nullable: true
                designation_entity_id:
                  description: >-
                    Designation entity id. Referenced record must belong to the
                    authenticated organization. Sample trip records are
                    unavailable.
                  type: integer
                  example: 1
                  nullable: true
                cover_image_id:
                  description: >-
                    Cover image id. Referenced record must belong to the
                    authenticated organization.
                  type: integer
                  example: 1
                  nullable: true
                settings:
                  description: Settings.
                  properties:
                    program_setting_id:
                      description: >-
                        Program setting id. Referenced record must belong to the
                        authenticated organization.
                      type: integer
                      example: 1
                      nullable: true
                    public_page_enabled:
                      description: Public page enabled.
                      type: boolean
                      example: false
                      nullable: true
                    show_sponsors:
                      description: Show sponsors.
                      type: boolean
                      example: false
                      nullable: true
                    show_remaining_capacity:
                      description: Show remaining capacity.
                      type: boolean
                      example: false
                      nullable: true
                    allow_donation_addon:
                      description: Allow donation addon.
                      type: boolean
                      example: false
                      nullable: true
                    allow_recurring_gift_ask:
                      description: Allow recurring gift ask.
                      type: boolean
                      example: false
                      nullable: true
                    allow_child_sponsorship_ask:
                      description: Allow child sponsorship ask.
                      type: boolean
                      example: false
                      nullable: true
                    recipient_sponsorship_program_id:
                      description: >-
                        Sponsorship program in the organization, required when
                        enabling the child-sponsorship ask unless a legacy
                        program_id supplies it. Events, trips, campaign and
                        peer_to_peer programs are rejected.
                      type: integer
                      example: 1
                      nullable: true
                    cover_fees_enabled:
                      description: Cover fees enabled.
                      type: boolean
                      example: false
                      nullable: true
                    processing_percentage:
                      description: Processing percentage.
                      type: number
                      maximum: 100
                      minimum: 0
                      example: 1
                      nullable: true
                    reservation_minutes:
                      description: Reservation minutes.
                      type: integer
                      maximum: 60
                      minimum: 5
                      example: 30
                      nullable: true
                    public_offline_payment_enabled:
                      description: Public offline payment enabled.
                      type: boolean
                      example: false
                      nullable: true
                    magic_link_management_enabled:
                      description: Magic link management enabled.
                      type: boolean
                      example: false
                      nullable: true
                    event_day_check_in_enabled:
                      description: Event day check in enabled.
                      type: boolean
                      example: false
                      nullable: true
                    check_in_blocked_payment_statuses:
                      description: Check in blocked payment statuses.
                      type: array
                      items:
                        description: '*.'
                        type: string
                        enum:
                          - pending
                          - failed
                          - refunded
                          - unpaid
                        example: pending
                      nullable: true
                    include_pending_orders_in_event_revenue:
                      description: Include pending orders in event revenue.
                      type: boolean
                      example: false
                      nullable: true
                    wallet_passes_enabled:
                      description: Wallet passes enabled.
                      type: boolean
                      example: false
                      nullable: true
                    auction_enabled:
                      description: Auction enabled.
                      type: boolean
                      example: false
                      nullable: true
                    privacy_mode:
                      description: Privacy mode.
                      type: string
                      maxLength: 80
                      example: Example
                      nullable: true
                    check_payment_instructions:
                      description: Check payment instructions.
                      type: string
                      maxLength: 1000
                      example: Example
                      nullable: true
                    donor_hysform_id:
                      description: >-
                        Donor hysform id. Referenced record must belong to the
                        authenticated organization.
                      type: integer
                      example: 1
                      nullable: true
                    emailset_id:
                      description: >-
                        Emailset id. Referenced record must belong to the
                        authenticated organization.
                      type: integer
                      example: 1
                      nullable: true
                    confirmation_email_template_id:
                      description: >-
                        Confirmation email template id. Referenced record must
                        belong to the authenticated organization.
                      type: integer
                      example: 1
                      nullable: true
                    reminder_email_template_id:
                      description: >-
                        Reminder email template id. Referenced record must
                        belong to the authenticated organization.
                      type: integer
                      example: 1
                      nullable: true
                    follow_up_email_template_id:
                      description: >-
                        Follow up email template id. Referenced record must
                        belong to the authenticated organization.
                      type: integer
                      example: 1
                      nullable: true
                    donation_ask_amounts:
                      description: Donation ask amounts.
                      type: array
                      items:
                        description: '*.'
                        type: number
                        minimum: 0
                        example: 1
                        nullable: true
                      nullable: true
                  type: object
                  nullable: true
                  additionalProperties: true
                template:
                  description: Template.
                  type: string
                  maxLength: 80
                  example: Example
                  nullable: true
                starter_preset:
                  description: Starter preset.
                  type: string
                  example: Example
                  nullable: true
                seed_standard_communications:
                  description: Seed standard communications.
                  type: boolean
                  example: false
                  nullable: true
              type: object
      responses:
        '201':
          description: Create an event completed.
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/EventApiEvent'
                type: object
        '401':
          description: Authentication is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Insufficient permission or feature access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Invalid chronology, access settings, attribution references or
            starter preset.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestRejection'
      security:
        - bearerAuth: []
        - apiKeyAuth: []
components:
  schemas:
    EventApiEvent:
      properties:
        name:
          description: Name.
          type: string
          maxLength: 255
          example: Annual Gala
        slug:
          description: Slug.
          type: string
          maxLength: 255
          pattern: ^[a-z0-9-]+$
          example: annual-gala
          nullable: true
        description:
          description: Description.
          type: string
          example: Example
          nullable: true
        type:
          description: Type.
          type: string
          maxLength: 80
          example: Example
          nullable: true
        status:
          description: Status.
          type: string
          enum:
            - draft
            - published
            - registration_open
            - registration_closed
            - live
            - completed
            - reconciled
            - archived
            - null
          example: draft
          nullable: true
        visibility:
          description: Visibility.
          type: string
          enum:
            - public
            - unlisted
            - invite_only
            - internal
            - null
          example: public
          nullable: true
        search_indexing_enabled:
          description: Search indexing enabled.
          type: boolean
          example: false
          nullable: true
        timezone:
          description: >-
            IANA timezone; legacy aliases are accepted except Factory. Omitted
            values use the organization timezone on creation.
          type: string
          maxLength: 64
          example: Example
          nullable: true
        starts_at:
          description: Starts at. Date without offset is interpreted in the event timezone.
          type: string
          format: date-time
          example: '2026-12-20T18:00:00Z'
          nullable: true
        ends_at:
          description: >-
            Ends at. Date without offset is interpreted in the event timezone.
            Must be at least starts_at.
          type: string
          format: date-time
          example: '2026-12-20T18:00:00Z'
          nullable: true
        registration_opens_at:
          description: >-
            Registration opens at. Date without offset is interpreted in the
            event timezone.
          type: string
          format: date-time
          example: '2026-12-20T18:00:00Z'
          nullable: true
        registration_closes_at:
          description: >-
            Registration closes at. Date without offset is interpreted in the
            event timezone.
          type: string
          format: date-time
          example: '2026-12-20T18:00:00Z'
          nullable: true
        location_name:
          description: Location name.
          type: string
          maxLength: 255
          example: Example
          nullable: true
        location_address:
          description: Location address.
          type: string
          example: Example
          nullable: true
        public_location_mode:
          description: Public location mode.
          type: string
          enum:
            - hidden
            - summary
            - venue_only
            - full
            - null
          example: hidden
          nullable: true
        public_location_summary:
          description: Public location summary.
          type: string
          maxLength: 255
          example: Example
          nullable: true
        full_address_release_policy:
          description: Full address release policy.
          type: string
          enum:
            - never
            - after_confirmation
            - confirmation_email
            - scheduled_reminder
            - null
          example: never
          nullable: true
        full_address_release_at:
          description: >-
            Full address release at. Date without offset is interpreted in the
            event timezone.
          type: string
          format: date-time
          example: '2026-12-20T18:00:00Z'
          nullable: true
        communications_hold:
          description: Communications hold.
          type: boolean
          example: false
          nullable: true
        registration_identity_mode:
          description: Registration identity mode.
          type: string
          enum:
            - minimal_rsvp
            - organization_donor_form
            - custom_event_fields
            - null
          example: minimal_rsvp
          nullable: true
        virtual_url:
          description: Virtual url.
          type: string
          maxLength: 255
          example: Example
          nullable: true
        capacity:
          description: Capacity.
          type: integer
          minimum: 1
          example: 1
          nullable: true
        program_id:
          description: >-
            Program id. Referenced record must belong to the authenticated
            organization.
          type: integer
          example: 1
          nullable: true
        campaign_program_id:
          description: >-
            Campaign program id. Referenced record must belong to the
            authenticated organization.
          type: integer
          example: 1
          nullable: true
        recipient_group_entity_id:
          description: >-
            Recipient group entity id. Referenced record must belong to the
            authenticated organization. Sample trip records are unavailable.
          type: integer
          example: 1
          nullable: true
        trip_id:
          description: >-
            Trip id. Referenced record must belong to the authenticated
            organization. Sample trip records are unavailable.
          type: integer
          example: 1
          nullable: true
        designation_entity_id:
          description: >-
            Designation entity id. Referenced record must belong to the
            authenticated organization. Sample trip records are unavailable.
          type: integer
          example: 1
          nullable: true
        cover_image_id:
          description: >-
            Cover image id. Referenced record must belong to the authenticated
            organization.
          type: integer
          example: 1
          nullable: true
        settings:
          description: Settings.
          properties:
            program_setting_id:
              description: >-
                Program setting id. Referenced record must belong to the
                authenticated organization.
              type: integer
              example: 1
              nullable: true
            public_page_enabled:
              description: Public page enabled.
              type: boolean
              example: false
              nullable: true
            show_sponsors:
              description: Show sponsors.
              type: boolean
              example: false
              nullable: true
            show_remaining_capacity:
              description: Show remaining capacity.
              type: boolean
              example: false
              nullable: true
            allow_donation_addon:
              description: Allow donation addon.
              type: boolean
              example: false
              nullable: true
            allow_recurring_gift_ask:
              description: Allow recurring gift ask.
              type: boolean
              example: false
              nullable: true
            allow_child_sponsorship_ask:
              description: Allow child sponsorship ask.
              type: boolean
              example: false
              nullable: true
            recipient_sponsorship_program_id:
              description: >-
                Sponsorship program in the organization, required when enabling
                the child-sponsorship ask unless a legacy program_id supplies
                it. Events, trips, campaign and peer_to_peer programs are
                rejected.
              type: integer
              example: 1
              nullable: true
            cover_fees_enabled:
              description: Cover fees enabled.
              type: boolean
              example: false
              nullable: true
            processing_percentage:
              description: Processing percentage.
              type: number
              maximum: 100
              minimum: 0
              example: 1
              nullable: true
            reservation_minutes:
              description: Reservation minutes.
              type: integer
              maximum: 60
              minimum: 5
              example: 30
              nullable: true
            public_offline_payment_enabled:
              description: Public offline payment enabled.
              type: boolean
              example: false
              nullable: true
            magic_link_management_enabled:
              description: Magic link management enabled.
              type: boolean
              example: false
              nullable: true
            event_day_check_in_enabled:
              description: Event day check in enabled.
              type: boolean
              example: false
              nullable: true
            check_in_blocked_payment_statuses:
              description: Check in blocked payment statuses.
              type: array
              items:
                description: '*.'
                type: string
                enum:
                  - pending
                  - failed
                  - refunded
                  - unpaid
                example: pending
              nullable: true
            include_pending_orders_in_event_revenue:
              description: Include pending orders in event revenue.
              type: boolean
              example: false
              nullable: true
            wallet_passes_enabled:
              description: Wallet passes enabled.
              type: boolean
              example: false
              nullable: true
            auction_enabled:
              description: Auction enabled.
              type: boolean
              example: false
              nullable: true
            privacy_mode:
              description: Privacy mode.
              type: string
              maxLength: 80
              example: Example
              nullable: true
            check_payment_instructions:
              description: Check payment instructions.
              type: string
              maxLength: 1000
              example: Example
              nullable: true
            donor_hysform_id:
              description: >-
                Donor hysform id. Referenced record must belong to the
                authenticated organization.
              type: integer
              example: 1
              nullable: true
            emailset_id:
              description: >-
                Emailset id. Referenced record must belong to the authenticated
                organization.
              type: integer
              example: 1
              nullable: true
            confirmation_email_template_id:
              description: >-
                Confirmation email template id. Referenced record must belong to
                the authenticated organization.
              type: integer
              example: 1
              nullable: true
            reminder_email_template_id:
              description: >-
                Reminder email template id. Referenced record must belong to the
                authenticated organization.
              type: integer
              example: 1
              nullable: true
            follow_up_email_template_id:
              description: >-
                Follow up email template id. Referenced record must belong to
                the authenticated organization.
              type: integer
              example: 1
              nullable: true
            donation_ask_amounts:
              description: Donation ask amounts.
              type: array
              items:
                description: '*.'
                type: number
                minimum: 0
                example: 1
                nullable: true
              nullable: true
          type: object
          nullable: true
          additionalProperties: true
        id:
          description: Event ID.
          type: integer
          example: 42
        client_id:
          description: Organization ID.
          type: integer
          example: 42
        cover_image_url:
          description: Cover image URL.
          type: string
          example: Example
          nullable: true
        currency:
          description: ISO currency code.
          type: string
          example: USD
        location:
          properties:
            mode:
              description: Internal or public location policy.
              type: string
              example: internal
            label:
              description: Display location.
              type: string
              example: Example
              nullable: true
            venue:
              description: Venue name.
              type: string
              example: Example
              nullable: true
            address:
              description: Street address.
              type: string
              example: Example
              nullable: true
            map_allowed:
              description: Whether the address may be used for maps.
              type: boolean
              example: false
          type: object
        inherited_event_settings:
          description: Defaults resolved from the event settings profile.
          type: object
          additionalProperties: true
        published_at:
          description: First publication time.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        completed_at:
          description: Completion time.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        registered_attendee_count:
          description: Registered non-cancelled attendee count, when loaded.
          type: integer
          example: 42
          nullable: true
        checked_in_count:
          description: Checked-in count, when loaded.
          type: integer
          example: 42
          nullable: true
        readiness:
          type: array
          items:
            properties:
              key:
                description: Readiness check identifier.
                type: string
                example: event_profile
              label:
                description: Check label.
                type: string
                example: Event profile
              ready:
                description: Whether the check passes.
                type: boolean
                example: false
              required:
                description: Whether publishing requires this check.
                type: boolean
                example: false
              message:
                description: Check guidance.
                type: string
                example: Name, slug, and event type are required.
            type: object
        people:
          type: array
          items:
            properties:
              id:
                description: Event person ID.
                type: integer
                example: 42
              role:
                description: Event role.
                type: string
                enum:
                  - host
                  - co_host
                  - worship_leader
                  - speaker
                  - volunteer
                  - table_host
                  - internal_owner
                example: host
              display_name:
                description: Resolved display name.
                type: string
                example: Example
                nullable: true
              public_visibility:
                description: Whether shown publicly.
                type: boolean
                example: false
              sort_order:
                description: Display order.
                type: integer
                example: 42
              donor_id:
                description: Record ID in the authenticated organization.
                type: integer
                example: 42
                nullable: true
              user_id:
                description: Record ID in the authenticated organization.
                type: integer
                example: 42
                nullable: true
            type: object
        ticket_types:
          description: Setup rows; empty in compact mode.
          type: array
          items:
            $ref: '#/components/schemas/EventApiTicketType'
        questions:
          description: Setup rows; empty in compact mode.
          type: array
          items:
            $ref: '#/components/schemas/EventApiQuestion'
        sponsor_packages:
          description: Setup rows; empty in compact mode.
          type: array
          items:
            $ref: '#/components/schemas/EventApiSponsorPackage'
        tables:
          description: Setup rows; empty in compact mode.
          type: array
          items:
            $ref: '#/components/schemas/EventApiTable'
        auction_items:
          description: Setup rows; empty in compact mode.
          type: array
          items:
            $ref: '#/components/schemas/EventApiAuctionItem'
        promo_codes:
          description: Setup rows; empty in compact mode.
          type: array
          items:
            $ref: '#/components/schemas/EventApiPromoCode'
        communications:
          description: Setup rows; empty in compact mode.
          type: array
          items:
            $ref: '#/components/schemas/EventApiCommunication'
        capabilities:
          description: User-specific event capabilities.
          properties:
            can_view:
              description: can view.
              type: boolean
              example: false
            can_manage_setup:
              description: can manage setup.
              type: boolean
              example: false
            can_manage_sponsors:
              description: can manage sponsors.
              type: boolean
              example: false
            can_check_in:
              description: can check in.
              type: boolean
              example: false
            can_view_finance:
              description: can view finance.
              type: boolean
              example: false
            can_run_reports:
              description: can run reports.
              type: boolean
              example: false
            can_publish:
              description: can publish.
              type: boolean
              example: false
          type: object
        availability:
          description: >-
            Registration state, message and timing based on event lifecycle,
            payment options and capacity.
          type: object
          additionalProperties: true
        registration_v2_enabled:
          description: Whether grouped registration features are enabled.
          type: boolean
          example: false
        invitation_task_date_review:
          description: Review/change notice when the user may review invitation task dates.
          type: object
          additionalProperties: true
      type: object
    ErrorResponse:
      title: ErrorResponse
      description: >-
        Generic error envelope used by most controllers. Most error responses
        pair a human-readable `message` with `status: error`. Some endpoints
        additionally include `errors` (validator errors), `error` (legacy
        single-error string), `code`, or domain-specific context fields.
      required:
        - message
      properties:
        message:
          description: Human-readable error message.
          type: string
          example: Something went wrong. Please try again.
        status:
          description: >-
            Always the literal string `error` for failures. Some endpoints omit
            this field.
          type: string
          example: error
        error:
          description: Legacy single error code/string used by older endpoints.
          type: string
          example: invalid_request
          nullable: true
        code:
          description: >-
            Optional application-level error code (not all endpoints populate
            this).
          type: string
          example: DONOR_NOT_FOUND
          nullable: true
      type: object
    RequestRejection:
      description: >-
        Request or workflow rejection. Framework field-validation failures
        contain errors; semantic rejections may contain message without errors;
        legacy/provider failures may use error and error_code. The operation
        description identifies the rejected condition. Domain responses may add
        current revision, limits or other conflict context.
      anyOf:
        - $ref: '#/components/schemas/ValidationErrorResponse'
        - $ref: '#/components/schemas/ErrorResponse'
        - required:
            - error
          properties:
            error:
              description: Legacy or provider-facing error message.
              type: string
              example: The request could not be completed.
            error_code:
              description: Stable domain error code, when provided.
              type: string
              example: WORKFLOW_UNAVAILABLE
          type: object
    EventApiTicketType:
      properties:
        id:
          description: Id.
          type: integer
          example: 1
        client_id:
          description: Client id.
          type: integer
          example: 1
          nullable: false
        event_id:
          description: Event id.
          type: integer
          example: 1
          nullable: false
        name:
          description: Name.
          type: string
          example: Annual Gala
          nullable: false
        code:
          description: Code.
          type: string
          example: Example
          nullable: true
        description:
          description: Description.
          type: string
          example: Example
          nullable: true
        price:
          description: Price serialized as a decimal string.
          type: string
          example: '25.00'
          nullable: false
        fair_market_value:
          description: Fair market value serialized as a decimal string.
          type: string
          example: '25.00'
          nullable: false
        quantity_available:
          description: Quantity available.
          type: integer
          example: 1
          nullable: true
        quantity_sold:
          description: Quantity sold.
          type: integer
          example: 1
          nullable: false
        quantity_reserved:
          description: Quantity reserved.
          type: integer
          example: 1
          nullable: false
        admissions_per_unit:
          description: Admissions per unit.
          type: integer
          example: 1
          nullable: false
        registration_group_kind:
          description: Registration group kind.
          type: string
          example: Example
          nullable: false
        group_label_prompt:
          description: Group label prompt.
          type: string
          example: Example
          nullable: true
        attendee_details_timing:
          description: Attendee details timing.
          type: string
          example: Example
          nullable: false
        waitlist_enabled:
          description: Waitlist enabled.
          type: boolean
          example: false
          nullable: false
        min_per_order:
          description: Min per order.
          type: integer
          example: 1
          nullable: false
        max_per_order:
          description: Max per order.
          type: integer
          example: 1
          nullable: true
        attendee_details_required:
          description: Attendee details required.
          type: boolean
          example: false
          nullable: false
        is_active:
          description: Is active.
          type: boolean
          example: false
          nullable: false
        visibility:
          description: Visibility.
          type: string
          enum:
            - public
            - private
          example: public
          nullable: false
        sale_starts_at:
          description: Sale starts at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        sale_ends_at:
          description: Sale ends at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        sort_order:
          description: Sort order.
          type: integer
          example: 1
          nullable: false
        settings:
          description: Settings.
          type: object
          nullable: true
          additionalProperties: true
        created_at:
          description: Created at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        updated_at:
          description: Updated at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        deleted_at:
          description: Deleted at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
      type: object
    EventApiQuestion:
      properties:
        id:
          description: Id.
          type: integer
          example: 1
        client_id:
          description: Client id.
          type: integer
          example: 1
          nullable: false
        event_id:
          description: Event id.
          type: integer
          example: 1
          nullable: false
        scope:
          description: Scope.
          type: string
          example: Example
          nullable: false
        field_key:
          description: Field key.
          type: string
          pattern: ^[a-z0-9_\\\\-]+$
          example: dietary_preferences
          nullable: false
        field_label:
          description: Field label.
          type: string
          example: Dietary preferences
          nullable: false
        field_type:
          description: Field type.
          type: string
          example: Example
          nullable: false
        help_text:
          description: Help text.
          type: string
          example: Example
          nullable: true
        options:
          description: Options.
          type: array
          items:
            description: '*.'
            type: string
            maxLength: 255
            example: Example
          maxItems: 50
          nullable: true
        applies_to_ticket_type_ids:
          description: Applies to ticket type ids.
          type: array
          items:
            description: >-
              *. Referenced record must belong to the authenticated organization
              and this event.
            type: integer
            example: 1
          nullable: true
        required:
          description: Required.
          type: boolean
          example: false
          nullable: false
        is_active:
          description: Is active.
          type: boolean
          example: false
          nullable: false
        sort_order:
          description: Sort order.
          type: integer
          example: 1
          nullable: false
        created_at:
          description: Created at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        updated_at:
          description: Updated at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        deleted_at:
          description: Deleted at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
      type: object
    EventApiSponsorPackage:
      properties:
        id:
          description: Id.
          type: integer
          example: 1
        client_id:
          description: Client id.
          type: integer
          example: 1
          nullable: false
        event_id:
          description: Event id.
          type: integer
          example: 1
          nullable: false
        name:
          description: Name.
          type: string
          example: Annual Gala
          nullable: false
        tier:
          description: Tier.
          type: string
          example: Example
          nullable: true
        description:
          description: Description.
          type: string
          example: Example
          nullable: true
        price:
          description: Price serialized as a decimal string.
          type: string
          example: '25.00'
          nullable: false
        fair_market_value:
          description: Fair market value serialized as a decimal string.
          type: string
          example: '25.00'
          nullable: false
        included_tickets:
          description: Included tickets.
          type: integer
          example: 1
          nullable: false
        included_tables:
          description: Included tables.
          type: integer
          example: 1
          nullable: false
        quantity_available:
          description: Quantity available.
          type: integer
          example: 1
          nullable: true
        quantity_sold:
          description: Quantity sold.
          type: integer
          example: 1
          nullable: false
        quantity_reserved:
          description: Quantity reserved.
          type: integer
          example: 1
          nullable: false
        visibility:
          description: Visibility.
          type: string
          enum:
            - public
            - private
          example: public
          nullable: false
        deliverables_template:
          description: Deliverables template.
          type: array
          items:
            type: string
          nullable: true
        settings:
          description: Settings.
          type: object
          nullable: true
          additionalProperties: true
        is_active:
          description: Is active.
          type: boolean
          example: false
          nullable: false
        sort_order:
          description: Sort order.
          type: integer
          example: 1
          nullable: false
        created_at:
          description: Created at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        updated_at:
          description: Updated at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        deleted_at:
          description: Deleted at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
      type: object
    EventApiTable:
      properties:
        id:
          description: Id.
          type: integer
          example: 1
        client_id:
          description: Client id.
          type: integer
          example: 1
          nullable: false
        event_id:
          description: Event id.
          type: integer
          example: 1
          nullable: false
        name:
          description: Name.
          type: string
          example: Annual Gala
          nullable: false
        section:
          description: Section.
          type: string
          example: Example
          nullable: true
        capacity:
          description: Capacity.
          type: integer
          example: 1
          nullable: false
        host_donor_id:
          description: Host donor id.
          type: integer
          example: 1
          nullable: true
        sort_order:
          description: Sort order.
          type: integer
          example: 1
          nullable: false
        notes:
          description: Notes.
          type: string
          example: Example
          nullable: true
        created_at:
          description: Created at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        updated_at:
          description: Updated at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        deleted_at:
          description: Deleted at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        attendees_count:
          description: Attendee count, included by the tables list.
          type: integer
          example: 42
      type: object
    EventApiAuctionItem:
      properties:
        id:
          description: Id.
          type: integer
          example: 1
        client_id:
          description: Client id.
          type: integer
          example: 1
          nullable: false
        event_id:
          description: Event id.
          type: integer
          example: 1
          nullable: false
        name:
          description: Name.
          type: string
          example: Annual Gala
          nullable: false
        description:
          description: Description.
          type: string
          example: Example
          nullable: true
        fair_market_value:
          description: Fair market value serialized as a decimal string.
          type: string
          example: '25.00'
          nullable: false
        starting_bid:
          description: Starting bid serialized as a decimal string.
          type: string
          example: '25.00'
          nullable: false
        buy_now_price:
          description: Buy now price serialized as a decimal string.
          type: string
          example: '25.00'
          nullable: true
        quantity_available:
          description: Quantity available.
          type: integer
          example: 1
          nullable: true
        quantity_sold:
          description: Quantity sold.
          type: integer
          example: 1
          nullable: false
        status:
          description: Status.
          type: string
          enum:
            - draft
            - open
            - closed
            - fulfilled
            - cancelled
          example: draft
          nullable: false
        visibility:
          description: Visibility.
          type: string
          enum:
            - public
            - private
          example: public
          nullable: false
        sort_order:
          description: Sort order.
          type: integer
          example: 1
          nullable: false
        settings:
          description: Settings.
          type: object
          nullable: true
          additionalProperties: true
        created_at:
          description: Created at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        updated_at:
          description: Updated at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        deleted_at:
          description: Deleted at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        bid_summary:
          properties:
            active_bid_count:
              description: active bid count.
              type: integer
              example: 42
            awarded_count:
              description: awarded count.
              type: integer
              example: 42
            bid_count:
              description: bid count.
              type: integer
              example: 42
            purchased_count:
              description: purchased count.
              type: integer
              example: 42
            high_bid:
              description: high bid.
              type: number
              example: 0
            settled_total:
              description: settled total.
              type: number
              example: 0
            last_bid_at:
              description: last bid at.
              type: string
              example: Example
              nullable: true
            leader_at:
              description: leader at.
              type: string
              example: Example
              nullable: true
            leader_signature:
              description: leader signature.
              type: string
              example: Example
              nullable: true
            leader_status:
              description: leader status.
              type: string
              example: Example
              nullable: true
            winner:
              description: winner.
              type: string
              example: Example
              nullable: true
          type: object
      type: object
    EventApiPromoCode:
      properties:
        id:
          description: Id.
          type: integer
          example: 1
        client_id:
          description: Client id.
          type: integer
          example: 1
          nullable: false
        event_id:
          description: Event id.
          type: integer
          example: 1
          nullable: false
        code:
          description: Code.
          type: string
          example: Example
          nullable: false
        type:
          description: Type.
          type: string
          example: Example
          nullable: false
        value:
          description: Value serialized as a decimal string.
          type: string
          example: '25.00'
          nullable: false
        max_redemptions:
          description: Max redemptions.
          type: integer
          example: 1
          nullable: true
        redemptions_count:
          description: Redemptions count.
          type: integer
          example: 1
          nullable: false
        per_order_limit:
          description: Per order limit.
          type: integer
          example: 1
          nullable: true
        starts_at:
          description: Starts at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        ends_at:
          description: Ends at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        ticket_type_ids:
          description: Ticket type ids.
          type: array
          items:
            description: >-
              *. Referenced record must belong to the authenticated organization
              and this event.
            type: integer
            example: 1
          nullable: true
        sponsor_package_ids:
          description: Sponsor package ids.
          type: array
          items:
            description: >-
              *. Referenced record must belong to the authenticated organization
              and this event.
            type: integer
            example: 1
          nullable: true
        is_active:
          description: Is active.
          type: boolean
          example: false
          nullable: false
        created_at:
          description: Created at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        updated_at:
          description: Updated at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        deleted_at:
          description: Deleted at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
      type: object
    EventApiCommunication:
      properties:
        id:
          description: Id.
          type: integer
          example: 1
        client_id:
          description: Client id.
          type: integer
          example: 1
          nullable: false
        event_id:
          description: Event id.
          type: integer
          example: 1
          nullable: false
        type:
          description: Type.
          type: string
          example: Example
          nullable: false
        trigger:
          description: Trigger.
          type: string
          example: Example
          nullable: true
        channel:
          description: Channel.
          type: string
          example: Example
          nullable: false
        status:
          description: Status.
          type: string
          enum:
            - draft
            - scheduled
            - sent
            - paused
          example: draft
          nullable: false
        segment:
          description: Segment.
          type: string
          example: Example
          nullable: true
        subject:
          description: Subject.
          type: string
          example: Example
          nullable: true
        body:
          description: Body.
          type: string
          example: Example
          nullable: true
        send_at:
          description: Send at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        schedule_mode:
          description: Schedule mode.
          type: string
          example: Example
        schedule_config:
          description: Schedule config.
          type: object
          additionalProperties: true
        schedule_claim_id:
          description: Schedule claim id.
          type: integer
          example: 1
        claimed_at:
          description: Claimed at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        sent_at:
          description: Sent at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        metadata:
          description: Metadata.
          type: object
          nullable: true
          additionalProperties: true
        created_at:
          description: Created at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        updated_at:
          description: Updated at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
        deleted_at:
          description: Deleted at.
          type: string
          format: date-time
          example: '2026-10-20T12:00:00Z'
          nullable: true
      type: object
    ValidationErrorResponse:
      title: ValidationErrorResponse
      description: >-
        Returned with HTTP 422 when `Validator::make($data, $rules)` fails. The
        `errors` map is keyed by the failing field name; each value is an array
        of human-readable error messages for that field. Most controllers also
        include a top-level `status: error`.
      required:
        - errors
      properties:
        errors:
          description: >-
            Map of field name to array of validator error messages. Example:
            `{email: [The email field is required.], amount: [The amount must be
            a number.]}`.
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        status:
          description: Always the literal string `error`.
          type: string
          example: error
        message:
          description: >-
            Optional summary message — present on some endpoints, absent on
            others.
          type: string
          example: The given data was invalid.
          nullable: true
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      description: Passport bearer token authentication for legacy admin sessions.
      scheme: bearer
      bearerFormat: JWT
    apiKeyAuth:
      type: apiKey
      description: Gratona API key sent with the compatibility header X-HYS-API-Key.
      name: X-HYS-API-Key
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.