Constant Contact Events API
Endpoints and methods used to create and manage events.
Endpoints and methods used to create and manage events.
swagger: '2.0'
info:
description: The Constant Contact, Inc. V3 public API, for building integrations with Constant Contact, the leading small-business email marketing platform.
version: 3.0.149
title: AppConnect V3 Account Services Events API
contact:
name: webservices@constantcontact.com
license:
name: Private
url: https://www.constantcontact.com/legal/terms-of-use
host: api.cc.email
basePath: /v3
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: Events
description: Endpoints and methods used to create and manage events.
paths:
/events:
get:
tags:
- Events
summary: GET a collection of events.
description: Retrieve a collection of events with event details.
operationId: findEvents
produces:
- application/json
parameters:
- name: event_status
in: query
description: Use to return only events that meet the specified status. Acceptable values include `ACTIVE`,`DRAFT`, `COMPLETE`, `DELETED`,`CANCELLED`, and `ERROR`.
required: false
type: string
x-example: DRAFT
- name: search_text
in: query
description: Use to return only events that include the specified text.
required: false
type: string
x-example: reunion
- name: sort_by
in: query
description: 'Use to sort resulting events by one of the following properties: `name`, `start_time`, `end_time`, `created_time`, or `updated_time`.'
required: false
type: string
x-example: created_time
- name: sort_order
in: query
description: Sort order for the `sort_by parameter`. Accepted values include `ASC` (ascending) or `DESC` (descending). Defaults to `ASC` if `sort_by` is provided.
required: false
type: string
x-example: DESC
- name: limit
in: query
description: Limit the number of results to return per page. Default and maximum is `100`.
required: false
type: string
x-example: '5'
- name: prev
in: query
description: Cursor for retrieving the previous page of results. This value is obtained from the `prev_cursor` field in a previous response.
required: false
type: string
x-example: 7zDEe3DhD5gUiwRFsvWKKZlZO1j6-YihH2hyVWD8GaW7JnzXbHFP8Tou212KoU20mOjvM6pdWwycDWC3X-Hb_xY-RK1eBwYp_pc4X2CvLxo.
- name: next
in: query
description: Cursor for retrieving the next page of results. This value is obtained from the `next_cursor` field in a previous response.
required: false
type: string
x-example: 7zDEe3DhD5gUiwRFsvWKKZlZO1j6-YihH2hyVWD8GaW7JnzXbHFP8Tou212KoU20mOjvM6pdWwycDWC3X-Hb_xY-RK1eBwYp_pc4X2CvLxo
responses:
'200':
description: Request Successful
schema:
$ref: '#/definitions/PaginationDtoEventListingDto'
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
'503':
description: Our internal service is temporarily unavailable.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:read
/events/default:
post:
tags:
- Events
summary: POST (create) a new event.
description: Creates a new event with default settings, registration form, and landing page. The event will be created in DRAFT status.
operationId: addDefaultEvent
consumes:
- application/json
produces:
- application/json
parameters:
- name: name
in: query
description: Name for the new event. If not provided, a default name will be generated.
required: false
type: string
x-example: My Event
- name: start_time
in: query
description: Event start time in ISO 8601 format. If not provided, defaults to a future date.
required: false
type: string
x-example: '2024-01-15T10:00:00Z'
- name: end_time
in: query
description: Event end time in ISO 8601 format. If not provided, defaults to one hour after start time.
required: false
type: string
x-example: '2024-01-15T18:00:00Z'
- name: placeholder_campaign_id
in: query
description: Placeholder campaign ID for the event.
required: false
type: string
x-example: campaign-123
responses:
'201':
description: Event created successfully
schema:
$ref: '#/definitions/EventDto'
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'500':
description: There was a problem with our internal service.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:write
x-sdk-methodName: createEvent
/events/{event_id}:
get:
tags:
- Events
summary: GET details for a single event.
description: Specify the `event_id` path parameter to retrieve the event's details.
operationId: getEvent_2
produces:
- application/json
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
type: string
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
- name: include
in: query
description: Use to include (`true`) or exclude (`false`) event setting properties in the results.
required: false
type: boolean
x-example: true
responses:
'200':
description: Request Successful
schema:
$ref: '#/definitions/EventDto'
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
'503':
description: Our internal service is temporarily unavailable.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:read
patch:
tags:
- Events
summary: PATCH (update) an event.
description: Partially updates an event with the provided fields. Only the specified fields will be updated. This endpoint only works for events in DRAFT or ACTIVE status. Events in COMPLETE, CANCELED, or DELETED status cannot be updated.
operationId: patchEvent
consumes:
- application/json
produces:
- application/json
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event to update.
required: true
type: string
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
- in: body
name: body
description: A JSON request body containing the event fields to update.
required: true
schema:
$ref: '#/definitions/EventDto'
responses:
'204':
description: Event updated successfully
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:write
x-sdk-methodName: updateEvent
/events/{event_id}/copy:
post:
tags:
- Events
summary: POST (copy) an existing event.
description: Creates a deep copy of an existing event with all its settings, registration forms, and landing pages. The copied event is created in DRAFT status. Events in DRAFT, ACTIVE, COMPLETE, or CANCELED status can be copied. DELETED events cannot be copied.
operationId: copyEvent
consumes:
- application/json
produces:
- application/json
parameters:
- name: event_id
in: path
description: The ID of the event to copy.
required: true
type: string
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
- in: body
name: body
description: A JSON request body containing the copy options.
required: true
schema:
$ref: '#/definitions/EventCopyRequestDto'
responses:
'200':
description: Event copied successfully
schema:
$ref: '#/definitions/EventDto'
'207':
description: Event copied with some failures
schema:
$ref: '#/definitions/EventDto'
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:write
x-sdk-methodName: copyEvent
/events/{event_id}/check_in/tickets:
post:
tags:
- Events
summary: Check in event tickets.
description: Use this endpoint to mark one or more tickets as checked in. The event must be in `ACTIVE` or `COMPLETE` status. Tickets with `CANCELLED` status cannot be checked in (returns HTTP 400).
operationId: checkInTickets
consumes:
- application/json
produces:
- application/json
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
type: string
x-example: 07216444-4e3b-41ea-a3b8-5a418fce41f4
- in: body
name: body
description: Set of order ticket keys to mark as checked in.
required: true
schema:
$ref: '#/definitions/OrderTicketKeysRequestDto'
responses:
'204':
description: Successfully checked in order tickets.
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:write
/events/{event_id}/undo_check_in/tickets:
post:
tags:
- Events
summary: Undo event ticket check-in.
description: Use this endpoint to undo check-in for one or more tickets, marking them as not checked in. The event must be in `ACTIVE` or `COMPLETE` status.
operationId: undoCheckInTickets
consumes:
- application/json
produces:
- application/json
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
type: string
x-example: 07216444-4e3b-41ea-a3b8-5a418fce41f4
- in: body
name: body
description: Set of order ticket keys to mark as not checked in.
required: true
schema:
$ref: '#/definitions/OrderTicketKeysRequestDto'
responses:
'204':
description: Successfully undone check-in for order tickets.
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:write
/events/{event_id}/tracks/{track_id}/registrations/{registration_id}:
get:
tags:
- Events
summary: Get registration details for an event.
description: Use the `event_id`, `registration_id`, and `track_id` path parameters to get registration details.
operationId: getRegistrationInfo
produces:
- application/json
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
type: string
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
- name: track_id
in: path
description: The track key that uniquely identifies the event track.
required: true
type: string
x-example: s8zabc
- name: registration_id
in: path
description: The ID that uniquely identifies the registration.
required: true
type: string
x-example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
responses:
'200':
description: Request Successful
schema:
$ref: '#/definitions/DetailedRegistrationDto'
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
'503':
description: Our internal service is temporarily unavailable.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:read
/events/{event_id}/tracks/{track_id}/registrations:
get:
tags:
- Events
summary: Get a list of registrations for an event.
description: Use the `event_id` and `track_id` path parameters to get a list of registrations for an event. Use optional query parameters to limit the number of results returned per page, the sort order, or to filter results by specific criteria; such as registration `status`.
operationId: findRegistrationsUsingGET
produces:
- application/json
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
type: string
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
- name: track_id
in: path
description: The track ID that uniquely identifies the event track.
required: true
type: string
x-example: s8zabc
- name: registration_status
in: query
description: Filter registration results by status.
required: false
type: string
enum:
- PENDING
- REGISTERED
- CANCELED
- EXPIRED
- IN_PROGRESS, FAILED
x-example: REGISTERED
- name: payment_status
in: query
description: Filter registration results by payment status.
required: false
type: string
enum:
- PENDING
- PAID
- REFUNDED
- CANCELLED
- FAILED
- CHARGED_BACK
x-example: PAID
- name: search_text
in: query
description: Filter registration results by first name, last name, or email address.
required: false
type: string
x-example: john.doe@example.com
- name: sort_by
in: query
description: Specify the field to use to sort the results.
required: false
type: string
enum:
- first_name
- last_name
- email_address
- registration_status
- payment_status
- tickets
- total
x-example: email_address
- name: sort_order
in: query
description: Use to specify how you want the results sorted.
required: false
type: string
enum:
- ASC
- DESC
x-example: ASC
- name: page_size
in: query
description: Alternative to the <code>limit</code> parameter to limit the number of results returned per page. If specifying both the <code>limit</code> and <code>page_size</code> query parameters, they must be the same value.
required: false
type: string
x-example: '50'
- name: limit
in: query
description: Limit the number of results returned per page. If specifying both the <code>limit</code> and <code>page_size</code> query parameters, they must be the same value.
required: false
type: string
x-example: '50'
- name: prev
in: query
description: Cursor for pagination used to get the previous page of results (mutually exclusive with <code>next</code>).
required: false
type: string
x-example: bSzsyWkkq95R44vIFEpY62gr8_xSeRXsEQkhnhltPgiT
- name: next
in: query
description: Cursor for pagination used to get the next page of results (mutually exclusive with <code>prev</code>).
required: false
type: string
x-example: cTk9xLmmr06S55wJGfQ73hs9_yTfSYtFRlimimQhjUj
responses:
'200':
description: Successfully retrieved registrations
schema:
$ref: '#/definitions/PaginatedRegistrations'
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:read
put:
tags:
- Events
summary: Update status for event registrations.
description: Use this endpoint to update the registration status for one or more registrations within an event track.
operationId: updateRegistrationStatusUsingPUT
consumes:
- application/json
produces:
- application/json
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
type: string
x-example: 07216444-4e3b-41ea-a3b8-5a418fce41f4
- name: track_id
in: path
description: The track key that uniquely identifies the event track.
required: true
type: string
x-example: gqz1gb
- name: increase_count
in: query
description: Override count flag.
required: false
type: boolean
- name: increase_item_count
in: query
description: Override item count flag.
required: false
type: boolean
- name: return_items_to_inventory
in: query
description: Return items to inventory flag. Defaults to `true`.
required: false
type: boolean
- in: body
name: body
description: Registration status update request data.
required: true
schema:
$ref: '#/definitions/RegistrationStatusUpdateRequestDto'
responses:
'200':
description: Successfully updated registration status.
'207':
description: Some registrations failed to update.
schema:
$ref: '#/definitions/RegistrationStatusUpdateResponseDto'
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:write
/events/{event_id}/tracks/{track_id}/registrations/payment_status:
put:
tags:
- Events
summary: Update payment status for event registrations.
description: Use this endpoint to update the payment status for one or more registrations. This endpoint only processes registrations with a payment method (PAYPAL, WEPAY, STRIPE, DOOR, or CHECK). Free registrations without a payment method are silently excluded.
operationId: updateRegistrationPaymentStatusUsingPUT
consumes:
- application/json
produces:
- application/json
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
type: string
x-example: c5da3665-88f9-4b15-82bc-cd6593c32537
- name: track_id
in: path
description: The track key that uniquely identifies the event track.
required: true
type: string
x-example: 2unzqq
- in: body
name: body
description: Payment status update request data.
required: true
schema:
$ref: '#/definitions/PaymentStatusUpdateRequestDto'
responses:
'200':
description: Successfully updated payment status.
'207':
description: Some registrations failed to update.
schema:
$ref: '#/definitions/RegistrationStatusUpdateResponseDto'
'400':
description: Bad request. Either the JSON was malformed or there was a data validation error.
'401':
description: The Access Token used is invalid.
'403':
description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
'404':
description: The requested resource was not found.
'500':
description: There was a problem with our internal service.
security:
- oauth2_implicit:
- campaign_data
- oauth2_access_code:
- campaign_data
x-authorization-privileges:
- campaign:write
definitions:
Href:
type: object
properties:
href:
type: string
TrackDto:
type: object
required:
- campaign_activity_id
properties:
campaign_activity_id:
type: string
format: uuid
example: 31bb0c22-1c72-4841-9d2c-8bd41ed526bc
description: The campaign activity ID associated with the registration form.
readOnly: true
conf_email_campaign_activity_id:
type: string
format: uuid
example: 31bb0c22-1c72-4841-9d2c-8bd41ed526bc
description: The confirmation email campaign activity ID.
readOnly: true
create_time:
type: string
example: '2023-11-17T17:33:21.652Z'
description: The event's create time.
readOnly: true
items_header:
type: string
example: Items
description: items header
last_update_time:
type: string
example: '2023-12-07T13:18:39.681Z'
description: The event's last modification time.
readOnly: true
media_assets:
type: array
description: The list of media assets configured for the event.
items:
$ref: '#/definitions/EventMediaAssetDto'
overall_ticket_capacity:
type: integer
format: int32
example: 100
description: The total overall ticket capacity.
platform_fee_scope_type:
type: string
example: OWNER
description: Specifies if the platform fee is passed to registrant or absorbed by the event host.
promo_codes:
type: array
description: The list of <code>promo_codes</code> configured for the event.
items:
$ref: '#/definitions/PromoCodeDto'
reg_manually_closed_flag:
type: boolean
example: true
description: Closes registration to prevent further registrations.
registration_end_time:
type: string
example: '2024-01-01T20:30:00Z'
description: The date and time when registration should end. ISO format.
registration_type:
type: string
example: TICKET
description: The registration type for the event.
restrict_to_single_ticket_flag:
type: boolean
example: true
description: Restricts selection to a single ticket.
tickets_header:
type: string
example: Tickets
description: The header to use for tickets.
track_id:
type: string
example: s8zabc
description: The ticket <code>track id</code>.
readOnly: true
items:
type: array
readOnly: true
items:
$ref: '#/definitions/ItemDto'
title: TrackDto
RegistrationTicketDto:
type: object
properties:
checked_in_time:
type: string
format: date-time
example: '2025-11-20T16:13:02.072Z'
description: The event check in time date, in ISO format.
editable:
type: boolean
example: false
description: Set to <code>true</code> to allow or <code>false</code> to not allow registrations to be modified.
order_ticket_key:
type: string
example: a1b2c3
description: The system generated number used to identify a ticket order.
price:
type: number
example: 25.0
description: The price for a ticket.
ticket_name:
type: string
example: General Admission
description: The name used to identify the ticket.
fields:
type: array
items:
$ref: '#/definitions/SimpleFieldDto'
EventMetaDataDto:
type: object
properties:
items_enabled:
type: boolean
example: true
description: Specifies if the items are enabled for the event.
paid_event:
type: boolean
example: true
description: Specifies if the event requires payment.
promo_codes_enabled:
type: boolean
example: true
description: Specifies if promotion codes are enabled for the event.
title: EventMetaDataDto
description: Additional information related to event
EventListingDto:
type: object
properties:
event_id:
type: string
example: 05cf4d60-56ea-4023-bf49-b35e56a9c7b5
description: The unique identifier for the event.
title:
type: string
example: Class of 2015 Reunion
description: The title of the event.
description:
type: string
example: Join us for a night of reminiscing and celebration!
description: The description of the event.
start_time:
type: string
example: '2023-12-01T20:30:00Z'
description: The start time of the event in UTC format.
end_time:
type: string
example: '2023-12-01T21:30:00Z'
description: The end time of the event in UTC format.
status:
type: string
example: ACTIVE
description: The current status of the event.
registration_url:
type: string
example: https://sample_url.com/ev/reg/scrk2u2
description: The URL for event registration
name:
type: string
example: Holiday Market at Snowport
description: The name of the event.
event_type:
type: string
example: PERFORMING_ARTS
description: Use to specify the type of event.
location_type:
type: string
example: PHYSICAL
description: Specifies if this is a physical or virtual event (of both), or if the location is to be specified in the future.
time_zone_type:
type: string
example: EST
description: The type of time zone.
address:
$ref: '#/definitions/AddressDto'
event_registration_summary_metrics:
$ref: '#/definitions/EventRegistrationSummaryMetricDto'
create_time:
type: string
example: '2023-09-01T20:30:00Z'
description: The create time of the event in UTC format.
description: Provides information about the event listing.
LineItemDetailsDto:
type: object
properties:
amount:
type: string
example: $25.00
description: The formatted amount of the line item.
amount_unformatted:
type: number
example: 25.0
description: The unformatted amount of the line item.
line_item_type:
type: string
example: TICKET
description: Type of line item.
name:
type: string
example: General Admission
description: The name of the line item.
RegistrantInformationLiteDto:
type: object
properties:
checkedIn_tickets:
type: integer
format: int32
example: 1
description: The total number of tickets processed to check in for the event.
checkin_status:
type: string
example: CHECKED_IN
description: The status of the check-in.
eligible_checkin_tickets:
type: integer
format: int32
example: 2
description: The current checkin status.
email_address:
type: string
example: sarah_lang@mymail.com
description: The email address associated with the registered event user.
first_name:
type: string
example: sarah
description: The first name of the person that registered for the event.
last_name:
type: string
example: lang
description: The last name of the person that registered for the event.
new_contact:
type: boolean
example: true
description: Set to <code>true</code> to indicate that the contact is new, otherwise set to <code>false</code>.
payment_status:
type: string
example: PAID
description: The current payment status for a registration.
registration_id:
type: string
example: 3f1ceb43-f858-432e-b2
# --- truncated at 32 KB (67 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/constant-contact/refs/heads/main/openapi/constant-contact-events-api-openapi.yml