Cvent Event Cloud Events API

Event lifecycle and configuration

OpenAPI Specification

cvent-event-cloud-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cvent REST APIs — Event Cloud Events API
  description: "Event Cloud scope of the Cvent REST APIs. This document is a TAG-SCOPED SUBSET of the OpenAPI specification Cvent publishes at https://github.com/cvent/rest-sdks/blob/main/cvent-public-spec/openapi.yaml (the source of truth for Cvent's official TypeScript/.NET/Java SDKs). Venue-sourcing, RFP, housing-supplier and travel-supplier tags were removed because they belong to Cvent Hospitality Cloud; every path, operation, parameter, schema and security requirement below is verbatim from Cvent's published spec.\n\n# Introduction\nThe Cvent API Platform is built around REST. We aim to provide intuitive endpoints that can be easily\ndiscovered to help leverage the Cvent platform for your event needs. The RESTful APIs outlined here\nuse JSON-encoded request and response format, along with HTTP codes, to convey processing status of\nrequests received. The Cvent resources are protected using OAuth2.\n\n# Getting Started\n\nIf you're new to the Cvent API Platform, start by reading our\n[Developer Quickstart](https://developers.cvent.com/docs/rest-api/tutorials/developer-quickstart) guide. This will\ngive you an overview of how to authenticate and make requests using our APIs.\n\n## Authentication\n\nThe Cvent REST API uses [OAuth2](https://oauth.net/2/) to authorize requests to the platform. The client\ncredentials authorization flow is supported.\n\n<a name=\"oauth2-auth-code-planner-admin\"></a>\n\nAuthorization code flow is only supported for planner users with the administrator role in Cvent. Developer users\ncannot use authorization code flow.\n\n<!-- ReDoc-Inject: <security-definitions> -->\n\nHere's an example of using client credential flow to authorize. You'll supply your application's id and secret to\nmake a [Token](#operation/oauth2Token) request.\n\n```bash\ncurl --location --request POST '{hostName}/{version}/oauth2/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--header 'Authorization: Basic {api_credentials}' \\\n--data-urlencode 'grant_type=client_credentials' \\\n--data-urlencode 'client_id={client_id}'\n```\n\n| Key               | Description                                          | Value                                                                                                        |\n| :---------------- | :--------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- |\n| {hostName}        | https://api-platform.cvent.com                       | Location if your account is in the North American datacenter.                                                |\n|                   | https://api-platform-eur.cvent.com                   | Location if your account is in the European data center.                                                     |\n| {version}         | ea                                                   | The version of the API you're using. Only `ea` is currently supported.                                       |\n| {api_credentials} | {client_id}:{client_secret} in base64 encoded format | Supply your client id & client credentials in a base 64 encoded format.                                      |\n| {client_id}       | Retrieved from your application                      | Your application's client id.                                                                                |\n| {client_secret}   | Retrieved from your application                      | Your application's client secret.                                                                            |\n\nOn a successful call, you'll receive the following response:\n\n```json\n{\n  \"access_token\": \"{accessToken}\",\n  \"expires_in\": 3600,\n  \"token_type\": \"Bearer\"\n}\n```\n\nThis bearer token is valid for 3600 seconds (60 minutes) and must be used in subsequent calls.\n\n## Endpoints\n\nEndpoints start with `hostName` and `version`.\n\nThe `hostname` will depend on the region that your Cvent account is hosted in. Please see the table\nbelow to identify which hostname you should be using.\n\n| Region        |\tHostname                           |\n|:--------------|:-----------------------------------|\n| North America\t| https://api-platform.cvent.com     |\n| Europe        | https://api-platform-eur.cvent.com |\n\nThe current `version` of the Cvent API is `ea`.\n\n## Rate Limits\n\nCvent APIs enforce rate limits to ensure platform stability. Your limits depend on your tier: Free,\nStandard, or Premium.\n\n<br />\n\n### Usage Tiers\n\n| Tier     | Daily Calls | Calls per Second | Max Burst |\n| -------- | ----------- | ---------------- | --------- |\n| Free     | 1,000       | 2                | 1         |\n| Standard | 15,000      | 10               | 10        |\n| Premium  | 500,000     | 25               | 25        |\n\n- **Daily calls** define how many requests you can make in a 24-hour period. Quota\n  resets at 12 midnight (+0 GMT).\n- **Calls per second** define how many requests you can make in a 1-second window.\n- **Max Burst** defines how many requests you can make at once.\n\nIf you are unsure what usage tier applies to your account, you can check via\n[Get Current Usage Tier](#operation/getUsageTier).\n\nPlease note that these limits may change as the Cvent API Platform evolves.\n\n<br />\n\n### Handling Rate Limits\n\nSometimes, you may exceed your rate limits. When this happens, the API will return a `429 Too Many Requests`. See\n[handling rate limits](https://developers.cvent.com/docs/rest-api/guides/handling-rate-limits) for best practices on how to handle this.\n\n## Pagination\n\nSome APIs use pagination to manage records. Each page of records has a token associated to identify it.\n\nIf an API uses pagination, you’ll find up to three tokens in the response:\n- **currentToken**: Describes the token of the current page.\n- **nextToken**: Provides a token for the next page of records, if one exists.\n- **previousToken**: Provides a token for the previous page of records, if one exists. Not all APIs will return\n  this token.\n\nYou specify which page of records to view via the `token` parameter in your API call. To navigate through pages,\ntake the `nextToken` or `previousToken` value and pass it to your next call’s `token` parameter to get the\nrespective page of records. For example, if you made this request:\n\n```bash\ncurl -X GET {hostname}/{version}/contacts?limit=100 \\\n-H 'Accept: application/json' \\\n-H 'Authorization: Bearer {accessToken}'\n```\n\nThe response contains a paging array where you'll find the token information.\n\n```json\n{\n  \"paging\": {\n    \"currentToken\": \"90c5f062-76ad-4ea4-aa53-00eb698d9262\",\n    \"nextToken\": \"3b2359a7-4583-40ed-8afd-67e5f15373d3\",\n    \"limit\": 100,\n    \"totalCount\": 102,\n    \"_links\": {...}\n  },\n  \"data\": [...]\n}\n```\n\nTake the `nextToken` and use it in the `token` parameter on your subsequent call.\n\n```bash\ncurl -X GET {hostname}/{version}/contacts?limit=100&token=3b2359a7-4583-40ed-8afd-67e5f15373d3 \\\n-H 'Accept: application/json' \\\n-H 'Authorization: Bearer {accessToken}'\n```\n\nWhen the response doesn’t contain a `nextToken` field, you’ve reached the last page. Occasionally, you might\nencounter an empty page at the end of results. This typically happens when the results were evenly divisible.\nEnsure your client code handles the possibility of receiving an empty data array when using the `nextToken`.\n\n## Filtering\n\nUse filters to narrow down results. The filter follows the pattern\n`filter='field' comparisonType 'value'`. The value can be enclosed with single\nquotes (') or double quotes (\").\n\n```bash\nGET {hostName}/{version}/contacts?filter=lastName eq 'Smith'\n````\n\nTo correctly pass a single quote in the filter's value, use double quotes around\nthe string.\n\n```bash\nGET {hostName}/{version}/contacts?filter=lastName eq \"O'Keenan\"\n```\n\nTo correctly pass a double quote in the filter's value, use double quotes around\nthe string and add an escape character `\\` to each quote that is part of the\nstring.\n\n```bash\nGET {hostName}/{version}/events?filter=eventName eq \"\\\"Yearly\\\" Conference\"\n```\n\n## Versioning\n\nChange is inevitable in API development. Planning for it is crucial. We track\nboth backward-compatible and backward-incompatible changes.\n\n<br />\n\n### Backward Compatible Changes\n\nBackward compatible changes will be made often and are intended to avoid\nany adverse impact on our customers. It is highly advisable that when reading\nJSON payloads from Cvent, you are able to handle \"unknown\" attributes that\ncan be added over time. We consider the following changes backward-compatible:\n\n- Adding new resources\n- Adding new optional request parameters to existing operations\n- Adding new attributes to requests or responses\n- Changing the length or format (not type) of resource identifiers. For example, an ID can change from\n  \"1234/1234\" to \"1234::1234\".\n- Increasing the length of string fields\n\n<br />\n\n### Backward Incompatible Changes\n\nBackward-incompatible changes are made infrequently, however, they can be\ndisruptive to consumers. Due to this, our APIs are versioned to avoid\ndisruptions to customers. We leverage a URI-based versioning scheme,\nwhich means that a version value is included in the Cvent API URL.\nWhen breaking changes occur, a new version of the API is made available\nwhile the existing version is deprecated but remains available for a\nlimited period of time. We consider the following backward-incompatible changes:\n\n- Adding a new required parameter (query string param or payload attribute)\n- Deleting API resources\n- Deleting any attribute from API responses\n- Changing the data type on any parameter or attribute\n\n## Standards\nAs you begin working with our APIs, it's essential to be aware of standards around\ncountry codes, time formats, and other important details that ensure smooth integration.\nLearn more about our [API Standards](https://developers.cvent.com/docs/rest-api/reference/api-standards)\n"
  contact:
    name: Cvent Development Platform
    url: https://developers.cvent.com/
  version: ea
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
tags:
- name: Events
  description: Events are used to collect registrations and allow attendees to select their schedule. Use these APIs to get information about your events and use the event ID to get further details about the event, such as Attendees and Sessions.
paths:
  /admission-items:
    get:
      security:
      - OAuth2.clientCredentials:
        - event/admission-items:read
      - OAuth2.authorizationCode:
        - event/admission-items:read
      summary: List Admission Items
      description: Gets a paginated list of admission items.
      operationId: listAdmissionItems
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $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'.\nThese are the comparison types that can be used in filter expressions:\n  * equal: eq\n  * not equal: ne\n  * greater than: gt\n  * greater or equal: ge\n  * less than: lt\n  * less than or equal: le\n  * starts with: sw\n  * contains a value: contains\n\nThe following fields are filterable:\n  * id (eq|ne)\n  * event.id (eq|ne)\n  * name (eq|ne)\n  * code (eq|ne)\n  * allowOptionalSessions (eq|ne)\n\nThe following operators are available:\n  * and\n  * or"
        schema:
          type: string
          example: event.id eq 'abc' or name eq 'admission' or id eq 'abc'
      tags:
      - Events
      responses:
        '200':
          description: Successfully retrieved a paginated list of admission items.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/admission-items-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'
  /admission-items/filter:
    post:
      security:
      - OAuth2.clientCredentials:
        - event/admission-items:read
      - OAuth2.authorizationCode:
        - event/admission-items:read
      summary: List Admission Items
      description: 'Gets a paginated list of admission items by sending a filter in the body of the request. This method will return the same data as [GET List Admission Items](#operation/listAdmissionItems) but allows for longer filters.

        '
      operationId: listAdmissionItemsPostFilters
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      requestBody:
        description: 'The request body accepts filters to refine the data returned.  Refer to available filter details in  [GET List Admission](#operation/listAdmissionItems).

          '
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/filter'
            example:
              filter: event.id eq 'abc' or name eq 'admission' or id eq 'abc'
      tags:
      - Events
      responses:
        '200':
          description: Successfully retrieved a paginated list of admission items.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/admission-items-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'
  /event-questions:
    get:
      security:
      - OAuth2.clientCredentials:
        - event/events:read
      - OAuth2.authorizationCode:
        - event/events:read
      summary: List Event Questions
      description: Gets a paginated list of event questions.
      operationId: getEventQuestions
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $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\nThese are the comparison types that can be used in filter expressions:\n  * equal: eq\n  * not equal: ne\n  * greater than: gt\n  * greater or equal: ge\n  * less than: lt\n  * less than or equal: le\n\nThe following fields are filterable:\n  * event.id (eq|ne)\n  * id (eq|ne)\n  * code (eq|ne)\n  * tag (eq|ne)\n  * created (eq|ne|lt|le|gt|ge)\n  * lastModified (eq|ne|lt|le|gt|ge)\n"
        schema:
          type: string
          example: code eq 'Code162' or tag  eq 'Primary Questions'
      tags:
      - Events
      responses:
        '200':
          description: Successfully retrieved a paginated list of event questions.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event-questions-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'
  /event-questions/{questionId}/choices:
    get:
      security:
      - OAuth2.clientCredentials:
        - event/events:read
      - OAuth2.authorizationCode:
        - event/events:read
      summary: Get Question Choices
      description: Gets all the choices for a given event question.
      operationId: getChoicesForQuestion
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - name: questionId
        in: path
        required: true
        description: Question Id
        schema:
          $ref: '#/components/schemas/uuid-property'
      - 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\nThis comparison type will be used in filter expression:\n  * equal: eq\n\nThe following fields are filterable:\n  * text (eq)\n\nThe following operators are available:\n  * or\n"
        schema:
          type: string
          example: text eq 'Choice A'
      tags:
      - Events
      responses:
        '200':
          description: Successfully retrieved a paginated list of event question choices.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event-question-choices-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'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /events:
    get:
      security:
      - OAuth2.clientCredentials:
        - event/events:read
      - OAuth2.authorizationCode:
        - event/events:read
      summary: List Events
      description: 'Gets a paginated list of events.

        '
      operationId: getEvents
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/eventSort'
      - 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'.\nThese are the comparison types that can be used in filter expressions:\n  * equal: eq\n  * not equal: ne\n  * greater than: gt\n  * greater or equal: ge\n  * less than: lt\n  * less than or equal: le\n  * contains a value: contains\n\nThe following fields are filterable:\n  * id (eq|ne)\n  * start (eq|ne|lt|le|gt|ge)\n  * end (eq|ne|lt|le|gt|ge)\n  * status (eq|ne)\n  * eventStatus (eq|ne) **Note:** Events with a status of `Deleted` are available\n    for approximately 24 hours after deletion. After this, they are\n    removed and no longer appear in search results.\n  * format (eq|ne)\n  * title (eq|ne|contains) **Note:** Contains filters must be between 3 and 15 characters.\n  * code (eq|ne)\n  * description (eq|ne)\n  * launchAfter (eq|ne|lt|le|gt|ge)\n  * created (eq|ne|lt|le|gt|ge)\n  * lastModified (eq|ne|lt|le|gt|ge)\n  * closeAfter (eq|ne|lt|le|gt|ge)\n  * archiveAfter (eq|ne|lt|le|gt|ge)\n  * capacity (eq|ne|lt|le|gt|ge)\n  * stakeholder.firstName (eq|ne)\n  * stakeholder.lastName (eq|ne)\n  * stakeholder.email (eq|ne)\n  * stakeholder.company (eq|ne)\n  * stakeholder.title (eq|ne)\n  * stakeholder.workPhone (eq|ne)\n  * note (eq|ne)\n  * virtual (eq|ne)\n  * planner.firstName (eq|ne)\n  * planner.lastName (eq|ne)\n  * planner.email (eq|ne)\n  * venue.address.city (eq|ne)\n  * venue.address.region (eq|ne)\n  * venue.address.regionCode (eq|ne)\n  * venue.address.country (eq|ne)\n  * venue.address.countryCode (eq|ne)\n  * customField.{uuid of custom field} (eq|ne|lt|le|gt|ge|sw|contains)\n"
        schema:
          type: string
          example: status eq 'Accepted' or status eq 'Pending' and (id eq 'abc' or id eq 'def')
      tags:
      - Events
      responses:
        '200':
          description: Successfully retrieved a paginated list of events.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event-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'
  /events/async:
    post:
      security:
      - OAuth2.clientCredentials:
        - event/events:write
      - OAuth2.authorizationCode:
        - event/events:write
      summary: Create Event Async
      description: 'Creates an event using the details supplied in the request body. Check the

        [Get Event Async Status](#operation/getEventAsyncStatus) to determine when the

        event is ready.

        '
      operationId: createEventAsync
      tags:
      - Events
      requestBody:
        description: The event to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/event'
      responses:
        '202':
          description: 'Successfully started the process to create the event. Use [Get Event Async Status](#operation/getEventAsyncStatus)

            to determine when the event is ready to be used.

            '
          headers:
            Location:
              example: /events/async/9463c74e-18c6-401a-a710-ae0f485bf059/status
              description: URL to check the status of the event being created.
              schema:
                type: string
                format: uri
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event-async-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'
  /events/async/{eventCreationId}/status:
    parameters:
    - $ref: '#/components/parameters/eventCreationId'
    get:
      summary: Get Event Async Status
      description: Gets the event creation status of the given event.
      operationId: getEventAsyncStatus
      security:
      - OAuth2.clientCredentials:
        - event/events:write
      - OAuth2.authorizationCode:
        - event/events:write
      tags:
      - Events
      responses:
        '200':
          description: Successfully retrieved the event status.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event-async-status'
        '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'
  /events/copy/{eventCopyId}/status:
    parameters:
    - $ref: '#/components/parameters/eventCopyId'
    get:
      summary: Get Event Copy Status
      description: Gets the event copy status of the given event.
      operationId: getEventCopyStatus
      security:
      - OAuth2.clientCredentials:
        - event/events:write
      - OAuth2.authorizationCode:
        - event/events:write
      tags:
      - Events
      responses:
        '200':
          description: Successfully retrieved the event copy status.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event-async-status'
        '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'
  /events/emails:
    post:
      summary: Send Email To Attendees
      operationId: sendEventEmails
      description: Sends an email to one or more event attendees who are on the invitation list.
      tags:
      - Events
      security:
      - OAuth2.clientCredentials:
        - event/event-emails:write
      - OAuth2.authorizationCode:
        - event/event-emails:write
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/send-email-event-request'
      responses:
        '202':
          description: Successfully sent the request(s) for processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/send-email-event-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'
  /events/emails/{emailRequestId}/status:
    get:
      summary: List Event Email Status
      operationId: getEventEmailStatus
      description: Gets the status of email using unique email request ID that was generated as a response of [Send Email To Attendees](#tag/Events/operation/sendEventEmails) request.
      tags:
      - Events
      security:
      - OAuth2.clientCredentials:
        - event/event-email-status:read
      - OAuth2.authorizationCode:
        - event/event-email-status:read
      parameters:
      - $ref: '#/components/parameters/emailRequestId'
      responses:
        '200':
          description: Successfully retrieved a list of event email send statuses associated with particular email request ID.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/send-email-event-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'
  /events/filter:
    post:
      security:
      - OAuth2.clientCredentials:
        - event/events:read
      - OAuth2.authorizationCode:
        - event/events:read
      summary: List Events
      description: 'Gets a paginated list of events by sending a filter in the body of the request. This method will return the same data as [GET List Events](#operation/getEvents) but allows for longer filters.

        '
      operationId: getEventsPostFilters
      requestBody:
        description: 'See the filters of [GET List Events](#operation/getEvents) for full filtering information you can pass in the request body.

          '
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/filter'
            example:
              filter: status eq 'Accepted' or status eq 'Pending' and (id eq 'abc' or id eq 'def')
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/eventSort'
      tags:
      - Events
      responses:
        '200':
          description: Successfully retrieved a paginated list of events.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event-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'
  /events/{id}:
    parameters:
    - $ref: '#/components/parameters/id4'
    get:
      summary: Get Event
      description: Gets a single event based on the provided event ID.
      operationId: getEventById
      security:
      - OAuth2.clientCredentials:
        - event/events:read
      - OAuth2.authorizationCode:
        - event/events:read
      tags:
      - Events
      responses:
        '200':
          description: Successfully retrieved the event.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event'
        '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 Event
      description: Updates the information for a single event based on the details provided in the request body.
      operationId: updateEvent
      security:
      - OAuth2.clientCredentials:
        - event/events:write
      - OAuth2.authorizationCode:
        - event/events:write
      tags:
      - Events
      requestBody:
        description: Event update details.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/event-update'
      responses:
        '200':
          description: Successfully updated an event.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/event-update'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/res

# --- truncated at 32 KB (302 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cvent-event-cloud/refs/heads/main/openapi/cvent-event-cloud-events-api-openapi.yml