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 SendEmailCopy: type: boolean description: Indicates if email copy should be sent according to email routing settings. IsWaitlistEnabled: type: boolean description: Indicates if waitlist feature is enabled for the event. WaitlistSettings: $ref: '#/components/schemas/EventWaitlistSettings' MultipleRegistrationAllowed: type: boolean description: Indicates if multiple registrations are allowed for the same contact. AttendeesDisplaySettings: $ref: '#/components/schemas/EventAttendeesDisplaySettings' TimeZone: type: object description: Details about account time zone properties: ZoneId: type: string description: Time zone id, i.e. "Arabic Standard Time" Name: type: string description: Time zone name, i.e. "(UTC+03:00) Baghdad" UtcOffset: type: integer description: Offcet from UTC Time in minutes, i.e. "180" EventsCountResponse: type: object properties: Count: type: integer description: Number of events that match request criteria. This field appears only if $count parameter was passed in request. EntityFieldDescriptionWithExtraCharge: allOf: - $ref: '#/components/schemas/EditEntityFieldParams' - type: object required: - FieldType properties: ExtraCharge: $ref: '#/components/schemas/ExtraCharge' EventsListResponse: type: object properties: Events: type: array items: $ref: '#/components/schemas/Event' description: List of events that match request criteria. securitySchemes: OAuth2: type: oauth2 description: OAuth2 authentication for WildApricot API flows: clientCredentials: tokenUrl: https://oauth.wildapricot.org/auth/token scopes: auto: Full API access