Cvent Event Cloud Attendee Activities API

The Attendee Activities API gives valuable insight into your customer's experience at your Cvent event. Now, you can get a fuller picture of your customer's journey, including onsite activities, offsite meetings, breakout sessions, booth visits, and virtual seminars. You can use that data to compile a unified customer profile that integrates with your external systems and data. By gathering all this info into a single interface, the API allows you to see your customer's engagement at every step of the journey, create engagement models, and integrate that data with your external tools. You can use this data to understand what your customers are looking for, keep them engaged, build loyalty, drive upsell, and increase the long-term value of your events. Please note that attendee activities data is retained for a maximum of 2 years and is purged thereafter. For more details on [attendee activities](https://developers.cvent.com/docs/rest-api/explanation/attendee-activities).

OpenAPI Specification

cvent-event-cloud-attendee-activities-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cvent REST APIs — Event Cloud Attendee Activities 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: Attendee Activities
  description: 'The Attendee Activities API gives valuable insight into your customer''s experience at your Cvent event.

    Now, you can get a fuller picture of your customer''s journey, including onsite activities, offsite meetings,

    breakout sessions, booth visits, and virtual seminars. You can use that data to compile a unified customer

    profile that integrates with your external systems and data.


    By gathering all this info into a single interface, the API allows you to see your customer''s engagement

    at every step of the journey, create engagement models, and integrate that data with your external tools.

    You can use this data to understand what your customers are looking for, keep them engaged, build loyalty,

    drive upsell, and increase the long-term value of your events.


    Please note that attendee activities data is retained for a maximum of 2 years and is purged thereafter.


    For more details on [attendee activities](https://developers.cvent.com/docs/rest-api/explanation/attendee-activities).

    '
paths:
  /attendees/activities:
    get:
      security:
      - OAuth2.clientCredentials:
        - event/attendee-activities:read
      - OAuth2.authorizationCode:
        - event/attendee-activities:read
      summary: List Activities
      description: Gets a paginated list of attendee activities.
      operationId: listAttendeeActivities
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $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](https://developers.cvent.com/docs/rest-api/reference/filters) for details.


          Supported fields and operators are listed below:


          | Field                | Operators                          |

          |----------------------|------------------------------------|

          | id                   | `eq`, `ne`                         |

          | created              | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |

          | event.id             | `eq`, `ne`                         |

          | attendee.id          | `eq`, `ne`                         |

          | type                 | `eq`, `ne`                         |

          | exhibitor.id         | `eq`, `ne`                         |

          | session.id           | `eq`, `ne`                         |

          | appointment.id       | `eq`, `ne`                         |

          | speaker.id           | `eq`, `ne`                         |

          | data.id              | `eq`, `ne`                         |

          | name                 | `eq`, `ne`                         |

          | externalActivityDate | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |

          | time                 | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |


          The following logical operators are supported for combining filters:

          * and

          * or

          '
        schema:
          type: string
          example: type eq 'event.registered' or type eq 'session.enrolled' and (attendee.id eq 'uuid1' or attendee.id eq 'uuid2')
      tags:
      - Attendee Activities
      responses:
        '200':
          description: Successfully retrieved a paginated list of attendee activities and their related details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/attendee-activities-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'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
    post:
      security:
      - OAuth2.clientCredentials:
        - event/attendee-activities:write
      - OAuth2.authorizationCode:
        - event/attendee-activities:write
      summary: Add External Activity
      description: 'Create an external attendee activity.

        '
      operationId: createAttendeeActivity
      requestBody:
        description: Creates a single external attendee activity for an attendee.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/external-activity'
      tags:
      - Attendee Activities
      responses:
        '201':
          description: Successfully created an external attendee activity.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external-activity'
        '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'
  /attendees/activities/external/metadata:
    get:
      security:
      - OAuth2.clientCredentials:
        - event/attendee-activities-metadata:read
      - OAuth2.authorizationCode:
        - event/attendee-activities-metadata:read
      summary: List Ext. Activities Metadata
      description: Gets a paginated list of external attendee activities metadata.
      operationId: listExternalAttendeeActivitiesMetadata
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $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](https://developers.cvent.com/docs/rest-api/reference/filters) for details.


          Supported fields and operators are listed below:


          | Field        | Operators                          |

          |--------------|------------------------------------|

          | id           | `eq`, `ne`                         |

          | name         | `eq`, `ne`                         |

          | type         | `eq`, `ne`                         |

          | created      | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |

          | lastModified | `eq`, `ne`, `lt`, `le`, `gt`, `ge` |


          The following logical operators are supported for combining filters:

          * and

          * or

          '
        schema:
          type: string
          example: id eq 'd94aff58-175d-41a5-9612-64e71202f8c3' and 'type eq 'event.external' and name ne 'social.media' and created ge '2021-03-15T09:33:13.750Z' and lastModified le '2021-03-15T09:33:13.750Z'
      tags:
      - Attendee Activities
      responses:
        '200':
          description: Successfully retrieved a paginated list of external attendee activities metadata.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external-activity-metadata-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/attendee-activities-metadata:write
      - OAuth2.authorizationCode:
        - event/attendee-activities-metadata:write
      summary: Add Ext. Activities Metadata
      description: 'Creates external attendee activity metadata.

        '
      operationId: createExternalAttendeeActivityMetadata
      requestBody:
        description: Create external attendee activity metadata, where external attendee activity records can be stored.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/external-activity-metadata'
      tags:
      - Attendee Activities
      responses:
        '201':
          description: Successfully created attendee activity metadata.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external-activity-metadata'
        '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'
  /attendees/activities/external/metadata/{id}:
    delete:
      summary: Delete Ext Activities Metadata
      description: Deletes external attendee activity metadata.
      operationId: deleteExternalAttendeeActivityMetadata
      parameters:
      - $ref: '#/components/parameters/id11'
      security:
      - OAuth2.clientCredentials:
        - event/attendee-activities-metadata:delete
      - OAuth2.authorizationCode:
        - event/attendee-activities-metadata:delete
      tags:
      - Attendee Activities
      responses:
        '204':
          description: Successfully deleted external attendee activity metadata.
          headers: {}
        '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:
      tags:
      - Attendee Activities
      operationId: updateExternalAttendeeActivityMetadata
      parameters:
      - $ref: '#/components/parameters/id11'
      security:
      - OAuth2.clientCredentials:
        - event/attendee-activities-metadata:write
      - OAuth2.authorizationCode:
        - event/attendee-activities-metadata:write
      summary: Update Ext Activities Metadata
      description: Update external attendee activity metadata.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/external-activity-metadata'
        required: true
      responses:
        '200':
          description: External Attendee Activity Metadata was successfully updated.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/external-activity-metadata'
        '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'
components:
  schemas:
    UUIDProperty:
      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
    ActivityBoothStaff:
      type: object
      title: ActivityBoothStaff
      description: Booth staff for an activity.
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the exhibitor booth staff.
        firstName:
          type: string
          description: The first name of the booth staff that captured the lead.
          example: John
        lastName:
          type: string
          description: The last name of the booth staff that captured the lead.
          example: Doe
        email:
          type: string
          format: email
          description: The email address of the booth staff that captured the lead.
          minLength: 6
          maxLength: 80
          example: h.potterfield@test.com
    EventBannerLinkClicked:
      type: object
      title: event.bannerLinkClicked
      description: The link on the banner clicked by an attendee.
      allOf:
      - $ref: '#/components/schemas/ActivityExhibitorBase'
      properties:
        banner:
          type: object
          description: The related banner
          properties:
            id:
              type: string
              format: uuid
              description: Banner ID
        target:
          $ref: '#/components/schemas/BannerLinkTarget'
    BannerLinkTarget:
      title: BannerLinkTarget
      description: The target of the link clicked on the banner.
      type: object
      properties:
        type:
          description: The type of target associated with the banner link.
          type: string
          enum:
          - Attendee Hub Page
          - Discussion Topic
          - External Url
          - Floor Plan Details
          - Session Details
          - Speaker Details
          - Virtual Booth
        details:
          type: string
          description: The details of the target associated with the banner link.
          example: https://www.cvent.com
    ExhibitorWeblinkOpened:
      title: exhibitor.weblinkOpened
      description: An exhibitor weblink-opened activity.
      type: object
      allOf:
      - $ref: '#/components/schemas/ActivityExhibitorBase'
      properties:
        weblink:
          $ref: '#/components/schemas/ActivityExhibitorWeblink'
    Audit:
      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
    QuestionResponse:
      title: QuestionResponse
      description: A Question response.
      type: object
      properties:
        question:
          $ref: '#/components/schemas/Question2'
        answers:
          type: array
          description: List of answers.
          items:
            $ref: '#/components/schemas/Answer2'
    ActivityEventWebsite:
      type: object
      title: ActivityEventWebsite
      description: Web browser details for an activity.
      properties:
        browser:
          type: string
          description: The name of the web browser.
          example: firefox
        operatingSystem:
          type: string
          description: The name of the operating system.
          example: windows
    SessionCheckedOut:
      title: Session Checked Out
      description: A session checked-Out activity.
      type: object
      allOf:
      - $ref: '#/components/schemas/SessionActivity'
      properties:
        checkOut:
          type: string
          format: date-time
          description: ISO 8601 date and time when an attendee checked out from a session.
          example: '2020-02-03T13:00:00.000Z'
    EventAttendeeHubVisited:
      type: object
      title: event.attendeeHubVisited
      description: An event attendee-hub-visited activity.
      allOf:
      - $ref: '#/components/schemas/ActivityEventWebsite'
      properties:
        pageName:
          type: string
          description: The name of the event website page before the attendee arrived in Attendee Hub.
          example: event website visits
        buttonText:
          type: string
          description: Text on the button.
          example: Go to My Event 11
    ExternalActivityType:
      title: ExternalActivityType
      description: This is used to denote the type of the external attendee activity.
      enum:
      - event.external
      - session.external
      - appointment.external
      - exhibitor.external
      type: string
      example: event.external
    Link:
      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
    ActivityAppointment:
      type: object
      title: ActivityAppointment
      description: An activity appointment.
      allOf:
      - $ref: '#/components/schemas/ActivityBaseAppointment'
      properties:
        start:
          type: string
          format: date-time
          description: The ISO 8601 zoned date time when an appointment starts.
          example: '2020-02-03T13:00:00.000Z'
        end:
          type: string
          format: date-time
          description: The ISO 8601 zoned date time when an appointment ends.
          example: '2020-02-03T14:00:00.000Z'
    external-activity-metadata:
      title: ActivityMetadata
      description: Metadata for an activity.
      type: object
      required:
      - type
      - name
      allOf:
      - $ref: '#/components/schemas/Audit'
      properties:
        id:
          type: string
          format: uuid
          description: The identifier of external attendee activity metadata.
          example: 9463c74e-18c6-401a-a710-ae0f485bf059
          readOnly: true
        type:
          $ref: '#/components/schemas/ExternalActivityType'
        name:
          type: string
          description: Name of an external attendee activity.
          example: social.media
          minLength: 1
          maxLength: 100
        description:
          type: string
          description: Description of an external attendee activity.
          example: This external activity contains data of social activities for an attendee.
          maxLength: 500
        fields:
          description: Metadata for the fields.
          type: array
          items:
            $ref: '#/components/schemas/ExternalActivityAdditionalFieldsMetadata'
    BaseQuestionResponse:
      title: BaseQuestionResponse
      description: Base entity for a question response.
      type: object
      properties:
        question:
          $ref: '#/components/schemas/BaseQuestion'
        answers:
          type: array
          items:
            $ref: '#/components/schemas/BaseAnswer'
          description: List of answers.
    ExternalActivityData:
      title: ExternalActivityData
      description: This is used to denote the type of the external attendee activity.
      type: object
      anyOf:
      - title: event.external
        allOf:
        - $ref: '#/components/schemas/ExternalActivitiesAdditionalFields'
      - title: session.external
        allOf:
        - $ref: '#/components/schemas/ExternalActivitiesAdditionalFields'
      - title: appointment.external
        allOf:
        - $ref: '#/components/schemas/ExternalActivitiesAdditionalFields'
      - title: exhibitor.external
        allOf:
        - $ref: '#/components/schemas/ExternalActivitiesAdditionalFields'
    EventVideoPlayed:
      type: object
      title: event.videoPlayed
      description: An event video-played activity.
      allOf:
      - $ref: '#/components/schemas/ActivityEventWebsite'
      properties:
        title:
          type: string
          description: The title of video.
          example: We are Cvent!
        pageName:
          type: string
          description: The name of the page.
          example: Agenda
    EmailActivity:
      type: object
      title: EmailActivity
      description: An email activity.
      properties:
        type:
          type: string
          description: Type of the email.
          example: Invitation Reminder
    AdLocation:
      title: AdLocation
      description: The placement of the ad within the specific product.
      enum:
      - Home Page
      - Exhibitor List
      - Session List
      type: string
      example: Home Page
    EmailBounced:
      type: object
      title: email.bounced
      description: An email-bounced activity.
      allOf:
      - $ref: '#/components/schemas/EmailActivity'
      properties:
        reason:
          type: string
          description: Reason for the bounced email.
          example: 5.x.x - delivery error
        contact:
          $ref: '#/components/schemas/ActivityContact'
        bounced:
          type: string
          format: date-time
          description: ISO 8601 date and time when an email bounced.
          example: '2020-02-03T13:00:00.000Z'
        smtpCode:
          type: integer
          description: The Simple Mail Transfer Protocol (SMTP) response status code.
          example: 500
        

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