WildApricot Events API

Event and registration management

OpenAPI Specification

wildapricot-events-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: WildApricot Admin Accounts Events API
  description: The WildApricot Admin API provides programmatic access to membership management features including contacts, events, event registrations, membership levels, invoices, payments, donations, email campaigns, and store orders. Authentication uses OAuth2 with client credentials or authorization code flow.
  version: 7.24.0
  contact:
    name: WildApricot Support
    url: https://gethelp.wildapricot.com/
  license:
    name: Proprietary
  x-generated-from: documentation
servers:
- url: https://api.wildapricot.org/v2.2
  description: WildApricot Admin API v2.2
tags:
- name: Events
  description: Event and registration management
paths:
  /accounts/{accountId}/events:
    get:
      operationId: GetEventsList
      summary: WildApricot Events List
      description: ''
      tags:
      - Events
      parameters:
      - name: ''
        in: query
        required: false
        description: ''
        schema:
          type: string
      - name: $async
        in: query
        required: false
        description: '

          Controls whether the API call is perform asynchronously. Default value if true.

          '
        schema:
          type: boolean
      - name: resultId
        in: query
        required: false
        description: '

          This parameter is used on a second step of asynchronous search. It should equal to the value of ResultId in response to the first step of asynchronous search.

          '
        schema:
          type: string
      - name: $filter
        in: query
        required: false
        description: "\nFilters the results of the Events API call so that only those records that match the filter criteria are included.\nThe following filter criterias are supported:\n\n  - Id, Supported operations: in.\n  - RegistrationEnabled, Supported operations: eq, ne.\n  - IsUpcoming, Supported operations: eq, ne.\n  - Tags, Supported operations: in.\n  - StartDate, Supported operations: eq, ne, gt, ge, lt, le.\n  - EndDate, Supported operations: eq, ne, gt, ge, lt, le.\n  - Name, Supported operations: eq, ne, substringof.\n  - TextIndex, Supported operations: substringof.\n"
        schema:
          type: string
      - name: $sort
        in: query
        required: false
        description: "\nThis parameter can be used to sort list of IDs or list of events. Possible values are\n\n  - ByStartDate asc - sort events by their Start date. Ascending order.\n  - ByStartDate desc - sort events by their Start date. Descending order.\n  - ByStartSession asc - sort events by start of their sessions (if exists). All past events ignored\n\n  Example: $sort=ByStartDate asc"
        schema:
          type: string
      - name: ''
        in: query
        required: false
        description: ''
        schema:
          type: string
      - name: ''
        in: query
        required: false
        description: ''
        schema:
          type: string
      - name: $count
        in: query
        required: false
        description: '

          Specifies that result should contain only a total number of records matching criteria. Requests with specified $count parameter are always processed as synchronous.

          '
        schema:
          type: boolean
      - name: idsOnly
        in: query
        required: false
        description: '

          When idsOnly specified, the API returns only a list of identifiers matching criteria.

          '
        schema:
          type: boolean
      responses:
        '200':
          description: A wrapper object, which contains a list of events, event identifiers or events count.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventsResponse'
        '400':
          description: ''
        '401':
          description: ''
        '429':
          description: ''
      security:
      - OAuth2:
        - auto
    post:
      operationId: CreateEvent
      summary: WildApricot Create a New Event Record
      description: ''
      tags:
      - Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventEditParams'
      parameters:
      - name: ''
        in: query
        required: false
        description: ''
        schema:
          type: string
      responses:
        '200':
          description: Returns created event record id
          content:
            application/json:
              schema:
                type: number
        '400':
          description: ''
        '401':
          description: ''
        '429':
          description: ''
      security:
      - OAuth2:
        - auto
  /accounts/{accountId}/events/{eventId}:
    get:
      operationId: GetEventDetails
      summary: WildApricot Retrieve Information About Specific Event
      description: ''
      tags:
      - Events
      parameters:
      - name: ''
        in: query
        required: false
        description: ''
        schema:
          type: string
      - name: eventId
        in: path
        required: true
        description: Unique event identifier
        schema:
          type: integer
      responses:
        '200':
          description: information about specific event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
        '401':
          description: ''
        '404':
          description: ''
        '429':
          description: ''
      security:
      - OAuth2:
        - auto
    put:
      operationId: UpdateEvent
      summary: WildApricot Update Information About Existing Event
      description: ''
      tags:
      - Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventEditParams'
      parameters:
      - name: ''
        in: query
        required: false
        description: ''
        schema:
          type: string
      - name: eventId
        in: path
        required: true
        description: Unique event identifier
        schema:
          type: integer
      responses:
        '200':
          description: 'Updated version of event information.

            '
          content:
            application/json:
              schema:
                $ref: boolean
        '401':
          description: ''
        '404':
          description: ''
        '429':
          description: ''
      security:
      - OAuth2:
        - auto
    delete:
      operationId: DeleteEvent
      summary: WildApricot Completely Delete Event from System.
      description: Completely delete event from system.
      tags:
      - Events
      parameters:
      - name: ''
        in: query
        required: false
        description: ''
        schema:
          type: string
      - name: eventId
        in: path
        required: true
        description: Unique event identifier
        schema:
          type: integer
      responses:
        '200':
          description: OK
        '401':
          description: ''
        '404':
          description: ''
        '429':
          description: ''
      security:
      - OAuth2:
        - auto
  /rpc/{accountId}/CloneEvent:
    post:
      operationId: CloneEvent
      summary: WildApricot Clone Existed Event.
      description: ''
      tags:
      - Events
      parameters:
      - name: ''
        in: query
        required: false
        description: ''
        schema:
          type: string
      - name: ''
        in: query
        required: false
        description: ''
        schema:
          type: string
      responses:
        '200':
          description: created event id
          content:
            application/json:
              schema:
                type: integer
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - OAuth2:
        - auto
components:
  schemas:
    EventGuestRegistrationPolicy:
      type: string
      enum:
      - Disabled
      - NumberOfGuests
      - CollectContactDetails
      - CollectFullInfo
      description: 'Describes how guests are registered. Allowed values are

        - Disabled - guest registration is not allowed - NumberOfGuests - number of guests should be specified. - CollectContactDetails - contact information should be collected for each guest. - CollectFullInfo - full registration info should be collected for each guest.'
    EventInviteeStatistics:
      type: object
      description: Statistics related to invitees to RSVP events.
      properties:
        NotResponded:
          type: integer
          description: Number of invitees who did not respond yet.
        NotAttended:
          type: integer
          description: Number of invitees who answered NO to the invite.
        Attended:
          type: integer
          description: Number of invitees who answered YES to the invite.
        MaybeAttended:
          type: integer
          description: Number of invitees who answered MAY BE to the invite.
    EditEntityFieldParams:
      allOf:
      - $ref: '#/components/schemas/EntityFieldDescription'
      - type: object
        required:
        - FieldType
        properties:
          FieldType:
            $ref: '#/components/schemas/CustomFieldType'
    EventIdsResponse:
      type: object
      properties:
        EventsIdentifiers:
          type: array
          items:
            type: integer
          description: List of event identifiers that match request criteria. The field appears only if idsOnly parameter was passed in request.
    ResourceUrl:
      type: string
      description: Permanent resource URL in API.
    Event:
      type: object
      required:
      - Id
      - Url
      - Name
      - EventType
      - StartDate
      properties:
        Id:
          type: integer
          description: Unique event identifier
        Url:
          $ref: '#/components/schemas/ResourceUrl'
        Name:
          type: string
          description: Event title
        EventType:
          type: string
          enum:
          - Reqular
          - RSVP
          description: Indicates if event is simple (RSVP) or regular.
        StartDate:
          type: string
          format: datetime
          description: Date and time when the event is scheduled to start.
        StartTimeSpecified:
          type: boolean
          description: Indicates if event start time is specified. False means that StartDate contains only date component.
        EndDate:
          type: string
          format: datetime
          description: Date and time when the event is scheduled to end. Could be empty.
        EndTimeSpecified:
          type: boolean
          description: Indicates if event end time is specified. False means that EndDate contains only date component.
        Location:
          type: string
          description: Location where the event will take place.
        RegistrationEnabled:
          type: boolean
          description: Indicates whether registration to this event is enabled
        HasEnabledRegistrationTypes:
          type: boolean
          description: Indicates that at least one registration type is enabled for this event.
        AccessLevel:
          $ref: '#/components/schemas/EventAccessLevel'
        Tags:
          type: array
          items:
            type: string
          description: A collection of tags associated with the event.
        Details:
          $ref: '#/components/schemas/EventDetails'
        Sessions:
          type: array
          items:
            $ref: '#/components/schemas/EventSesssion'
          description: Collection of event sessions. Exist in multisessions events only.
        RegistrationsLimit:
          type: integer
          description: Maximum number of registrations for this event.
        InviteeStat:
          $ref: '#/components/schemas/EventInviteeStatistics'
        PendingRegistrationsCount:
          type: integer
          description: Number of participants already registered for this event but not confirmed yet.
        ConfirmedRegistrationsCount:
          type: integer
          description: Number of participants already registered for this event and already confirmed.
        CheckedInAttendeesNumber:
          type: integer
          description: Number of attendees already checked in on this event.
    EventWaitlistSettings:
      type: object
      properties:
        WaitlistType:
          type: string
          enum:
          - None
          - Manual
          - Auto
          description: "Indicates how the waitlist works for the event.\n\n - None - waitlist is not enabled\n - Manual - people can be added to a waitlist and then automatically registered in the order they were added, as sufficient spaces open up\n - Auto - people can be added to a waitlist and then manually registered by an administrator or by themselves once spaces become available"
        InformationToCollect:
          type: string
          enum:
          - None
          - NameAndEmail
          - ContactInformation
          - RegistrationInformation
          description: Indicates what information should be collected for people being added to the waitlist.
    EventRegistrationUnavailabilityPolicy:
      type: string
      enum:
      - ShowDisabled
      - Hide
      description: Indicates what is displayed if the registration type is not available for a particular visitor.
    EventAccessControl:
      type: object
      description: Describes event availability.
      required:
      - AccessLevel
      properties:
        AccessLevel:
          $ref: '#/components/schemas/EventAccessLevel'
        AvailableForAnyLevel:
          type: boolean
          description: If AccessLevel is Restricted, then indicates if the event is available to any member on any level.
        AvailableForLevels:
          type: array
          items:
            $ref: '#/components/schemas/LinkedResource'
          description: 'Event is available to members who are on these levels.

            This field appears only if AccessLevel is Restricted and AvailableForAnyLevel is false.'
        AvailableForAnyGroup:
          type: boolean
          description: If AccessLevel is Restricted, then indicates if the event is available to any member in any membership group.
        AvailableForGroups:
          type: array
          items:
            $ref: '#/components/schemas/LinkedResource'
          description: 'Event is available to members who are any of these groups.

            This field appears only if AccessLevel is Restricted and AvailableForAnyGroup is false.'
    EventAttendeesDisplaySettings:
      type: object
      description: Settings for section "List of event registrants" on UI.
      properties:
        VisibleTo:
          allOf:
          - $ref: '#/components/schemas/ContactFieldAccessLevel'
          - description: Indicates who is allowed to see list of event registrants.
        ShowPendingAttendees:
          type: boolean
          description: Indicates if pending registrants should be included in the list of registrants.
    EventRegistrationTypeAvailability:
      type: string
      enum:
      - Everyone
      - MembersOnly
      - CodeRequired
      description: Indicates who the registration type is available to.
    Error:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          description: Error code, like Validation / Search / ...
        message:
          type: string
          description: An explanation of why this error occured
        details:
          type: object
          description: More information about the error. Data structure is specific for each kind of error.
    EventPaymentMethodType:
      type: string
      enum:
      - Undefined
      - OnlineAndOffline
      - OfflineOnly
      - OnlineOnly
      description: "How attendees can pay for the ticket.\n\n  - OnlineAndOffline\n  - OfflineOnly\n  - OnlineOnly"
    EntityFieldDescription:
      type: object
      required:
      - FieldName
      - Description
      - AdminOnly
      properties:
        FieldName:
          type: string
          description: Field name title, could be displayed in user interface. Field name could be changed by account administrator.
        SystemCode:
          type: string
          description: System-defined code associated with field. It does not change even if FieldName is edited in admin backend.
        DisplayType:
          type: string
          description: Optional hint, which tells how to display and edit field. It appears for String and Choice fields.
        IsSystem:
          type: boolean
          description: Field is system-defined and could not be deleted. However, field name could be changed by account administrator.
        Description:
          type: string
          description: System-defined description of the field. Empty for custom fields.
        FieldInstructions:
          type: string
          description: Admin-defined comment for the field. Shown as a tip when members or visitors fill in forms.
        AllowedValues:
          type: array
          description: If field value is limited to set of predefined values, this contains list of allowed values. Normally, AllowedValues appear for MultipleChoice and Choice fields.
          items:
            $ref: '#/components/schemas/OptionsListItem'
        Order:
          type: integer
          description: Sorting order to display the field in UI
        RulesAndTermsInfo:
          $ref: '#/components/schemas/RulesAndTermsInfo'
    LinkedResource:
      type: object
      properties:
        Id:
          type: integer
          description: unique item identifier
        Url:
          type: string
          description: API url to get item details
    EventRegistrationFieldDescription:
      allOf:
      - $ref: '#/components/schemas/EntityFieldDescriptionWithExtraCharge'
      - properties:
          Kind:
            type: string
            enum:
            - Common
            - Custom
            description: Indicated is the field is common for all contacts or custom for the event.
    CustomFieldType:
      type: string
      enum:
      - String
      - DateTime
      - Boolean
      - Choice
      - MultipleChoice
      - Number
      - SectionDivider
      - CalculatedExtraCharge
      - Picture
      description: Custom field data type.
    EventEditParams:
      type: object
      required:
      - Name
      - EventType
      - StartDate
      properties:
        Id:
          type: integer
          description: Unique identifier of event. This field should be provided only when updating existing event.
        Name:
          type: string
          description: Event title
        EventType:
          type: string
          enum:
          - Reqular
          - RSVP
          description: Indicates if event is simple (RSVP) or regular.
        StartDate:
          type: string
          format: datetime
          description: Date and time when the event is scheduled to start. If no time offset is specified, counts as UTC and will be converted into event timezone.
        StartTimeSpecified:
          type: boolean
          description: Indicates if event start time is specified. False means that StartDate contains only date component.
        EndDate:
          type: string
          format: datetime
          description: Date and time when the event is scheduled to end. Could be empty. If no time offset is specified, counts as UTC and will be converted into event timezone.
        EndTimeSpecified:
          type: boolean
          description: Indicates if event end time is specified. False means that EndDate contains only date component.
        Location:
          type: string
          description: Location where the event will take place.
        RegistrationEnabled:
          type: boolean
          description: Indicates that registration to this event is enabled
        Tags:
          type: array
          items:
            type: string
          description: A collection of tags associated with the event.
        Details:
          $ref: '#/components/schemas/EventDetailsEditParams'
        Sessions:
          type: array
          items:
            $ref: '#/components/schemas/EventSesssion'
          description: Collection of event sessions. Exist in multisessions events only.
        RegistrationsLimit:
          type: integer
          description: Maximum number of registrations for this event.
    ContactFieldAccessLevel:
      type: string
      enum:
      - Public
      - Members
      - Nobody
      description: '

        Indicates who is allowed to view the field value. - **Public** - value is visible to anyone who has access to members directory - **Members** - value is visible only to members - **Nobody* - value is visible only to account administrators

        '
    RulesAndTermsInfo:
      type: object
      description: Additional info for fields with rules / terms conditions. Not present for other field types.
      properties:
        Text:
          type: string
          description: Terms of use label.
        Link:
          type: string
          description: Url of the rules and terms document.
    OptionsListItem:
      type: object
      properties:
        Id:
          type: integer
          description: Item identifier unique in the list
        Label:
          type: string
          description: Human-readable text label.
        Position:
          type: integer
          description: Option position among other options.
        SelectedByDefault:
          type: boolean
          description: Indicates whether this option would be selected on form if user did not select another option.
        ExtraCost:
          type: number
          format: decimal
          description: Extra price for selecting this option. Used only by fields with an associated cost.
    EventAccessLevel:
      type: string
      enum:
      - Public
      - AdminOnly
      - Restricted
      description: "\nEvent accessability.\n  - Public means event accessible for everyone\n  - AdminOnly means event accessible for administrators only\n  - Restricted means event accessible for specific membership levels or groups."
    EventDetailsEditParams:
      type: object
      properties:
        DescriptionHtml:
          type: string
          description: Full event description in HTML format.
        PaymentInstructions:
          type: string
          description: A description how attendee can pay for attendance in this event. Payment instructions for this event only.
        TimeZone:
          $ref: '#/components/schemas/TimeZone'
        AccessControl:
          $ref: '#/components/schemas/EventAccessControl'
        GuestRegistrationSettings:
          $ref: '#/components/schemas/EventGuestRegistrationSettings'
        Organizer:
          properties:
            Id:
              type: integer
          description: Link to contact, who is set as organizer for this event.
        PaymentMethod:
          $ref: '#/components/schemas/EventPaymentMethodType'
        RegistrationConfirmationExtraInfo:
          type: string
          description: Additional event information to be inserted in registration confirmation email
        RegistrationMessage:
          type: string
          description: This text will be shown above Register button on Event details
        SendEmailCopy:
          type: boolean
          description: Indicates if email copy should be sent according to email routing setting.
        IsWaitlistEnabled:
          type: boolean
          description: Indicates if waitlist feature is enabled to the event.
        WaitlistSettings:
          $ref: '#/components/schemas/EventWaitlistSettings'
        MultipleRegistrationAllowed:
          type: boolean
          description: Indicates if it is allowed to have multiple registrations for the same contact.
        AttendeesDisplaySettings:
          $ref: '#/components/schemas/EventAttendeesDisplaySettings'
    EventsResponse:
      allOf:
      - $ref: '#/components/schemas/EventIdsResponse'
      - $ref: '#/components/schemas/EventsListResponse'
      - $ref: '#/components/schemas/EventsCountResponse'
    EventSesssion:
      type: object
      properties:
        Id:
          type: integer
          description: Unique event session identifier.
        Title:
          type: string
          description: Automatically generated session title.
        StartDate:
          type: string
          format: datetime
          description: Date and time when the event session is scheduled to start.
        StartTimeSpecified:
          type: boolean
          description: Indicates if session start time is specified. False means that StartDate contains only date component.
        EndDate:
          type: string
          format: datetime
          description: Date and time when the event session is scheduled to end. Could be empty.
        EndTimeSpecified:
          type: boolean
          description: Indicates if session end time is specified. False means that EndDate contains only date component.
    EventGuestRegistrationSettings:
      type: object
      description: Control how system works with guest registrations for specific event.
      properties:
        Enabled:
          type: boolean
          description: Indicates if guest registrations are allowed.
        CreateContactMode:
          type: string
          enum:
          - NeverCreateContact
          - CreateContactForAllGuests
          - CreateContactForGuestsWithEmail
          description: Indicates whether guests are automatically added to database after the main registrant confirms the registration
    ExtraCharge:
      type: object
      title: ExtraChargeOptions
      description: This property appears for CalculatedExtraCharge fields only.
      required:
      - MultiplierType
      - Multiplier
      properties:
        MultiplierType:
          type: string
          description: "Indicates the type of multiplier field.\n  ItemPrice multiplier specifies a price for each requested item.\n  Percentage multiplier specifies a percent of field value to use as extra charge.\n"
          enum:
          - ItemPrice
          - Percentage
        Multiplier:
          type: number
          format: decimal
          description: value of multiplier for extra charge calculation
        MinAmount:
          type: integer
          description: Minimal amount of items to request (minimal field value). For ItemPrice multiplier type only.
        MaxAmount:
          type: integer
          description: Maximum amount of items to request (maximum field value). For ItemPrice multiplier type only.
        MinCharge:
          type: number
          format: decimal
          description: Minimal extra charge. (minimal field value). For Percentage multiplier type only.
        MaxCharge:
          type: number
          format: decimal
          description: Maximum extra charge. (maximum field value). For Percentage multiplier type only.
    EventRegistrationCancellationBehavior:
      type: string
      enum:
      - DoNotAllow
      - AllowUpToPeriodBeforeEvent
      - Allow
      description: Indicates if it is possible for attendee to self-cancel event registration.
    EventRegistrationType:
      type: object
      properties:
        Id:
          type: integer
          description: Unique event registration type identifier.
        Url:
          $ref: '#/components/schemas/ResourceUrl'
        IsEnabled:
          type: boolean
          description: Indicates whether this registration type is enabled
        EventId:
          type: integer
          description: Identifier of event related to the registration type.
        Name:
          type: string
          description: Registraton type title.
        Description:
          type: string
          description: Plain text description for the event registration type.
        BasePrice:
          type: number
          description: Base price registrant pays for this registration type.
        GuestPrice:
          type: number
          description: Price for each additional guest.
        UseTaxScopeSettings:
          type: boolean
          description: Indicates whether account tax scope settings should be used to calculate final price.
        Availability:
          $ref: '#/components/schemas/EventRegistrationTypeAvailability'
        RegistrationCode:
          type: string
          description: Registration code required to apply for event with this registration type. This property has value only if Availability is CodeRequired.
        AvailableForMembershipLevels:
          type: array
          items:
            $ref: '#/components/schemas/LinkedResource'
          description: Which membership levels can apply for event. This property has value only if Availability is MembersOnly.
        AvailableFrom:
          type: string
          format: datetime
          description: This registration type is available starting from this date. Can be null.
        AvailableThrough:
          type: string
          format: datetime
          description: This registration type is available until this date. Can be null.
        MaximumRegistrantsCount:
          type: integer
          description: Maximum number of registrants for this registration type.
        CurrentRegistrantsCount:
          type: integer
          description: Current number of registrants for this registration type.
        GuestRegistrationPolicy:
          $ref: '#/components/schemas/EventGuestRegistrationPolicy'
        UnavailabilityPolicy:
          $ref: '#/components/schemas/EventRegistrationUnavailabilityPolicy'
        CancellationBehaviour:
          $ref: '#/components/schemas/EventRegistrationCancellationBehavior'
        CancellationDaysBeforeEvent:
          type: integer
          description: In case if CancellationBehaviour = AllowUpToPeriodBeforeEvent, this field indicates the minimum number of days before the event that cancellations are allowed.
        IsWaitlistEnabled:
          type: boolean
          description: Indicated if registrant should be added to waitlist if registrations have reached their limit.
    EventDetails:
      type: object
      properties:
        DescriptionHtml:
          type: string
          description: Full event description in HTML format. Important - Links to images can be relative.
        PaymentInstructions:
          type: string
          description: A description how registrant can pay for attendance to this event. Payment instructions for this event only.
        TimeZone:
          $ref: '#/components/schemas/TimeZone'
        RegistrationTypes:
          type: array
          items:
            $ref: '#/components/schemas/EventRegistrationType'
          description: Collection of configured registration types for the event.
        EventRegistrationFields:
          type: array
          items:
            $ref: '#/components/schemas/EventRegistrationFieldDescription'
          description: Collection of fields registrant should fill during registration process.
        TotalPaid:
          type: number
          description: Total sum paid for all registrations to this event. This is a read-only property.
        TotalDue:
          type: number
          description: Total sum due, but not necessarily paid yet for all registrations related to this event. This is a read-only property.
        AccessControl:
          $ref: '#/components/schemas/EventAccessControl'
        GuestRegistrationSettings:
          $ref: '#/components/schemas/EventGuestRegistrationSettings'
        Organizer:
          allOf:
          - $ref: '#/components/schemas/LinkedResource'
          - description: Link to contact who is designated as organizer for this event.
        PaymentMethod:
          $ref: '#/components/schemas/EventPaymentMethodType'
        RegistrationConfirmationExtraInfo:
          type: string
          description: Additional event information to be inserted in registration confirmation email
        RegistrationMessage:
          type: string
          description: This text will be shown above Register button on Event details
        Sen

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wildapricot/refs/heads/main/openapi/wildapricot-events-api-openapi.yml