Cvent Event Cloud Emails API

Event planners use emails to invite registrants, market their events and request feedback from attendees. Use these APIs to get historical data about your emails and see relevant details like the types of emails sent, the recipient, and delivery status.

OpenAPI Specification

cvent-event-cloud-emails-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cvent REST APIs — Event Cloud Emails 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: Emails
  description: Event planners use emails to invite registrants, market their events and request feedback from attendees. Use these APIs to get historical data about your emails and see relevant details like the types of emails sent, the recipient, and delivery status.
paths:
  /bounces:
    get:
      summary: List Email Bounces
      operationId: getBounceDetails
      description: 'Returns a paginated list of email bounce details in your account.


        Before/after filters can be used to retrieve email bounce data up to six months in the past.

        If no date filter is provided, defaults to 1 month back from the current time.

        '
      tags:
      - Emails
      security:
      - OAuth2.clientCredentials:
        - email/bounces:read
      - OAuth2.authorizationCode:
        - email/bounces:read
      parameters:
      - $ref: '#/components/parameters/commonSpecBefore'
      - $ref: '#/components/parameters/commonSpecAfter'
      - $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\nEmail type 'Unknown' is not supported in filter.\n\n'OR' is not supported. Only 'AND' operator is supported.\n\n The following comparison types can be used in filter expressions:\n  * equal: eq\n  * not equal: ne\n  * greater or equal: ge\n  * less than or equal: le\n\nThe following fields are filterable:\n  * created     (eq|le|ge)\n  * productLine (eq|ne)\n  * emailType   (eq|ne)\n  * recipient.id (eq)\n  * productId   (eq)\n  * emailId     (eq)\n"
        schema:
          type: string
          example: productLine eq 'EVENT'
      responses:
        '200':
          description: Successfully retrieved a list of bounce details of an email.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bounce-details-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'
  /emails:
    get:
      tags:
      - Emails
      operationId: getEmailsHistory
      summary: Get Emails History Data
      description: Returns the paginated list of sent emails. Default behaviour is to retrieve all emails for the account. Maximum 6 months of records can be fetched.
      security:
      - OAuth2.clientCredentials:
        - email/emails:read
      - OAuth2.authorizationCode:
        - email/emails:read
      parameters:
      - $ref: '#/components/parameters/before1'
      - $ref: '#/components/parameters/after1'
      - $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\n'OR' is not supported. Only 'AND' operator is supported.\n\nThe following comparison types can be used in filter expressions:\n  * equal: eq\n  * greater or equal: ge\n  * less than or equal: le\n\nThe following fields are filterable:\n  * event.id (eq)\n  * attendee.id (eq)\n  * contact.id (eq)\n  * status (eq)\n  * lastModified (eq|le|ge)\n"
        schema:
          type: string
          example: event.id eq '04ca6ae2-0dc3-487b-953e-86d6abbdf7d3'
      responses:
        '200':
          description: Successfully retrieved a paginated list of emails.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/email-history-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'
  /emails/{emailRequestId}/status:
    get:
      summary: List Email Status
      operationId: getEmailStatus
      description: Gets the status of emails using unique email request ID that was generated as a response of [Send Email To Recipients](#tag/Campaigns/operation/sendEMarketingEmails) request.
      tags:
      - Emails
      security:
      - OAuth2.clientCredentials:
        - email/email-status:read
      - OAuth2.authorizationCode:
        - email/email-status:read
      parameters:
      - $ref: '#/components/parameters/emailRequestId'
      responses:
        '200':
          description: Successfully retrieved a list of email send statuses associated with particular email request ID.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/email-send-status'
        '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: true
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
components:
  parameters:
    emailRequestId:
      in: path
      name: emailRequestId
      description: Used to get status of emails which were sent with this email request ID.
      required: true
      schema:
        type: string
        format: uuid,
        example: 2A941E55-3367-4C50-B21B-B6A7613DFB23
    after1:
      in: query
      name: after
      description: Used to query records that have been created after this time point. Defaults to 6 months back from current time.
      required: false
      schema:
        type: string
        example: '2021-03-26T02:30:00Z'
    commonSpecBefore:
      name: before
      required: false
      in: query
      description: Used to query records that have been added or updated before this time point.
      schema:
        type: string
        format: date-time
        example: '2017-01-02T02:00:00Z'
    token:
      name: token
      in: query
      description: 'The continuation token returned from a previous class. This must be a valid UUID v4 if provided.

        This will override any other pageable parameters provided.

        '
      style: form
      explode: true
      schema:
        type: string
        example: 0e28af57-511f-47ab-ae46-46cd1ca51a1a
    commonSpecAfter:
      name: after
      required: false
      description: Used to query records that have been added or updated after this time point. Default to the beginning of time of the data store.
      in: query
      schema:
        type: string
        format: date-time
        example: '2017-01-02T02:00:00Z'
    before1:
      in: query
      name: before
      description: Used to query records that have been created before this time point. Defaults to current time.
      required: false
      schema:
        type: string
        example: '2021-03-25T02:30:00Z'
    limit:
      name: limit
      in: query
      description: The maximum number of records to return per page.
      style: form
      explode: true
      schema:
        maximum: 200
        minimum: 1
        type: integer
        default: 100
        example: 100
  schemas:
    uuid-property:
      title: UUID Property
      description: A string that has to be a format matching the industry standard uuid
      type: string
      format: uuid
      example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
    link.json:
      title: Link
      required:
      - href
      type: object
      description: Represents a link to a related resource.
      properties:
        href:
          type: string
          description: A url provided that can be followed for linking
          example: ?token=90c5f062-76ad-4ea4-aa53-00eb698d9262
    paging.json:
      title: Paging
      required:
      - _links
      type: object
      description: Represents pagination information for a collection of resources.
      properties:
        previousToken:
          type: string
          description: The pagination token for the previous page, if one exists. You can use this token to navigate to the previous page of data.
          example: 1a2b3c4d5e6f7g8h9i10j11k
        nextToken:
          type: string
          description: The pagination token for the next page. If this value is present in the response, there is another page of data you can fetch.
          example: 1a2b3c4d5e6f7g8h9i10j11k
        currentToken:
          type: string
          description: The pagination token for the current page.
          example: 1a2b3c4d5e6f7g8h9i10j11k
        limit:
          type: integer
          description: The number of records to return on the page. Not to exceed 200.
          example: 100
        totalCount:
          type: integer
          description: The total number of records available. This field may return blank, even if there are more records. To confirm if there are more records, check the `nextToken` field.
          example: 2
        _links:
          $ref: '#/components/schemas/pagination-links.json'
    email-history-paginated-response:
      title: Email History Paginated Response
      description: The response from a request to get the list of email history. This includes the paging object as well as the collection of email history.
      required:
      - paging
      - data
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/paging.json'
        data:
          type: array
          items:
            $ref: '#/components/schemas/email-history.json'
          description: Collection of emails history data.
    ErrorResponseBase:
      title: ErrorResponseBase
      type: object
      description: Represents an error response with no additional details.
      required:
      - code
      - message
      properties:
        code:
          type: integer
          description: The HTTP status code representing the error.
          example: 400
        message:
          type: string
          description: A brief description of the error.
          example: Bad Request
        target:
          type: string
          description: The target resource of the error.
          example: example target
    ErrorResponse:
      title: ErrorResponse
      description: Represents an error response with additional details of cascading error messages.
      allOf:
      - $ref: '#/components/schemas/ErrorResponseBase'
      type: object
      required:
      - code
      - message
      properties:
        details:
          type: array
          items:
            $ref: '#/components/schemas/ErrorResponseBase'
          description: Additional details of cascading error messages.
    email-status.json:
      title: EmailStatus
      enum:
      - Sent
      - Failed
      type: string
      description: This is used to denote the status of the email sending
      example: Sent
    email-send-status:
      title: Email send status
      description: The response from a request to get the list of recipients with email status.
      required:
      - emailRequestId
      - requestedDate
      - requestedBy
      - recipientStatus
      type: object
      properties:
        emailRequestId:
          type: string
          format: uuid
          description: ID of the send email request.
          example: 3A541E55-3367-4C50-B21B-B6A7613DFB23
        requestedDate:
          type: string
          format: date-time
          description: The ISO 8601 zoned date time (in UTC) when this request was made.
          readOnly: true
          example: '2017-01-02T02:00:00Z'
        requestedBy:
          type: string
          description: The identifier of the user that requested this record.
          readOnly: true
          example: Requester
        recipientStatus:
          type: array
          items:
            $ref: '#/components/schemas/recipients-data.json'
          maxItems: 200
          description: A list of recipients to whom emails were tried to send.
    send-email-event-response:
      title: Send Event Email Response
      description: Response object containing a request ID and a list of all email responses sent to attendees.
      type: object
      allOf:
      - title: Send Email Response
        description: Response object containing details of email send.
        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
        required:
        - requestId
        properties:
          requestId:
            type: string
            format: uuid
            description: The request ID for the email send request.
            example: 3A541E55-3367-4C50-B21B-B6A7613DFB23
          status:
            $ref: '#/components/schemas/send-email-request-status.json'
          description:
            type: string
            description: The description of the response. If the `status` is `ERROR`, this field contains the reason for the failure.
            example: Cannot send an email from deleted event.
      required:
      - event
      - email
      - resendToPreviousRecipients
      - attendeeResponse
      properties:
        event:
          $ref: '#/components/schemas/event.json6'
        email:
          $ref: '#/components/schemas/email.json1'
        resendToPreviousRecipients:
          type: boolean
          description: True indicates this email should be resent to attendees who had already received this email previously.
          example: true
        attendeeResponses:
          type: array
          minItems: 1
          maxItems: 200
          items:
            $ref: '#/components/schemas/attendee-response.json'
          description: List of responses specifying the status of email request for each attendee.
    recipients-data.json:
      title: Recipients Data
      description: Recipient data contains the recipient's details like ID, name and status of email sent to that recipient.
      type: object
      properties:
        recipientId:
          type: string
          format: uuid
          description: Unique ID of a recipient.
          example: 2A941E55-3367-4C50-B21B-B6A7613DFB23
        recipientName:
          type: string
          description: Name of the recipient.
          example: User
        status:
          $ref: '#/components/schemas/send-email-status.json'
    product-line.json:
      title: ProductLine
      enum:
      - ABSTRACT_MANAGEMENT
      - ADMIN
      - API_PLATFORM
      - APPOINTMENTS
      - AUTO_BLOCK
      - BOOK
      - CHANNEL_PUBLISHER
      - CONTACT
      - CROWD_COMPASS
      - CSN
      - DASHBOARD
      - DEFAULT
      - E_MARKETING
      - ENGAGEMENTS_AND_PROJECTS
      - EVENT
      - LEGACY_SURVEY
      - MEMBERSHIP
      - OPT_IN
      - ORGANIZATION
      - OSS
      - PORTAL
      - RATE_INTEGRITY
      - RES_DESK
      - REVERSE_AUCTION
      - RFP
      - RFP_ALERTS
      - RFP_PUBLISHER
      - STARGATE
      - SURVEY
      - USER_ADMINISTRATION
      - VAULT_MAIL
      type: string
      description: Cvent product lines or additional features.
      example: EVENT
    send-email-status.json:
      title: Send Email Status
      enum:
      - Sent
      - In-Progress
      - Error
      - Opted-Out
      type: string
      description: It is used to denote the status of the sent email.
      example: Accepted
    recipient.json:
      title: Recipient
      type: object
      description: Information of the recipient.
      properties:
        id:
          type: string
          format: uuid
          description: Unique ID of the recipient.
          example: 2A941E55-3367-4C50-B21B-B6A7613DFB23
        firstName:
          type: string
          description: First name of the recipient.
          example: Brett
        lastName:
          type: string
          description: Last name of the recipient.
          example: Lawler
        emailAddress:
          type: string
          description: Email address of the recipient.
          example: brett.lawler@example.com
    email-type.json:
      title: EmailType
      enum:
      - Invitation
      - Invitation Reminder
      - Registration Confirmation
      - Regret
      - Post Event Feedback
      - Custom Invitee Message
      - Custom Declinee Message
      - Event Reminder
      - Custom Attendee Message
      - Custom One-Time Message
      - Planner Report
      - Event Update
      - Custom Undecided Message
      - Custom Attended Message
      - Modification Confirmation
      - Cancellation Confirmation
      - Guest Event Reminder
      - Guest Registration Notification
      - Custom Guest Message
      - Guest Post Event Feedback
      - Invitee Session Email
      - Guest Session Email
      - Approval Pending Notification
      - Approval Denied Notification
      - Administrator Registration Confirmation
      - CrowdCompass Event Guide Invitation
      - CrowdCompass App Download
      - Waitlist Notification
      - Session Waitlist Notification
      - Shoulder Date Notification
      - Selected Roommate Notification
      - Matched Roommate Notification
      - Declined Roommate Notification
      - OnArrival Post Event Feedback
      - OnArrival Guest Post Event Feedback
      - Travel Modification Confirmation
      - Custom
      - New Appointment
      - Appointment Accepted
      - Appointment Declined
      - Appointment Cancelled
      - Appointment Edited
      - Pending Appointment Reminder
      - Upcoming Appointment Reminder
      - Attendee Removed
      - Opt In Email
      - Resource Center Invitation
      - Single Task Reminder
      - Mobile App Invitation
      - Login Verification Code
      - Save The Date
      - All Tasks Reminder
      - Exhibitor Admin Invitation
      - Exhibitor Admin Reminder
      - Exhibitor Device Rental Access Code
      - Exhibitor App License Access Code
      - Exhibitor Leads Export
      - Stakeholder Feedback Invitation
      - Exhibitor Task Reminder
      - LeadCapture Requested Materials
      - Integration Alerts
      - Unknown
      type: string
      description: Denotes the type of the email.
      example: Invitation
    bounce-details-response:
      title: Paginated Bounce Details
      description: The response from a request to get the bounce details of an email. This includes paging object
      required:
      - paging
      - data
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/paging-no-total-count.json'
        data:
          type: array
          items:
            $ref: '#/components/schemas/bounce-details.json'
          description: Bounce details.
    paging-no-total-count.json:
      title: Paging
      required:
      - _links
      type: object
      description: Represents pagination information for a collection of resources.
      properties:
        previousToken:
          type: string
          description: The pagination token for the previous page, if one exists. You can use this token to navigate to the previous page of data.
          example: 1a2b3c4d5e6f7g8h9i10j11k
        nextToken:
          type: string
          description: The pagination token for the next page. If this value is present in the response, there is another page of data you can fetch.
          example: 1a2b3c4d5e6f7g8h9i10j11k
        currentToken:
          type: string
          description: The pagination token for the current page.
          example: 1a2b3c4d5e6f7g8h9i10j11k
        limit:
          type: integer
          description: The number of records to return on the page. Not to exceed 200.
          example: 100
        _links:
          $ref: '#/components/schemas/pagination-links.json'
    bounce-details.json:
      title: Bounce details
      type: object
      description: Email bounce details.
      properties:
        recipient:
          $ref: '#/components/schemas/recipient.json'
        bounceReason:
          type: string
          description: Reason of bounce.
          example: 5.7.1 (delivery not authorized)
        bounceDateTime:
          type: string
          format: date-time
          description: ISO 8601 formatted date time (in UTC) when the email bounced or there was an error.
          example: '2023-01-02T02:00:00Z'
        smtpCode:
          type: integer
          description: SMTP code returned by the server in response to an email, indicating the status of the message.
          e

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