Constant Contact Events API
Endpoints and methods used to create and manage events.
Endpoints and methods used to create and manage events.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/constant-contact-events-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.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.178
title: AppConnect V3 Events API
contact:
name: webservices@constantcontact.com
license:
name: Private
url: https://www.constantcontact.com/legal/terms-of-use
servers:
- url: https://api.cc.email/v3
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
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
x-example: DRAFT
schema:
type: string
- name: search_text
in: query
description: Use to return only events that include the specified text.
required: false
x-example: reunion
schema:
type: string
- 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
x-example: created_time
schema:
type: string
- 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
x-example: DESC
schema:
type: string
- name: limit
in: query
description: Limit the number of results to return per page. Default and maximum is `100`.
required: false
x-example: '5'
schema:
type: string
- 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
x-example: 7zDEe3DhD5gUiwRFsvWKKZlZO1j6-YihH2hyVWD8GaW7JnzXbHFP8Tou212KoU20mOjvM6pdWwycDWC3X-Hb_xY-RK1eBwYp_pc4X2CvLxo.
schema:
type: string
- 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
x-example: 7zDEe3DhD5gUiwRFsvWKKZlZO1j6-YihH2hyVWD8GaW7JnzXbHFP8Tou212KoU20mOjvM6pdWwycDWC3X-Hb_xY-RK1eBwYp_pc4X2CvLxo
schema:
type: string
responses:
'200':
description: Request Successful
content:
application/json:
schema:
$ref: '#/components/schemas/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
parameters:
- name: name
in: query
description: Name for the new event. If not provided, a default name will be generated.
required: false
x-example: My Event
schema:
type: string
- name: start_time
in: query
description: Event start time in ISO 8601 format. If not provided, defaults to a future date.
required: false
x-example: '2024-01-15T10:00:00Z'
schema:
type: string
- 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
x-example: '2024-01-15T18:00:00Z'
schema:
type: string
- name: placeholder_campaign_id
in: query
description: Placeholder campaign ID for the event.
required: false
x-example: campaign-123
schema:
type: string
responses:
'201':
description: Event created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/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
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
schema:
type: string
- name: include
in: query
description: Use to include (`true`) or exclude (`false`) event setting properties in the results.
required: false
x-example: true
schema:
type: boolean
responses:
'200':
description: Request Successful
content:
application/json:
schema:
$ref: '#/components/schemas/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
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event to update.
required: true
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
schema:
type: string
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EventDto'
description: A JSON request body containing the event fields to update.
required: true
/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
parameters:
- name: event_id
in: path
description: The ID of the event to copy.
required: true
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
schema:
type: string
responses:
'200':
description: Event copied successfully
content:
application/json:
schema:
$ref: '#/components/schemas/EventDto'
'207':
description: Event copied with some failures
content:
application/json:
schema:
$ref: '#/components/schemas/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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EventCopyRequestDto'
description: A JSON request body containing the copy options.
required: true
/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
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
x-example: 07216444-4e3b-41ea-a3b8-5a418fce41f4
schema:
type: string
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OrderTicketKeysRequestDto'
description: Set of order ticket keys to mark as checked in.
required: true
/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
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
x-example: 07216444-4e3b-41ea-a3b8-5a418fce41f4
schema:
type: string
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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OrderTicketKeysRequestDto'
description: Set of order ticket keys to mark as not checked in.
required: true
/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
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
schema:
type: string
- name: track_id
in: path
description: The track key that uniquely identifies the event track.
required: true
x-example: s8zabc
schema:
type: string
- name: registration_id
in: path
description: The ID that uniquely identifies the registration.
required: true
x-example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
schema:
type: string
responses:
'200':
description: Request Successful
content:
application/json:
schema:
$ref: '#/components/schemas/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
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
x-example: 1697732a-8664-4675-8415-c4aabaa17dae
schema:
type: string
- name: track_id
in: path
description: The track ID that uniquely identifies the event track.
required: true
x-example: s8zabc
schema:
type: string
- name: registration_status
in: query
description: Filter registration results by status.
required: false
x-example: REGISTERED
schema:
type: string
enum:
- PENDING
- REGISTERED
- CANCELED
- EXPIRED
- IN_PROGRESS, FAILED
- name: payment_status
in: query
description: Filter registration results by payment status.
required: false
x-example: PAID
schema:
type: string
enum:
- PENDING
- PAID
- REFUNDED
- CANCELLED
- FAILED
- CHARGED_BACK
- name: search_text
in: query
description: Filter registration results by first name, last name, or email address.
required: false
x-example: john.doe@example.com
schema:
type: string
- name: sort_by
in: query
description: Specify the field to use to sort the results.
required: false
x-example: email_address
schema:
type: string
enum:
- first_name
- last_name
- email_address
- registration_status
- payment_status
- tickets
- total
- name: sort_order
in: query
description: Use to specify how you want the results sorted.
required: false
x-example: ASC
schema:
type: string
enum:
- ASC
- DESC
- 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
x-example: '50'
schema:
type: string
- 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
x-example: '50'
schema:
type: string
- name: prev
in: query
description: Cursor for pagination used to get the previous page of results (mutually exclusive with <code>next</code>).
required: false
x-example: bSzsyWkkq95R44vIFEpY62gr8_xSeRXsEQkhnhltPgiT
schema:
type: string
- name: next
in: query
description: Cursor for pagination used to get the next page of results (mutually exclusive with <code>prev</code>).
required: false
x-example: cTk9xLmmr06S55wJGfQ73hs9_yTfSYtFRlimimQhjUj
schema:
type: string
responses:
'200':
description: Successfully retrieved registrations
content:
application/json:
schema:
$ref: '#/components/schemas/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
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
x-example: 07216444-4e3b-41ea-a3b8-5a418fce41f4
schema:
type: string
- name: track_id
in: path
description: The track key that uniquely identifies the event track.
required: true
x-example: gqz1gb
schema:
type: string
- name: increase_count
in: query
description: Override count flag.
required: false
schema:
type: boolean
- name: increase_item_count
in: query
description: Override item count flag.
required: false
schema:
type: boolean
- name: return_items_to_inventory
in: query
description: Return items to inventory flag. Defaults to `true`.
required: false
schema:
type: boolean
responses:
'200':
description: Successfully updated registration status.
'207':
description: Some registrations failed to update.
content:
application/json:
schema:
$ref: '#/components/schemas/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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RegistrationStatusUpdateRequestDto'
description: Registration status update request data.
required: true
/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
parameters:
- name: event_id
in: path
description: The ID that uniquely identifies the event.
required: true
x-example: c5da3665-88f9-4b15-82bc-cd6593c32537
schema:
type: string
- name: track_id
in: path
description: The track key that uniquely identifies the event track.
required: true
x-example: 2unzqq
schema:
type: string
responses:
'200':
description: Successfully updated payment status.
'207':
description: Some registrations failed to update.
content:
application/json:
schema:
$ref: '#/components/schemas/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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentStatusUpdateRequestDto'
description: Payment status update request data.
required: true
components:
schemas:
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-b287-30a6d20d1250
description: The ID that uniquely identifies a registration.
registration_status:
type: string
example: <code>REGISTERED</code>
description: 'The status of a registration. Acceptable values include: <code>PENDING</code>, <code>REGISTERED</code>, <code>CANCELED</code>, <code>EXPIRED</code>, <code>IN_PROGRESS</code>, <code>FAILED</code>.'
registration_time:
type: string
format: date-time
example: '2025-11-20T16:13:02.072Z'
description: The time of event registration, in ISO format.
tickets:
type: integer
format: int32
example: 5
description: Total number of tickets associated with a registration.
total:
type: number
example: 100.0
description: The total amount paid for a registration.
track_key:
type: string
example: wfhmkz
description: System generated string used to track a registration.
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: '#/components/schemas/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: '#/components/schemas/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: '#/components/schemas/ItemDto'
title: TrackDto
SimpleFieldDto:
type: object
properties:
display_order:
type: integer
format: int32
example: 1
description: 'If specified, determines the order in which to return a subset of contact''s details. For example, if you want a contact''s email address to display first, set the <code>display_order</code> to <code>1</code> within the <code>field_label</code>: <code>CONTACT_EMAIL_ADDRESS</code> details section.'
field_label:
type: string
example: Email Address
description: The label used to identify a field within each contact details section.
field_name:
type: string
example: CONTACT_EMAIL_ADDRESS
description: The formatted name used to identify a field within each contact details section.
field_type:
type: string
example: TEXT
description: Identifies the type of field. Acceptable values include; TEXT_AREA, DATE, SINGLE_SELECT,MULTI_SELECT, INFORMATIONAL, TERMS_CONDITIONS, ADDRESS, HEADER, DIVIDER, STATIC_TEXT.
label_key:
type: string
example: registration.field.label.contact_email_address
description: The label used to identify a contact's registration details.
field_value:
type: string
example: john.doe@example.com
description: The value of the field for this contact. For example, if the field is an email address, the field_value would contain the actual email address.
choices:
type: array
example:
- Option 1
- Option 2
- Option 3
description: For SINGLE_SELECT and MULTI_SELECT field types, this array contains the available options the registrant can choose from.
items:
type: string
description: An array of contact details.
EventMetaDataDto:
type: object
properties
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/constant-contact/refs/heads/main/openapi/constant-contact-events-api-openapi.yml