Cvent Event Cloud Event Travel API

Event travel lets planners capture air & hotel requests from attendees and track air actuals, hotel reservations and alternate travel answers at your event. Use these endpoints to retrieve your air, hotel, housing reservation request and alternate travel answers data from your events. **Housing Reservation Request** - An association between an attendee's information in a registration event and a Cvent Passkey event. Also known as a Passkey bridge.

OpenAPI Specification

cvent-event-cloud-event-travel-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cvent REST APIs — Event Cloud Event Travel 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: Event Travel
  description: Event travel lets planners capture air & hotel requests from attendees and track air actuals, hotel reservations and alternate travel answers at your event. Use these endpoints to retrieve your air, hotel, housing reservation request and alternate travel answers data from your events. **Housing Reservation Request** - An association between an attendee's information in a registration event and a Cvent Passkey event. Also known as a Passkey bridge.
paths:
  /events/{id}/event-travel/air-actuals:
    parameters:
    - $ref: '#/components/parameters/id2'
    get:
      summary: Get Air Actual
      description: Get attendee air actual details for an event.
      operationId: getAirActualDetail
      tags:
      - Event Travel
      security:
      - OAuth2.clientCredentials:
        - event/air-request:read
      - OAuth2.authorizationCode:
        - event/air-request:read
      responses:
        '200':
          description: Successfully retrieved the air actual details.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/air-actual-detail'
        '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
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/expandAirActualQuestionAnswer'
      - $ref: '#/components/parameters/sortForAirActual'
      - $ref: '#/components/parameters/filter1'
  /events/{id}/event-travel/air-requests:
    parameters:
    - $ref: '#/components/parameters/id2'
    get:
      summary: Get Air Requests
      description: Get attendee air request details for an event.
      operationId: getAirRequests
      tags:
      - Event Travel
      security:
      - OAuth2.clientCredentials:
        - event/air-request:read
      - OAuth2.authorizationCode:
        - event/air-request:read
      responses:
        '200':
          description: Successfully retrieved the air request detail.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/air-reservation-detail'
        '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
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/sortForAirRequest'
      - $ref: '#/components/parameters/filter1'
      - $ref: '#/components/parameters/expandAirRequestQuestionAnswer'
  /events/{id}/event-travel/alternate-answers:
    parameters:
    - $ref: '#/components/parameters/id2'
    get:
      summary: Get Alternate Travel Answers
      description: Get alternate travel answers submitted by attendees who opt out of air or hotel bookings for an event.
      operationId: getAlternateTravelAnswers
      tags:
      - Event Travel
      security:
      - OAuth2.clientCredentials:
        - event/alternate-travel:read
      - OAuth2.authorizationCode:
        - event/alternate-travel:read
      responses:
        '200':
          description: Successfully retrieved the alternate travel answers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/alternate-travel-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
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/filter1'
  /events/{id}/event-travel/hotel-requests:
    parameters:
    - $ref: '#/components/parameters/id2'
    get:
      summary: Get Hotel Requests
      description: Get attendee hotel requests for an event.
      operationId: getHotelRequests
      tags:
      - Event Travel
      security:
      - OAuth2.clientCredentials:
        - event/hotel-request:read
      - OAuth2.authorizationCode:
        - event/hotel-request:read
      responses:
        '200':
          description: Successfully retrieved the hotel request detail.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/hotel-reservation-detail'
        '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
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/expandHotelRequestQuestionAnswer'
      - $ref: '#/components/parameters/sortForHotelRequest'
      - $ref: '#/components/parameters/filter1'
  /events/{id}/event-travel/housing-reservation-requests:
    parameters:
    - $ref: '#/components/parameters/id2'
    get:
      summary: Get Housing Requests
      description: Get attendee housing reservation request details for an event.
      operationId: getHousingReservationRequests
      tags:
      - Event Travel
      security:
      - OAuth2.clientCredentials:
        - event/hotel-request:read
      - OAuth2.authorizationCode:
        - event/hotel-request:read
      responses:
        '200':
          description: Successfully retrieved the reservation request detail.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/reservation-request-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
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/filter1'
components:
  schemas:
    Address6:
      title: Address
      description: Address of the hotel.
      type: object
      allOf:
      - $ref: '#/components/schemas/BaseAddress'
      properties:
        region:
          type: string
          description: The name of the state/province/region of the address.
          readOnly: true
          example: Texas
        regionCode:
          type: string
          description: The abbreviation of the state/province/region of the address.
          minLength: 2
          maxLength: 10
          example: TX
        country:
          type: string
          description: Name of the country.
          readOnly: true
          example: United States of America
    air-actual-detail:
      title: AirActualPaginatedResponse
      description: The response from a request to get the list of air actual for the attendees.  This includes the paging object as well as the collection of air actual details.
      required:
      - paging
      - data
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/Paging'
        data:
          type: array
          items:
            $ref: '#/components/schemas/AirActualDetail'
          description: Collection of air actuals for attendees.
    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
    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
    AlternateAnswer:
      title: AlternateAnswer
      description: Represents the answer(s) to an alternate travel question submitted by an attendee.
      type: object
      properties:
        value:
          type: array
          description: The set of answers to a single alternate travel question.
          maxItems: 50
          items:
            type: string
            description: A single answer to the alternate travel question.
            example: '1234'
          example:
          - '1234'
    PaginationLinks:
      title: PaginationLinks
      type: object
      description: Represents pagination links for navigating between pages of data.
      properties:
        next:
          $ref: '#/components/schemas/Link'
        self:
          $ref: '#/components/schemas/Link'
        prev:
          $ref: '#/components/schemas/Link'
    SeatType:
      title: SeatType
      description: Preferred or assigned seat type for an air booking.
      type: string
      enum:
      - Aisle
      - Window
      example: Window
    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.
    AirlinePreference:
      title: Airline Preference
      description: Representation of airlines based on preference
      type: object
      properties:
        airlineName:
          type: string
          description: Name of preferred airline.
          example: Emirates
        rewardsCode:
          type: string
          description: Loyalty program number for the preferred airline.
          example: SKYWARD12345
    AirRequest:
      title: AirRequest
      description: Representation of an air request.
      type: object
      allOf:
      - $ref: '#/components/schemas/Audit'
      properties:
        airRequestId:
          type: string
          format: uuid
          description: ID of the air request.
          example: 3b2359a7-4583-40ed-8afd-67e5f15373d3
        requesterId:
          type: string
          format: uuid
          description: ID of the flight requester. For an event attendee, this field is contact ID. For guest, this field is guest ID. For any other passenger, this fields contains null.
          example: 3b2359a7-4583-40ed-8afd-67e5f15373d3
        requesterType:
          $ref: '#/components/schemas/AirRequesterType'
        requesterFirstName:
          type: string
          description: First name of the flight requester.
          example: John
          maxLength: 50
        requesterMiddleName:
          type: string
          description: Middle name of the flight requester.
          example: Frances
          maxLength: 30
        requesterLastName:
          type: string
          description: Last name of the flight requester.
          example: Doe
          maxLength: 50
        requesterSuffix:
          type: string
          description: Suffix of the flight requester.
          enum:
          - II
          - III
          - IV
          - V
          - Sr.
          - Jr.
          example: Jr.
        fullName:
          type: string
          description: Full name of the requester.
          example: John Doe
        redressNumber:
          type: string
          description: TSA redress number for the passenger.
          example: '1234567'
        knownTravelerNumber:
          type: string
          description: TSA known traveller number for the passenger.
          example: '1234567'
        outgoingLeg:
          $ref: '#/components/schemas/LegDetail'
        incomingLeg:
          $ref: '#/components/schemas/LegDetail'
        seatType:
          $ref: '#/components/schemas/SeatType'
        ticketType:
          $ref: '#/components/schemas/TicketType'
        foodPreference:
          type: string
          description: Additional text related to the passenger's meal.
          example: Please provide vegetarian meal.
          maxLength: 300
        specialRequest:
          type: string
          description: Additional text associated with air request.
          example: Please provide blanket
          maxLength: 300
        airlinePreference:
          description: Requester's preferred airlines.
          type: array
          items:
            $ref: '#/components/schemas/AirlinePreference'
          maxItems: 3
        ageCategory:
          type: string
          description: Age category of the requester.
          enum:
          - Adult
          - Senior
          - Child
          - Infant
          example: Adult
        status:
          $ref: '#/components/schemas/TravelRequestStatus'
        dateOfBirth:
          type: string
          description: Date of birth of the requester.
          example: '1980-03-04'
        gender:
          $ref: '#/components/schemas/Gender1'
        plannerMemo:
          type: string
          description: Additional note by, or intended for, event planners.
          example: Some planner related text.
          maxLength: 300
        airRequestAnswers:
          type: array
          description: Answer provided by requester to the air request related question.
          items:
            $ref: '#/components/schemas/AttendeeAnswer1'
    TicketType:
      title: TicketType
      description: Category of the passenger's ticket for an air booking.
      type: string
      enum:
      - Economy/Coach
      - Business
      - FirstClass
      example: Economy/Coach
    HotelRoomRate:
      title: HotelRoomRate
      description: Representation of a hotel room rate
      type: object
      properties:
        roomNight:
          type: string
          format: date-time
          description: The ISO 8601 date-time (in UTC) of the night for which the room has been booked.
          example: '2023-05-19T00:00:00Z'
        roomRate:
          type: number
          description: The nightly rate at which the room has been booked.
          example: 100
    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'
    reservation-request-paginated-response:
      title: HousingReservationPaginatedResponse
      description: The response from a request to get the list of housing reservation request details for the attendees. This includes the paging object as well as the collection of housing reservation request details.
      required:
      - paging
      - data
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/Paging'
        data:
          type: array
          items:
            $ref: '#/components/schemas/HousingReservationResponse'
          description: Collection of reservation request details for attendees.
    Paging:
      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/PaginationLinks'
    AirActualDetail:
      title: AirActualDetail
      description: Representation of an air actual detail response.
      type: object
      properties:
        attendee:
          $ref: '#/components/schemas/Attendee3'
        airActualDetails:
          description: List of air actual details for the attendee and its guest.
          type: array
          items:
            $ref: '#/components/schemas/AirActual'
    HotelRequest:
      title: HotelRequest
      description: Representation of a hotel request.
      type: object
      allOf:
      - $ref: '#/components/schemas/Audit'
      properties:
        hotelRequestId:
          type: string
          format: uuid
          description: ID of the hotel request.
          example: 3b2359a7-4583-40ed-8afd-67e5f15373d3
        requesterId:
          type: string
          format: uuid
          description: ID of the flight requester. For an event attendee, this field is contact ID. For guest, this field is guest ID.
          example: 3b2359a7-4583-40ed-8afd-67e5f15373d3
        requesterType:
          type: string
          description: Attendee type of the hotel requester. Contact means the requester is an independent attendee. Guest means the attendee is accompanying another attendee.
          enum:
          - Contact
          - Guest
          example: Contact
        requesterFirstName:
          type: string
          description: First name of the hotel requester.
          example: John
          maxLength: 30
        requesterLastName:
          type: string
          description: Last name of the hotel requester.
          example: Doe
          maxLength: 50
        hotelName:
          type: string
          description: Name of the hotel.
          example: Fairmont Chicago
          maxLength: 100
        hotelCode:
          type: string
          description: Code of the hotel.
          example: 6BNMSHJFSRP
          maxLength: 30
        roomName:
          type: string
          description: Name of the room.
          example: Deluxe Room
          maxLength: 50
        roomCode:
          type: string
          description: Code of the room.
          example: 6BNMSHJFSR
          maxLength: 10
        quantity:
          type: integer
          description: Number of hotel requests made by requester.
          example: 1
        roommateRequested:
          type: string
          description: Name of the roommate requested by requester.
          example: Will Doe
        specialRequest:
          type: string
          description: Any special requests the requester asks of the hotel.
          maxLength: 300
          example: Please provide early check-in.
        rewardsCode:
          type: string
          description: Requesters' reward code for the hotel's loyalty program.
          example: ROYALTY
          maxLength: 50
        checkinDate:
          type: string
          format: date-time
          description: The ISO 8601 zoned date time (in UTC) when the guest will check in to the hotel.
          example: '2023-05-19T00:00:00Z'
        checkoutDate:
          type: string
          format: date-time
          description: The ISO 8601 zoned date time (in UTC) when the guest will check out of the hotel.
          example: '2023-05-20T00:00:00Z'
        smoking:
          type: boole

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