Cvent Hospitality Cloud Attendees API

The Attendee entity primarily refers to the person throughout the lifecycle of an event including registration, enrollment into sessions, and participation. Once contacts are added to events, an Attendee entity is created. This API allows you to read attendee data and add new attendees to your Cvent events.

Operations 12

GET /attendance-durations List Attendance Duration #
POST /attendees Add Attendees #
GET /attendees List Attendees #
POST /attendees/filter List Attendees #
GET /attendees/{id} Get Attendee #
PUT /attendees/{id} Update Attendee #
PUT /attendees/{id}/email-subscriptions Update Email Subscription #
PUT /attendees/{id}/internal-information-questions Update Internal Information #
POST /events/{id}/badges Create Badge #
GET /events/{id}/badges Get Badge #
POST /events/{id}/badges/filter Get Badges #
PUT /events/{id}/badges/{badgeId} Update Badge #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cvent-hospitality-cloud-attendees-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cvent-hospitality-cloud-attendees-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cvent REST Attendees API
  description: '# Introduction

    The Cvent API Platform is built around REST.'
  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: Attendees
  description: The Attendee entity primarily refers to the person throughout the lifecycle of an event including registration, enrollment into sessions, and participation. Once contacts are added to events, an Attendee entity is created. This API allows you to read attendee data and add new attendees to your Cvent events.
paths:
  /attendance-durations:
    get:
      summary: List Attendance Duration
      operationId: listDurations
      description: Gets a paginated list of durations attendees were engaged (in person or virtually) in a session, appointment or watching a video.
      tags:
      - Attendees
      security:
      - OAuth2.clientCredentials:
        - event/attendance-durations:read
      - OAuth2.authorizationCode:
        - event/attendance-durations:read
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit1'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/sort5'
      - name: filter
        in: query
        required: false
        description: 'Use filter query parameters to limit results

          to data that matches your criteria. See

          [Filters](/docs/rest-api/reference/filters) for details.


          Supported fields and operators are listed below:


          | Field       | Operators                          |

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

          | id          | `eq`, `ne`                         |

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

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

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

          | type        | `contains`, `eq`, `ne`, `in`       |

          | deleted     | `eq`, `ne`                         |

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

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

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

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


          The following logical operators are supported for combining filters:

          * and

          * or

          '
        schema:
          type: string
          example: firstSeen gt '2020-02-07T12:00:00.000Z' and session.id =  '0e2f583e-62ae-40d8-9b5c-b8e67a6ba1ab'
      responses:
        '200':
          description: Successfully retrieved a Paginated list of Durations.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/duration-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /attendees:
    post:
      tags:
      - Attendees
      operationId: createAttendee
      security:
      - OAuth2.clientCredentials:
        - event/attendees:write
      - OAuth2.authorizationCode:
        - event/attendees:write
      summary: Add Attendees
      description: Adds given contacts to an event as attendees, either inviting them or registering them directly.
      requestBody:
        description: 'This endpoint supports both the invite and the ability to push registered attendees into Cvent.

          There are some slight differences in how you use each path.


          **Invite**


          Fields supported for invite:

          * event.id *(required)*

          * contact.id *(required)*

          * invitationList.id


          **Note:** Up to 100 attendees can be invited per call. Sending a *status* of `No Response` will invite the attendee.


          **Register**


          * All fields are supported for register.

          * admissionItem.id *(required)*


          **Note:** When sending registration, one attendee per call is supported. Sending a status of `Accepted` will register the attendee.

          '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/attendee-add-bulk'
        required: true
      responses:
        '207':
          description: Attendee(s) were successfully added to the event.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/attendee-add-bulk-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
    get:
      security:
      - OAuth2.clientCredentials:
        - event/attendees:read
      - OAuth2.authorizationCode:
        - event/attendees:read
      summary: List Attendees
      description: Gets a paginated list of attendees in your account.
      operationId: listAttendees
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/expand'
      - $ref: '#/components/parameters/sort7'
      - $ref: '#/components/parameters/includeDeletedGuests'
      - name: filter
        in: query
        required: false
        description: 'Use filter query parameters to limit results

          to data that matches your criteria. See

          [Filters](/docs/rest-api/reference/filters) for details.


          Supported fields and operators are listed below:


          | Field            | Operators                          | Notes                                    |

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

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

          | id               | `eq`, `ne`                          |                                          |

          | confirmationNumber | `eq`, `ne`                          |                                          |

          | checkedIn        | `eq`, `ne`                          |                                          |

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

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

          | registrationPath.id | `eq`, `ne`                          |                                          |

          | invitationList.id | `eq`, `ne`                          |                                          |

          | registrationType.id | `eq`, `ne`, `is null`, `is not null`, `is empty`, `is not empty` |                                          |

          | referenceId      | `eq`, `ne`                          |                                          |

          | externalReference.type | `eq`                                |                                          |

          | externalReference.id | `eq`                                |                                          |

          | externalReference.referenceId | `eq`                                |                                          |

          | note             | `eq`, `ne`                          |                                          |

          | guest            | `eq`, `ne`                          |                                          |

          | group.leader     | `eq`, `ne`                          |                                          |

          | group.id         | `eq`, `ne`                          |                                          |

          | unsubscribed     | `eq`, `ne`                          | Read-only. To update an attendee''s subscription status, use [PUT /attendees/{id}/email-subscriptions](#operation/updateAttendeeSubscriptionStatus) |

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

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

          | invitedBy        | `eq`, `ne`                          |                                          |

          | responseMethod   | `eq`, `ne`                          |                                          |

          | status           | `eq`, `ne`                          |                                          |

          | lastModified     | `eq`, `ne`, `lt`, `le`, `gt`, `ge`  | Will be updated when any field in the response has changed. Used by the ''before'' and ''after'' filters. |

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

          | contact.id       | `eq`, `ne`                          |                                          |

          | visibility       | `eq`, `ne`                          |                                          |

          | contact.title    | `eq`, `ne`, `sw`                    |                                          |

          | contact.company  | `eq`, `ne`, `sw`                    |                                          |

          | contact.firstName | `eq`, `ne`, `sw`                    |                                          |

          | contact.lastName | `eq`, `ne`, `sw`                    |                                          |

          | answers.question.{question id} | `eq`, `ne`                          |                                          |

          | contact.email    | `eq`, `ne`, `sw`                    |                                          |

          | attendeeLastModified | `eq`, `ne`, `lt`, `le`, `gt`, `ge`  | Will be updated only when some field other than contact.* has changed. Not used by the ''before'' and ''after'' filters. |

          | appointmentGroup.id | `eq`, `ne`                          |                                          |

          | contact.deleted  | `eq`, `ne`                          |                                          |

          | primaryId        | `eq`, `ne`                          |                                          |

          | deletedGuest     | `eq`, `ne`                          | Filter returns guests marked as deleted. This filter works only when the query parameter `includeDeletedGuests` is `true`. |

          '
        schema:
          type: string
          example: contact.id eq '04ca6ae2-0dc3-487b-953e-86d6abbdf7d3' or checkedIn eq 'true'
      tags:
      - Attendees
      responses:
        '200':
          description: Successfully retrieved a paginated list of attendees.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/attendee-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /attendees/filter:
    post:
      security:
      - OAuth2.clientCredentials:
        - event/attendees:read
      - OAuth2.authorizationCode:
        - event/attendees:read
      summary: List Attendees
      description: Gets a paginated list of attendees by sending a filter in the body of the request. This method will return the same data as GET List Attendees but allows for longer filters.
      operationId: listAttendeesPostFilter
      requestBody:
        description: 'The request body accepts filters to refine the data returned.  Refer to available filter details in [GET List Attendees](#operation/listAttendees).

          '
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/filter'
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/expand'
      - $ref: '#/components/parameters/sort7'
      - $ref: '#/components/parameters/includeDeletedGuests'
      tags:
      - Attendees
      responses:
        '200':
          description: Successfully retrieved a paginated list of attendees.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/attendee-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /attendees/{id}:
    parameters:
    - $ref: '#/components/parameters/attendeeId2'
    get:
      summary: Get Attendee
      description: Gets a single attendee based on their ID.
      operationId: getAttendeeById
      security:
      - OAuth2.clientCredentials:
        - event/attendees:read
      - OAuth2.authorizationCode:
        - event/attendees:read
      tags:
      - Attendees
      parameters:
      - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: Successfully retrieved an attendee object.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/attendee'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
    put:
      summary: Update Attendee
      description: Updates a single attendee based on their ID.
      operationId: updateAttendee
      security:
      - OAuth2.clientCredentials:
        - event/attendees:write
      - OAuth2.authorizationCode:
        - event/attendees:write
      tags:
      - Attendees
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/attendee-update'
        required: true
      responses:
        '200':
          description: Successfully updated the attendee.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/attendee'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /attendees/{id}/email-subscriptions:
    put:
      summary: Update Email Subscription
      description: Updates an attendee's email subscription status for a specific event.
      operationId: updateAttendeeSubscriptionStatus
      security:
      - OAuth2.clientCredentials:
        - event/attendees:write
      - OAuth2.authorizationCode:
        - event/attendees:write
      tags:
      - Attendees
      parameters:
      - $ref: '#/components/parameters/attendeeId2'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/attendee-subscription-request'
      responses:
        '200':
          description: Successfully updated the attendee's subscription status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/attendee-subscription-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /attendees/{id}/internal-information-questions:
    parameters:
    - $ref: '#/components/parameters/attendeeId2'
    put:
      operationId: updateInternalInfoAnswers
      security:
      - OAuth2.clientCredentials:
        - event/attendees:write
      - OAuth2.authorizationCode:
        - event/attendees:write
      summary: Update Internal Information
      description: Update internal information answers for an attendee. Use either question code or id to identify which question's answers are being updated.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/attendee-internal-info'
      tags:
      - Attendees
      responses:
        '200':
          description: Successfully updated attendee internal information.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/attendee-internal-info'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /events/{id}/badges:
    post:
      summary: Create Badge
      description: Create a badge for an attendee associated with an event.
      operationId: postBadge
      tags:
      - Attendees
      security:
      - OAuth2.clientCredentials:
        - exhibitor/badges:write
      - OAuth2.authorizationCode:
        - exhibitor/badges:write
      parameters:
      - $ref: '#/components/parameters/id6'
      requestBody:
        description: Badge details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/badge'
      responses:
        '200':
          description: Successfully created a badge.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/badge'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
    get:
      summary: Get Badge
      description: Retrieves a list of third-party badge associations for attendees within the event.
      operationId: getBadge
      tags:
      - Attendees
      security:
      - OAuth2.clientCredentials:
        - exhibitor/badges:read
      - OAuth2.authorizationCode:
        - exhibitor/badges:read
      parameters:
      - $ref: '#/components/parameters/id6'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - name: filter
        in: query
        required: false
        description: 'A filter query string narrows search results and supports the combination of logical and comparison operators.

          The filter adheres to the pattern filter=''field'' comparisonType ''value''.


          These are the comparison types that can be used in filter expressions:

          * equal: eq


          The following fields are filterable:

          * id (eq)

          * attendee.id (eq)

          '
        schema:
          type: string
          example: id eq '{string}' and attendee.id eq '{UUID}'
      responses:
        '200':
          description: Successfully get badges.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/badge-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /events/{id}/badges/filter:
    post:
      summary: Get Badges
      description: Gets a paginated list of Badges by sending a filter in the body of the request. This method will return the same data as the getBadge but allows for longer filters.
      operationId: getBadgesPostFilters
      tags:
      - Attendees
      security:
      - OAuth2.clientCredentials:
        - exhibitor/badges:read
      - OAuth2.authorizationCode:
        - exhibitor/badges:read
      parameters:
      - $ref: '#/components/parameters/id6'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      requestBody:
        description: See the filter query parameter of <a href="#operation/getBadge">Get Badges</a> for full filtering information
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/filter'
            example:
              filter: id eq '04ca6ae2-0dc3-487b-953e-86d6abbdf7d3' AND attendee.id eq 'edf40757-3bc3-4a66-8180-93bff15b890b'
      responses:
        '200':
          description: Successfully get badges.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/badge-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /events/{id}/badges/{badgeId}:
    put:
      summary: Update Badge
      description: Update a badge for an attendee associated with an event.
      operationId: updateBadge
      tags:
      - Attendees
      security:
      - OAuth2.clientCredentials:
        - exhibitor/badges:write
      - OAuth2.authorizationCode:
        - exhibitor/badges:write
      parameters:
      - $ref: '#/components/parameters/id6'
      - $ref: '#/components/parameters/badgeId'
      requestBody:
        description: Badge details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/badge'
      responses:
        '200':
          description: Successfully updated the badge.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/badge'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
components:
  schemas:
    AppointmentGroup:
      title: AppointmentGroup
      description: An appointment group.
      type: object
      properties:
        id:
          type: string
          description: The ID of the appointment group.
          format: uuid
          example: bf183d50-56ad-454b-8b9f-06d8e923e1fd
    AttendeeInvitedBy:
      title: AttendeeInvitedBy
      deprecated: true
      enum:
      - Planner-Invited
      - No Invitation
      - Guest-Invited
      - Alternate Campaign
      - Weblink
      - Import
      - Historical Import
      - API Invited
      type: string
      description: 'Method by which the attendee was invited to the event. Note: This field is deprecated. Previous documentation incorrectly listed support for this feature.'
      example: Planner-Invited
    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
    Event4:
      description: The Associated Event.
      title: Event
      type: object
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
          example: 3db28cfc-db22-11eb-8d19-0242ac130003
          description: Event id
    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
    AttendeeContact:
      title: AttendeeContact
      description: An Attendee Contact
      type: object
      allOf:
      - $ref: '#/components/schemas/AttendeeContactAudit'
      properties:
        id:
          type: string
          format: uuid
          description: The id of contact
        firstName:
          type: string
          description: The first name of the contact
          maxLength: 30
          example: Henry
        lastName:
          type: string
          description: The last name of the contact
          maxLength: 50
          example: Potterfield
        middleName:
          type: string
          description: The middle name of the contact
          maxLength: 30
          example: A
        nickname:
          type: string
          description: The nickname of the contact.
          maxLength: 30
          example: Harry
        email:
          type: string
          format: email
          description: The email address of the contact
          minLength: 6
          maxLength: 80
          example: h.potterfield@test.com
        ccEmail:
          type: string
          format: email
          description: An alternate email address of the contact that will be cc'd on all email communications
          minLength: 6
          maxLength: 80
          example: h.porter@tesing.com
        gender:
          $ref: '#/components/schemas/Gender'
        company:
          type: string
          description: The company/organization the contact belongs to.
          minLength: 1
          example: Cvent Inc.
        designation:
          type: string
          description: The designation of the contact
          maxLength: 30
          example: Event
        title:
          type: string
          description: The job title of the contact
          maxLength: 100
          example: Event Planner
        type:
          $ref: '#/components/schemas/AttendeeContactType'
        membership:
          $ref: '#/components/schemas/AttendeeContactMembership'
        primaryAddressType:
          $ref: '#/components/schemas/AddressType'
        homeAddress:
          $ref: '#/components/schemas/Address4'
        homePhone:
          type: string
          description: Home phone number
          maxLength: 30
          example: 555-555-5555
        homeFax:
          type: string
          description: Home FAX number
          maxLength: 30
          example: 555-555-5555
        workAddress:
          $ref: '#/components/schemas/Address4'
        workPhone:
          type: string
          description: Work phone number
          maxLength: 30
          example: 555-555-5555
        workFax:
          type: string
          description: Work FAX number
          maxLength: 30
          example: 555-555-5555
        optOut:
          type: object
          description: Opt-out choices.
          properties:
            optedOut:
              type: boolean
              default: false
              description: True indicates a contact has opted-out of receiving system generated emails.
              example: false
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
          description: Collection of custom fields.
          readOnly: true
        sourceId:
          description: 'This is a ID for the contact in an external system. NOTE: This value is expected to be unique for each contact within an account. Consider adding the external system name has part of the ID'
          type: string
          maxLength: 50
          example: system-a-00000000-0000-0000-0000-000000000000
        mobilePhone:
          type: string
          description: Mobile phone number
          maxLength: 30
          example: 555-555-5555
        compliance:
          type: array
          items:
            $ref: '#/components/schemas/Compliance'
          description: Detail related to compliance with the contact's privacy rights under various legislation.
          readOnly: true
        prefix:
          type: string
          description: Used to denote what is traditionally a title of an individual. For example, Mr., Mrs., Dr., etc.
          maxLength: 30
          example: Dr.
        pager:
          type: string
          description: The pager number of the contact.
          maxLength: 30
          example: 555-555-5555
        deleted:
          type: boolean
          description: True indicates a contact is deleted.
          default: false
          example: false
          readOnly: true
        headline:
          type: string
          description: The headline of the contact'

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