Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Cvent Event Cloud Attendees API
version: ea
contact:
name: Cvent Development Platform
url: https://developers.cvent.com/
description: 'Operations tagged Attendees across 2 of this provider''s published API definitions: cvent-event-cloud-rest-openapi.yml, cvent-rest-apis-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
tags:
- name: Attendees
description: The Attendee entity primarily refers to the person throughout the lifecycle of an event including registration, enrollment into sessions, and participation. Once contacts are added to events, an Attendee entity is created. This API allows you to read attendee data and add new attendees to your Cvent events.
paths:
/attendance-durations:
get:
summary: List Attendance Duration
operationId: listDurations
description: Gets a paginated list of durations attendees were engaged (in person or virtually) in a session, appointment or watching a video.
tags:
- Attendees
security:
- OAuth2.clientCredentials:
- event/attendance-durations:read
- OAuth2.authorizationCode:
- event/attendance-durations:read
parameters:
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/before'
- $ref: '#/components/parameters/limit1'
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/sort5'
- name: filter
in: query
required: false
description: 'Use filter query parameters to limit results
to data that matches your criteria. See
[Filters](https://developers.cvent.com/docs/rest-api/reference/filters) for details.
Supported fields and operators are listed below:
| Field | Operators |
|-------------|------------------------------------|
| id | `eq`, `ne` |
| event.id | `eq`, `ne`, `in` |
| session.id | `eq`, `ne`, `in` |
| attendee.id | `eq`, `ne`, `in` |
| type | `contains`, `eq`, `ne`, `in` |
| deleted | `eq`, `ne` |
| firstSeen | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |
| lastSeen | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |
| duration | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |
| created | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |
The following logical operators are supported for combining filters:
* and
* or
'
schema:
type: string
example: firstSeen gt '2020-02-07T12:00:00.000Z' and session.id = '0e2f583e-62ae-40d8-9b5c-b8e67a6ba1ab'
responses:
'200':
description: Successfully retrieved a Paginated list of Durations.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/duration-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
/attendees:
post:
tags:
- Attendees
operationId: createAttendee
security:
- OAuth2.clientCredentials:
- event/attendees:write
- OAuth2.authorizationCode:
- event/attendees:write
summary: Add Attendees
description: Adds given contacts to an event as attendees, either inviting them or registering them directly.
requestBody:
description: 'This endpoint supports both the invite and the ability to push registered attendees into Cvent.
There are some slight differences in how you use each path.
**Invite**
Fields supported for invite:
* event.id *(required)*
* contact.id *(required)*
* invitationList.id
**Note:** Up to 100 attendees can be invited per call. Sending a *status* of `No Response` will invite the attendee.
**Register**
* All fields are supported for register.
* admissionItem.id *(required)*
**Note:** When sending registration, one attendee per call is supported. Sending a status of `Accepted` will register the attendee.
'
content:
application/json:
schema:
$ref: '#/components/schemas/attendee-add-bulk'
required: true
responses:
'207':
description: Attendee(s) were successfully added to the event.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/attendee-add-bulk-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
get:
security:
- OAuth2.clientCredentials:
- event/attendees:read
- OAuth2.authorizationCode:
- event/attendees:read
summary: List Attendees
description: Gets a paginated list of attendees in your account.
operationId: listAttendees
parameters:
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/before'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/expand'
- $ref: '#/components/parameters/sort7'
- $ref: '#/components/parameters/includeDeletedGuests'
- name: filter
in: query
required: false
description: 'Use filter query parameters to limit results
to data that matches your criteria. See
[Filters](https://developers.cvent.com/docs/rest-api/reference/filters) for details.
Supported fields and operators are listed below:
| Field | Operators | Notes |
|------------------|-------------------------------------|------------------------------------------|
| event.id | `eq`, `ne` | |
| id | `eq`, `ne` | |
| confirmationNumber | `eq`, `ne` | |
| checkedIn | `eq`, `ne` | |
| checkIn | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | |
| checkOut | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | |
| registrationPath.id | `eq`, `ne` | |
| invitationList.id | `eq`, `ne` | |
| registrationType.id | `eq`, `ne`, `is null`, `is not null`, `is empty`, `is not empty` | |
| referenceId | `eq`, `ne` | |
| externalReference.type | `eq` | |
| externalReference.id | `eq` | |
| externalReference.referenceId | `eq` | |
| note | `eq`, `ne` | |
| guest | `eq`, `ne` | |
| group.leader | `eq`, `ne` | |
| group.id | `eq`, `ne` | |
| unsubscribed | `eq`, `ne` | Read-only. To update an attendee''s subscription status, use [PUT /attendees/{id}/email-subscriptions](#operation/updateAttendeeSubscriptionStatus) |
| registeredAt | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | |
| registrationLastModified | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | |
| invitedBy | `eq`, `ne` | |
| responseMethod | `eq`, `ne` | |
| status | `eq`, `ne` | |
| lastModified | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | Will be updated when any field in the response has changed. Used by the ''before'' and ''after'' filters. |
| created | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | |
| contact.id | `eq`, `ne` | |
| visibility | `eq`, `ne` | |
| contact.title | `eq`, `ne`, `sw` | |
| contact.company | `eq`, `ne`, `sw` | |
| contact.firstName | `eq`, `ne`, `sw` | |
| contact.lastName | `eq`, `ne`, `sw` | |
| answers.question.{question id} | `eq`, `ne` | |
| contact.email | `eq`, `ne`, `sw` | |
| attendeeLastModified | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | Will be updated only when some field other than contact.* has changed. Not used by the ''before'' and ''after'' filters. |
| appointmentGroup.id | `eq`, `ne` | |
| contact.deleted | `eq`, `ne` | |
| primaryId | `eq`, `ne` | |
| deletedGuest | `eq`, `ne` | Filter returns guests marked as deleted. This filter works only when the query parameter `includeDeletedGuests` is `true`. |
'
schema:
type: string
example: contact.id eq '04ca6ae2-0dc3-487b-953e-86d6abbdf7d3' or checkedIn eq 'true'
tags:
- Attendees
responses:
'200':
description: Successfully retrieved a paginated list of attendees.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/attendee-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
/attendees/filter:
post:
security:
- OAuth2.clientCredentials:
- event/attendees:read
- OAuth2.authorizationCode:
- event/attendees:read
summary: List Attendees
description: 'Gets a paginated list of attendees by sending a filter in the body of the request. This method will return the same data as [GET List Attendees](#operation/listAttendees) but allows for longer filters.
'
operationId: listAttendeesPostFilter
requestBody:
description: 'The request body accepts filters to refine the data returned. Refer to available filter details in [GET List Attendees](#operation/listAttendees).
'
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/filter'
parameters:
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/before'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/expand'
- $ref: '#/components/parameters/sort7'
- $ref: '#/components/parameters/includeDeletedGuests'
tags:
- Attendees
responses:
'200':
description: Successfully retrieved a paginated list of attendees.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/attendee-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
/attendees/{id}:
parameters:
- $ref: '#/components/parameters/attendeeId2'
get:
summary: Get Attendee
description: Gets a single attendee based on their ID.
operationId: getAttendeeById
security:
- OAuth2.clientCredentials:
- event/attendees:read
- OAuth2.authorizationCode:
- event/attendees:read
tags:
- Attendees
parameters:
- $ref: '#/components/parameters/expand'
responses:
'200':
description: Successfully retrieved an attendee object.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/attendee'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
put:
summary: Update Attendee
description: Updates a single attendee based on their ID.
operationId: updateAttendee
security:
- OAuth2.clientCredentials:
- event/attendees:write
- OAuth2.authorizationCode:
- event/attendees:write
tags:
- Attendees
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/attendee-update'
required: true
responses:
'200':
description: Successfully updated the attendee.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/attendee'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
/attendees/{id}/email-subscriptions:
put:
summary: Update Email Subscription
description: Updates an attendee's email subscription status for a specific event.
operationId: updateAttendeeSubscriptionStatus
security:
- OAuth2.clientCredentials:
- event/attendees:write
- OAuth2.authorizationCode:
- event/attendees:write
tags:
- Attendees
parameters:
- $ref: '#/components/parameters/attendeeId2'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/attendee-subscription-request'
responses:
'200':
description: Successfully updated the attendee's subscription status.
content:
application/json:
schema:
$ref: '#/components/schemas/attendee-subscription-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
/attendees/{id}/internal-information-questions:
parameters:
- $ref: '#/components/parameters/attendeeId2'
put:
operationId: updateInternalInfoAnswers
security:
- OAuth2.clientCredentials:
- event/attendees:write
- OAuth2.authorizationCode:
- event/attendees:write
summary: Update Internal Information
description: Update internal information answers for an attendee. Use either question code or id to identify which question's answers are being updated.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/attendee-internal-info'
tags:
- Attendees
responses:
'200':
description: Successfully updated attendee internal information.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/attendee-internal-info'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
/events/{id}/badges:
post:
summary: Create Badge
description: Create a badge for an attendee associated with an event.
operationId: postBadge
tags:
- Attendees
security:
- OAuth2.clientCredentials:
- exhibitor/badges:write
- OAuth2.authorizationCode:
- exhibitor/badges:write
parameters:
- $ref: '#/components/parameters/id6'
requestBody:
description: Badge details
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/badge'
responses:
'200':
description: Successfully created a badge.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/badge'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
get:
summary: Get Badge
description: Retrieves a list of third-party badge associations for attendees within the event.
operationId: getBadge
tags:
- Attendees
security:
- OAuth2.clientCredentials:
- exhibitor/badges:read
- OAuth2.authorizationCode:
- exhibitor/badges:read
parameters:
- $ref: '#/components/parameters/id6'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- name: filter
in: query
required: false
description: 'A filter query string narrows search results and supports the combination of logical and comparison operators.
The filter adheres to the pattern filter=''field'' comparisonType ''value''.
These are the comparison types that can be used in filter expressions:
* equal: eq
The following fields are filterable:
* id (eq)
* attendee.id (eq)
'
schema:
type: string
example: id eq '{string}' and attendee.id eq '{UUID}'
responses:
'200':
description: Successfully get badges.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/badge-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
/events/{id}/badges/filter:
post:
summary: Get Badges
description: Gets a paginated list of Badges by sending a filter in the body of the request. This method will return the same data as the getBadge but allows for longer filters.
operationId: getBadgesPostFilters
tags:
- Attendees
security:
- OAuth2.clientCredentials:
- exhibitor/badges:read
- OAuth2.authorizationCode:
- exhibitor/badges:read
parameters:
- $ref: '#/components/parameters/id6'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
requestBody:
description: See the filter query parameter of <a href="#operation/getBadge">Get Badges</a> for full filtering information
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/filter'
example:
filter: id eq '04ca6ae2-0dc3-487b-953e-86d6abbdf7d3' AND attendee.id eq 'edf40757-3bc3-4a66-8180-93bff15b890b'
responses:
'200':
description: Successfully get badges.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/badge-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
/events/{id}/badges/{badgeId}:
put:
summary: Update Badge
description: Update a badge for an attendee associated with an event.
operationId: updateBadge
tags:
- Attendees
security:
- OAuth2.clientCredentials:
- exhibitor/badges:write
- OAuth2.authorizationCode:
- exhibitor/badges:write
parameters:
- $ref: '#/components/parameters/id6'
- $ref: '#/components/parameters/badgeId'
requestBody:
description: Badge details
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/badge'
responses:
'200':
description: Successfully updated the badge.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/badge'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
components:
schemas:
AttendeeWebLinks:
title: AttendeeWebLinks
description: Web links for an attendee.
type: object
properties:
acceptRegistration:
type: string
format: uri
description: This shortened URL, when used, allows you to accept the registration.
example: https://example.com/123ABC?i=abcdefghijklmnopqrstuv
declineRegistration:
type: string
format: uri
description: This shortened URL, when used, allows you to decline the registration.
example: https://example.com/123ABC?i=abcdefghijklmnopqrstuv
attendee-add-bulk-response:
title: AttendeeInvitesBulkResponse
description: List of attendee invitations.
type: array
items:
$ref: '#/components/schemas/AttendeeInvitesBulkResponseItem'
UUID:
title: UUID
description: The reference to the related entity. Contains only the ID of the related entity.
required:
- id
type: object
properties:
id:
$ref: '#/components/schemas/UUIDProperty'
ExternalReference:
title: ExternalReference
description: An external reference.
type: object
properties:
type:
$ref: '#/components/schemas/ExternalReferenceType'
id:
type: string
description: The identifier of the external system.
example: 0000X123sfjhooks
referenceId:
type: string
description: The identifier of an attendee in the external system.
example: 000X123jhooks
Gender:
title: Gender
enum:
- Male
- Female
- Non-binary
- Rather not say
type: string
description: The gender of the contact.
example: Male
attendee-internal-info:
title: AttendeeInternalInfo
description: Model representing internal information answers for an attendee to be added or updated.
type: object
required:
- question
- value
properties:
question:
type: object
properties:
id:
description: The question ID.
type: string
format: uuid
example: adcc4376-4560-4fb3-8594-2fdbb637c07c
code:
type: string
example: DIETARY
description: The planner configured internal information question code.
description: The registration question. Use either question ID or code to identify the question. If both are provided, they must match the same question.
value:
type: array
items:
type: string
example: '1234'
description: The set of answers to a question.
duration:
title: Duration
description: The amount of time that the attendee was engaged (in person or virtually) in a session or watching a video.
required:
- event
- session
- attendee
- firstSeen
- lastSeen
- duration
type: object
allOf:
- title: Audit
description: Audit information
type: object
properties:
created:
type: string
format: date-time
description: The ISO 8601 zoned date time when this record was created.
readOnly: true
example: '2017-01-02T02:00:00Z'
createdBy:
type: string
description: The identifier of the user that created this record.
readOnly: true
example: hporter
lastModified:
type: string
format: date-time
description: The ISO 8601 zoned date time when this record was updated.
readOnly: true
example: '2019-02-12T03:00:00Z'
lastModifiedBy:
type: string
description: The identifier of the user that last updated this record.
readOnly: true
example: hporter
properties:
event:
$ref: '#/components/schemas/uuid.json'
session:
$ref: '#/components/schemas/uuid.json'
attendee:
$ref: '#/components/schemas/uuid.json'
firstSeen:
type: string
format: date-time
description: The earliest date and time when the attendee was seen, in ISO 8601 format.
example: '2020-02-03T13:00:00.000Z'
lastSeen:
type: string
format: date-time
description: The latest date and time when the attendee was seen, in ISO 8601 format.
example: '2020-02-03T13:00:00.000Z'
deleted:
type: boolean
description: A duration record is deleted if marked as recanted by the algorithm after determining the initial information has changed
example: false
readOnly: true
type:
enum:
- RFID
- OA
- EDIT
- LIVE
- ON_DEMAND
- API
- MANUAL
- IMPORT
- EVENTAPP
type: string
description: Describes how the duration was obtained.
example: API
readOnly: true
durationType:
enum:
- session
- appointment
- exhibitor
type: string
description: The target entity for which the duration was collected.
example: session
readOnly: true
duration:
type: integer
description: 'The amount of time (in milliseconds) than the attendee was engaged (in person o
# --- truncated at 32 KB (131 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cvent-event-cloud/refs/heads/main/openapi/cvent-event-cloud-attendees-api-openapi.yml