Cvent Sessions API
A session is a presentation, discussion, or activity. Use these APIs to get information about your sessions and use the session ID to get further data within the event.
A session is a presentation, discussion, or activity. Use these APIs to get information about your sessions and use the session ID to get further data within the event.
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/cvent-sessions-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.0.2
info:
title: Cvent REST APIs — Sessions
version: ea
description: A session is a presentation, discussion, or activity. Use these APIs to get information about your sessions
and use the session ID to get further data within the event.
contact:
name: Cvent Development Platform
url: https://developers.cvent.com/
externalDocs:
description: Cvent REST API documentation
url: https://developers.cvent.com/documentation
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
tags:
- name: Sessions
description: A session is a presentation, discussion, or activity. Use these APIs to get information about your sessions
and use the session ID to get further data within the event.
paths:
/events/{id}/session-locations:
parameters:
- $ref: '#/components/parameters/eventId1'
get:
security:
- OAuth2.clientCredentials:
- event/sessions:read
- OAuth2.authorizationCode:
- event/sessions:read
summary: List Session Locations
description: Gets a paginated list of session locations.
operationId: getSessionLocation
tags:
- Sessions
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
responses:
'200':
description: Successfully retrieved paginated list of session locations.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/session-locations-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'
post:
security:
- OAuth2.clientCredentials:
- event/sessions:write
- OAuth2.authorizationCode:
- event/sessions:write
summary: Add Session Location
description: Add a session location to the specified event.
operationId: addSessionLocation
tags:
- Sessions
requestBody:
description: Details of the session location you're creating.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/session-location'
responses:
'201':
description: Successfully created a session location
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/session-location'
'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'
/program-items:
post:
security:
- OAuth2.clientCredentials:
- event/program-items:write
- OAuth2.authorizationCode:
- event/program-items:write
summary: Create Program Item
description: Create a session program item based on the details provided in the body of the request. A session program
item is a specific part of a session's schedule, like a talk, workshop, or panel discussion. Max 25 program items
per session.
operationId: createProgramItem
tags:
- Sessions
requestBody:
description: Session program item to be created.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/program-item'
responses:
'201':
description: Successfully created the session program item.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/program-item'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
get:
security:
- OAuth2.clientCredentials:
- event/program-items:read
- OAuth2.authorizationCode:
- event/program-items:read
summary: List Program Items
description: Gets a paginated list of session program items.
operationId: listProgramItems
tags:
- Sessions
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- name: filter
in: query
required: false
description: 'Use filter query parameters to limit results
to data that matches your criteria. See
[Filters](/docs/rest-api/reference/filters) for details.
Supported fields and operators are listed below:
| Field | Operators |
|------------|------------|
| id | `eq`, `in` |
| session.id | `eq`, `in` |
| event.id | `eq` |
The following logical operators are supported for combining filters:
* and
* or
'
schema:
type: string
example: session.id in ('04ca6ae2-0dc3-487b-953e-86d6abbdf7d3', '34ca65e2-1dc3-487b-589e-839d8bbdf7d3')
responses:
'200':
description: Successfully retrieved a paginated list of session program items.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/program-item-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
/program-items/docs/filter:
post:
security:
- OAuth2.clientCredentials:
- event/program-items:read
- OAuth2.authorizationCode:
- event/program-items:read
summary: Filter Program Item Documents
description: Gets a paginated list of session program item documents using a filter in the body of the request.
operationId: filterProgramItemDocuments
tags:
- Sessions
requestBody:
description: "A filter query string narrows search results and supports the combination of logical and comparison\
\ operators.\nThe filter adheres to the pattern filter='field' comparisonType 'value'.\n\nThese are the comparison\
\ types that can be used in filter expressions:\n * equal: eq\n * includes value(s): in\n\nThe following fields\
\ are filterable:\n * document.id (eq|in)\n * programItem.id (eq|in)\n * session.id (eq|in)\n * event.id (eq)\n\
\nThe following operators are available:\n * and\n * or\n"
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'
responses:
'200':
description: Successfully retrieved a paginated list of session program item documents.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/program-item-document-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
/program-items/filter:
post:
security:
- OAuth2.clientCredentials:
- event/program-items:read
- OAuth2.authorizationCode:
- event/program-items:read
summary: List Program Items
description: Gets a paginated list of session program items by sending a filter in the body of the request. This method
will return the same data as <a href="#operation/listProgramItems">GET List Program Items</a> but allows for longer
filters.
operationId: listProgramItemsPostFilters
tags:
- Sessions
requestBody:
description: See the filter description of <a href="#operation/listProgramItems">GET List Program Items</a> for full
filtering information.
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/locale2'
responses:
'200':
description: Successfully retrieved a paginated list of session program items.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/program-item-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
/program-items/{programItemId}:
parameters:
- $ref: '#/components/parameters/programItemId1'
put:
security:
- OAuth2.clientCredentials:
- event/program-items:write
- OAuth2.authorizationCode:
- event/program-items:write
summary: Update Program Item
description: Updates the given session program item based on the details provided in the body of the request.
operationId: updateProgramItem
tags:
- Sessions
requestBody:
description: Session program item to be updated.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/program-item-update-request'
responses:
'200':
description: Successfully updated the session program item.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/program-item'
'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'
delete:
security:
- OAuth2.clientCredentials:
- event/program-items:delete
- OAuth2.authorizationCode:
- event/program-items:delete
summary: Delete Session Program Item
description: Delete the given session program item.
operationId: deleteProgramItem
tags:
- Sessions
responses:
'204':
description: Successfully deleted the given session program item.
headers: {}
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
/program-items/{programItemId}/docs:
parameters:
- $ref: '#/components/parameters/programItemId1'
get:
security:
- OAuth2.clientCredentials:
- event/program-items:read
- OAuth2.authorizationCode:
- event/program-items:read
summary: Get Program Item Documents
description: 'Returns a list of session documents for the specified program item ID.
**Note:** This endpoint is deprecated. use <a href="#operation/filterProgramItemDocuments">Filter Program Item Documents</a>'
operationId: getProgramItemDocuments
tags:
- Sessions
responses:
'200':
description: Successfully retrieved a list of program item to session document relationships for the specified program
item ID.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/program-item-session-documents'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: true
/program-items/{programItemId}/docs/{fileId}:
parameters:
- $ref: '#/components/parameters/programItemId1'
- $ref: '#/components/parameters/fileId'
put:
security:
- OAuth2.clientCredentials:
- event/program-items:write
- OAuth2.authorizationCode:
- event/program-items:write
summary: Add Program Item Document
description: Creates a relationship between a session program item and a session document. Limit 10 session documents
per session program item.
operationId: relateProgramItemToSessionDocument
tags:
- Sessions
responses:
'200':
description: Successfully created the relationship between the session program item and the session document.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/program-item-session-document'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'409':
description: Program item session document limit reached.
content:
application/json:
schema:
$ref: '#/components/schemas/baseErrorResponse'
example:
code: 409
message: Conflict
'429':
$ref: '#/components/responses/TooManyRequests1'
get:
security:
- OAuth2.clientCredentials:
- event/program-items:read
- OAuth2.authorizationCode:
- event/program-items:read
summary: Get Program Item Document
description: Returns a single program item to session document relationship for the provided IDs.
operationId: getProgramItemSessionDocument
tags:
- Sessions
responses:
'200':
description: Successfully retrieved a program item to session document relationship for the provided IDs.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/program-item-session-document'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
delete:
security:
- OAuth2.clientCredentials:
- event/program-items:delete
- OAuth2.authorizationCode:
- event/program-items:delete
summary: Delete Program Item Document
description: Deletes session program item to session document relationship based on the provided IDs.
operationId: deleteProgramItemSessionDocument
tags:
- Sessions
responses:
'204':
description: Successfully deleted session program item to session document relationship.
headers: {}
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
/session-categories:
get:
security:
- OAuth2.clientCredentials:
- event/session-categories:read
- OAuth2.authorizationCode:
- event/session-categories:read
summary: List Session Categories
description: Gets a paginated list of session categories.
operationId: listSessionsCategories
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- name: sort
in: query
required: false
style: form
explode: false
description: "The sort order passed as a parameter, used to control the order of the\nsearch results as a priority\
\ ordered list of sorts\n\nThere are two orders:\n * ascending: ASC\n * descending: DESC\n\nThe following fields\
\ are sortable:\n * name\n"
schema:
type: string
example: name:ASC
- name: filter
in: query
required: false
description: "Use filter query parameters to limit results\nto data that matches your criteria. See\n[Filters](/docs/rest-api/reference/filters)\
\ for details.\n\nSupported fields and operators are listed below:\n\n| Field | Operators \
\ |\n|------------------|-------------------------------------|\n| id | `eq`, `ne`,\
\ `in` |\n| name | `eq`, `ne`, `contains` |\n\nThe following operators\
\ are available:\n * and\n * or\n"
schema:
type: string
example: name contains 'general'
tags:
- Sessions
responses:
'200':
description: Successfully retrieved a paginated list of sessions categories.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/session-category-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'
post:
security:
- OAuth2.clientCredentials:
- event/session-categories:write
- OAuth2.authorizationCode:
- event/session-categories:write
summary: Create Session Categories
description: Create a session category.
operationId: createSessionCategory
tags:
- Sessions
requestBody:
description: Contains the details of the session category you're creating.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/session-category'
responses:
'201':
description: Successfully created a session category.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/session-category'
'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'
/session-segments:
get:
security:
- OAuth2.clientCredentials:
- event/session-segments:read
- OAuth2.authorizationCode:
- event/session-segments:read
summary: Get Session Segments
description: Return a list of session and audience segment associations.
operationId: GetSessionSegments
tags:
- Sessions
parameters:
- $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.\nThe filter adheres to the pattern filter='field' comparisonType 'value'.\n\nThere are two comparison\
\ types that can be used in filter expressions:\n * equal: eq\n * includes value(s): in\n\nThe following field\
\ is filterable:\n * segment.id (eq|in)\n * session.id (eq|in)\n\nThe following operators are available:\n *\
\ and\n * or\n"
schema:
type: string
example: segment.id in ('04ca6ae2-0dc3-487b-953e-86d6abbdf7d3', '34ca65e2-1dc3-487b-589e-839d8bbdf7d3')
responses:
'200':
description: Successfully retrieved a paginated list of session and audience segment associations.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/session-segment-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'
/sessions:
get:
security:
- OAuth2.clientCredentials:
- event/sessions:read
- OAuth2.authorizationCode:
- event/sessions:read
summary: List Sessions
description: Gets a paginated list of sessions.
operationId: listSessions
parameters:
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/before'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/sort6'
- $ref: '#/components/parameters/locale2'
- name: filter
in: query
required: false
description: 'Use filter query parameters to limit results
to data that matches your criteria. See
[Filters](/docs/rest-api/reference/filters) for details.
Supported fields and operators are listed below:
| Field | Operators |
|------------------------------------|----------------------------------------------|
| id | `eq`, `ne`, `in` |
| status | `eq`, `ne` |
| event.id | `eq`, `ne` |
| title | `eq`, `ne`, `contains`, `match` |
| code | `eq`, `ne` |
| category.id | `eq`, `ne` |
| category.name | `eq`, `ne`, `contains` |
| start | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |
| end | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |
| description | `eq`, `ne`, `contains` |
| capacity | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |
| location.id | `eq`, `ne` |
| location.name | `eq`, `ne`, `contains` |
| location.code | `eq`, `ne` |
| includedSession | `eq`, `ne` |
| enableWaitlist | `eq`, `ne` |
| featured | `eq`, `ne` |
| openForRegistration | `eq`, `ne` |
| openForAttendeeHub | `eq`, `ne` |
| virtual | `eq`, `ne` |
| created | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |
| lastModified | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |
| registrationTypes | `contains`, `in`, `is empty`, `is not empty` |
| customField.{uuid of custom field} | `eq`, `ne`, `lt`, `le`, `gt`, `ge`, `sw`, `contains`, `in` |
| group.id | `eq`, `ne` |
| admissionItems | `contains`, `is empty`, `is not empty` |
| segments | `contains`, `in`, `is empty`, `is not empty` |
**Note:** If the "match" filter is passed, the endpoint will return a relevance score for each session in the list
and, by default, sort results by relevance. Higher scores represent a higher relevance to the filter string.
The following logical operators are supported for combining filters:
* and
* or
'
schema:
type: string
example: status eq 'active' or status eq 'closed' or event.id eq 'abc' or customField.{uuid of custom field} in
('abc','def')
tags:
- Sessions
responses:
'200':
description: Successfully retrieved a paginated list of sessions.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/sessions-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'
post:
security:
- OAuth2.clientCredentials:
- event/sessions:write
- OAuth2.authorizationCode:
- event/sessions:write
summary: Create Session
description: Creates a single session based on the values provided in the request body.
operationId: createSession
tags:
- Sessions
requestBody:
description: Details of the session you're creating.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/session'
responses:
'201':
description: Successfully created a session with the provided details.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/session'
'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'
/sessions/filter:
post:
security:
- OAuth2.clientCredentials:
- event/sessions:read
- OAuth2.authorizationCode:
- event/sessions:read
summary: List Sessions
description: 'Gets a paginated list of sessions by sending a filter in the request''s body. This method returns the
same data as <a href="#operation/listSessions">GET List Sessions</a> but allows longer filters.
'
operationId: listSessionsPostFilters
requestBody:
description: 'Contains filters for the request. See the filter description of
<a href="#operation/listSessions">GET List Sessions</a> for complete
filtering information.
'
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/locale2'
tags:
- Sessions
responses:
'200':
description: Successfully retrieved a paginated list of sessions.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/sessions-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'
/sessions/{id}:
parameters:
- $ref: '#/components/parameters/sessionId2'
get:
summary: Get Session
description: Gets a single session based on the provided session ID.
operationId: getSessionById
security:
- OAuth2.clientCredentials:
- event/sessions:read
- OAuth2.authorizationCode:
- event/sessions:read
tags:
- Sessions
responses:
'200':
description: Successfully retrieved a session.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/session'
'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:
security:
- OAuth2.clientCredentials:
- event/sessions:write
- OAuth2.authorizationCode:
- event/sessions:write
summary: Update Session
description: Updates the given session with the values provided in the request body.
operationId: updateSession
tags:
- Sessions
requestBody:
description: 'Contains values that you''ll update the session with.
Passing a null value in a field renders the field blank.
Omitting a field from the request body renders the field blank
on the session record.
'
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/session-update'
responses:
'200':
description: Successfully updated the session.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/session'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$
# --- truncated at 32 KB (118 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cvent/refs/heads/main/openapi/cvent-sessions-api-openapi.yml