OpenAPI Specification
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