Cvent Travel RFPs API

Business-transient travel programs, their questions, and the proposals and bids submitted against them. Delivered as the Travel RFPs tag of the unified Cvent REST API — 9 operation(s) at https://api-platform.cvent.com/ea, OAuth 2.0 secured.

Operations 9

GET /travel-programs List Travel Programs #
GET /travel-programs/questions List Travel Programs Questions #
GET /travel-programs/{programId} Get Travel Program #
GET /travel-programs/{programId}/questions List Travel Program Questions #
GET /travel-programs/{programId}/questions/{questionId} Get Travel Program Question #
GET /travel-proposals List Travel Proposals #
GET /travel-proposals/bids List Travel Proposal Bids #
GET /travel-proposals/bids/{travelProposalBidId} Get Travel Proposal Bid #
GET /travel-proposals/{travelProposalId} Get Travel Proposal #

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/travel-rfps"
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-travel-rfps-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Cvent Travel RFPs API
  description: 'The Travel RFPs surface of the Cvent REST API (Cvent Hospitality Cloud). Split by tag from the

    single "Cvent REST APIs" OpenAPI document Cvent publishes on its developer portal.

    Operations, schemas, parameters and responses are carried through verbatim; nothing was authored here.


    Source: https://developers.cvent.com/documentation (getPublicSpec, https://developers.cvent.com/api/graphql)

    '
  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: Travel RFPs
  description: 'The Travel RFP APIs provide access to travel programs and proposals. A travel program

    represents a request for proposal (RFP) that defines the specific travel needs and

    requirements of a travel account. The travel account solicits hotels and other travel

    suppliers to respond to the program with proposals, which provide detailed

    information on rates and amenities.''

    '
paths:
  /travel-programs:
    get:
      summary: List Travel Programs
      operationId: ListTravelPrograms
      description: Returns a paginated list of travel programs based on the specified filters.
      tags:
      - Travel RFPs
      security:
      - OAuth2.clientCredentials:
        - business-transient/travel-programs:read
      - OAuth2.clientCredentials:
        - business-travel/travel-programs:read
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/travel-program-filter'
      responses:
        '200':
          description: Successfully retrieved a paginated list of Travel Programs.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/travel-program-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /travel-programs/questions:
    get:
      summary: List Travel Programs Questions
      operationId: ListTravelProgramsQuestions
      description: Returns a paginated list of travel programs questions.
      tags:
      - Travel RFPs
      security:
      - OAuth2.clientCredentials:
        - business-transient/travel-program-questions:read
      - OAuth2.clientCredentials:
        - business-travel/travel-program-questions:read
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      responses:
        '200':
          description: Successfully retrieved a paginated list of travel program questions.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/questions-paginated-response1'
        '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'
  /travel-programs/{programId}:
    parameters:
    - $ref: '#/components/parameters/programId'
    get:
      summary: Get Travel Program
      description: Returns the details of a single travel program based on the specified program ID.
      operationId: getTravelProgram
      tags:
      - Travel RFPs
      security:
      - OAuth2.clientCredentials:
        - business-transient/travel-programs:read
      - OAuth2.clientCredentials:
        - business-travel/travel-programs:read
      responses:
        '200':
          description: Successfully retrieved a Travel Program.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/travel-program'
        '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'
  /travel-programs/{programId}/questions:
    parameters:
    - $ref: '#/components/parameters/programId'
    get:
      summary: List Travel Program Questions
      operationId: ListTravelProgramQuestions
      description: Returns a paginated list of travel program questions.
      tags:
      - Travel RFPs
      security:
      - OAuth2.clientCredentials:
        - business-transient/travel-program-questions:read
      - OAuth2.clientCredentials:
        - business-travel/travel-program-questions:read
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      responses:
        '200':
          description: Successfully retrieved a paginated list of travel program questions.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/question-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'
  /travel-programs/{programId}/questions/{questionId}:
    parameters:
    - $ref: '#/components/parameters/programId'
    - $ref: '#/components/parameters/questionId2'
    get:
      summary: Get Travel Program Question
      description: Returns the details of a single question based on the specified program and question ID.
      operationId: getTravelProgramQuestion
      tags:
      - Travel RFPs
      security:
      - OAuth2.clientCredentials:
        - business-transient/travel-program-questions:read
      - OAuth2.clientCredentials:
        - business-travel/travel-program-questions:read
      responses:
        '200':
          description: Successfully retrieved a travel program question.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/question'
        '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'
  /travel-proposals:
    get:
      summary: List Travel Proposals
      operationId: ListTravelProposals
      description: Get a paginated list of travel proposal details.
      tags:
      - Travel RFPs
      security:
      - OAuth2.clientCredentials:
        - business-transient/proposals:read
        - business-travel/proposals:read
      - OAuth2.authorizationCode:
        - business-transient/proposals:read
        - business-travel/proposals:read
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/travel-proposal-filter'
      responses:
        '200':
          description: Successfully retrieved a paginated list of travel proposals.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/travel-proposal-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /travel-proposals/bids:
    get:
      summary: List Travel Proposal Bids
      operationId: ListTravelProposalBids
      description: Get a paginated list of travel proposal bids.
      tags:
      - Travel RFPs
      security:
      - OAuth2.clientCredentials:
        - business-transient/bids:read
        - business-travel/bids:read
      - OAuth2.authorizationCode:
        - business-transient/bids:read
        - business-travel/bids:read
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/travel-bid-filter'
      responses:
        '200':
          description: Successfully retrieved a paginated list of travel proposal bids.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/travel-proposal-bid-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
  /travel-proposals/bids/{travelProposalBidId}:
    parameters:
    - $ref: '#/components/parameters/travelProposalBidId'
    get:
      summary: Get Travel Proposal Bid
      operationId: GetTravelProposalBid
      description: Gets a travel proposal bid for the given travel proposal bid ID.
      tags:
      - Travel RFPs
      security:
      - OAuth2.clientCredentials:
        - business-transient/bids:read
        - business-travel/bids:read
      responses:
        '200':
          description: Successfully retrieved a travel proposal bid.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/travel-proposal-bid'
        '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'
  /travel-proposals/{travelProposalId}:
    parameters:
    - $ref: '#/components/parameters/travelProposalId'
    get:
      summary: Get Travel Proposal
      operationId: GetTravelProposal
      description: Gets a travel proposal for the given travel proposal ID.
      tags:
      - Travel RFPs
      security:
      - OAuth2.clientCredentials:
        - business-transient/proposals:read
        - business-travel/proposals:read
      - OAuth2.authorizationCode:
        - business-transient/proposals:read
        - business-travel/proposals:read
      responses:
        '200':
          description: Successfully retrieved a travel proposal.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/travel-proposal'
        '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'
components:
  parameters:
    travelProposalBidId:
      description: Unique ID of a travel proposal bid.
      example: 413c5cc2-cb77-4082-9131-bab73fde5834
      name: travelProposalBidId
      required: true
      in: path
      schema:
        $ref: '#/components/schemas/UUIDProperty'
    travel-bid-filter:
      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

        * not equal: ne

        * greater than: gt

        * greater or equal: ge

        * less than: lt

        * less than or equal: le


        The following fields are filterable:

        * id (eq|ne)

        * proposal.id (eq|ne)

        * proposal.created (eq|ne|lt|le|gt|ge)

        * proposal.lastModified (eq|ne|lt|le|gt|ge)

        '
      schema:
        type: string
        example: proposal.id eq '1ffa56d9-9f60-4b8c-8b3b-3451de21293c'
    token:
      name: token
      in: query
      description: 'The continuation token returned from a previous class. This must be a valid UUID v4 if provided.

        This will override any other pageable parameters provided.

        '
      style: form
      explode: true
      schema:
        type: string
        example: 0e28af57-511f-47ab-ae46-46cd1ca51a1a
    questionId2:
      name: questionId
      description: Unique ID for a question
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UUIDProperty'
    travel-program-filter:
      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''.


        There are eight comparison types that can be used in filter expressions:

        * equal: eq

        * not equal: ne

        * greater than: gt

        * greater or equal: ge

        * less than: lt

        * less than or equal: le

        * starts with: sw

        * contains a value: contains


        The following fields are filterable:

        * id (eq|ne)

        * name (eq|ne|sw|contains)

        * type (eq|ne)

        * travelAccount.id (eq|ne)

        * created (eq|ne|lt|le|gt|ge)

        * lastModified (eq|ne|lt|le|gt|ge)"

        '
      schema:
        type: string
        example: travelAccount.id eq 3c74daaf-11af-4b43-9a4e-ed3ec60f9bd3
    travel-proposal-filter:
      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

        * not equal: ne

        * greater than: gt

        * greater or equal: ge

        * less than: lt

        * less than or equal: le

        * starts with: sw

        * contains a value: contains


        The following fields are filterable:

        * id (eq|ne)

        * businessType (eq|ne)

        * contractPeriod (eq|ne)

        * status (eq|ne)

        * deleted (eq|ne)

        * supplierProperty.id (eq|ne)

        * travelProgram.id (eq|ne)

        * created (eq|ne|lt|le|gt|ge)

        * lastModified (eq|ne|lt|le|gt|ge)

        '
      schema:
        type: string
        example: travelProgram.id eq '1ffa56d9-9f60-4b8c-8b3b-3451de21293c'
    after:
      name: after
      required: false
      description: Used to query records that have been added or updated after this time point. Default to the beginning
        of time of the data store.
      in: query
      schema:
        type: string
        format: date-time
        example: '2017-01-02T02:00:00Z'
    limit:
      name: limit
      in: query
      description: The maximum number of records to return per page.
      style: form
      explode: true
      schema:
        maximum: 200
        minimum: 1
        type: integer
        default: 100
        example: 100
    travelProposalId:
      description: Unique ID of a travel proposal.
      example: 413c5cc2-cb77-4082-9131-bab73fde5834
      name: travelProposalId
      required: true
      in: path
      schema:
        $ref: '#/components/schemas/UUIDProperty'
    programId:
      name: programId
      description: A uuid used to uniquely identify the program.
      required: true
      in: path
      schema:
        title: Program ID
        type: string
        format: uuid
        example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
    before:
      name: before
      required: false
      in: query
      description: Used to query records that have been added or updated before this time point.
      schema:
        type: string
        format: date-time
        example: '2017-01-02T02:00:00Z'
  schemas:
    PolicyValueType:
      title: Policy Value Type
      enum:
      - selection_list
      - integer
      - money
      - percent
      - multi_select
      - text_multi_line
      - percent_or_money
      - boolean
      type: string
      description: Value type of the policy
    TravelBidDispositionAcceptedRoom:
      title: Travel Bid Disposition Accepted Room
      type: object
      description: Represents bid disposition's accepted room.
      properties:
        propertyRoom:
          title: Property Room
          description: ID of the property's room.
          type: object
          properties:
            id:
              title: Property Room ID
              description: The unique ID of the property room.
              type: string
              format: uuid
              example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
        lraRateAccepted:
          title: LRA Rate Accepted
          description: Indicates whether the LRA rates are accepted.
          type: boolean
          example: true
        nlraRateAccepted:
          title: NLRA Rate Accepted
          description: Indicates whether the NLRA rates are accepted.
          type: boolean
          example: true
    TravelBidSeasonRate:
      title: Travel Bid Season Rate
      description: The negotiated rates for a property room during a specific season.
      type: object
      properties:
        propertyRoom:
          title: Property Room
          description: ID of the property's room.
          type: object
          properties:
            id:
              title: Property Room ID
              description: The unique ID of the property room.
              type: string
              format: uuid
              example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
        singleRate:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          example: 100
          description: The last room available (LRA) single rate.
        doubleRate:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          example: 101
          description: The last room available (LRA) double rate.
        tripleRate:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          example: 102
          description: The last room available (LRA) triple rate.
        quadRate:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          example: 103
          description: The last room available (LRA) quad rate.
        nlraSingleRate:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          example: 104
          description: The non last room available (NLRA) single rate.
        nlraDoubleRate:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          example: 105
          description: The non last room available (NLRA) double rate.
        allotment:
          type: integer
          minimum: 1
          maximum: 999
          description: The number of rooms allotted at the negotiated rate.
          example: 100
        status:
          $ref: '#/components/schemas/BidItemStatusType'
    CommentType:
      title: Comment Type
      enum:
      - promotions
      - special_offers
      - child_policies
      - other_information
      - internal_comments
      type: string
      description: Bid comment type
      example: promotions
    TravelBidDiscount:
      title: Travel Bid Discount
      type: object
      description: Discount for a travel bid.
      properties:
        propertyRoom:
          title: Property Room
          description: ID of the property's room.
          type: object
          properties:
            id:
              title: Property Room ID
              description: The unique ID of the property room.
              type: string
              format: uuid
              example: 9ea95519-2fc5-49d8-991b-e954f49044fe
        discount:
          type: integer
          minimum: 0
          maximum: 99
          description: Discount percentage for the dynamic rate.
          example: 10
        status:
          $ref: '#/components/schemas/BidItemStatusType'
    TravelProposalGroupAndMeetingAmenity:
      title: Travel Proposal Group And Meeting Amenity
      description: Group and meeting amenity info.
      type: object
      properties:
        lcdIncluded:
          type: boolean
          description: True indicates a liquid crystal display (LCD) is included in the amenity.
        lcdPrice:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          description: Price of the liquid crystal display (LCD).
          example: 100
        screenIncluded:
          type: boolean
          description: True indicates a screen is included in the amenity.
        screenPrice:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          description: Price of the screen.
          example: 100
        hsiaIncluded:
          type: boolean
          description: True indicates high speed internet access is included in the amenity.
        hsiaPrice:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          description: Price of high speed internet access (HSIA).
          example: 100
        complementaryParkingIncluded:
          type: boolean
          description: True indicates parking is included in the amenity.
        whatCompanyProvidesAVEquipment:
          type: string
          maxLength: 100
          description: Name of company providing AV equipment.
          example: Some company
    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
    TravelProposalDisposition:
      title: Travel Proposal Disposition
      type: object
      description: Represent proposal disposition details.
      properties:
        bidDispositions:
          type: array
          description: List of bid dispositions.
          items:
            $ref: '#/components/schemas/TravelBidDisposition'
        groupAndMeetingAccepted:
          type: boolean
          description: Indicates if the group and meeting is accepted.
          example: true
    question:
      title: Travel Program Question
      description: A question, defined by the program, for the supplier to answer as part of their proposal.
      type: object
      allOf:
      - $ref: '#/components/schemas/Audit'
      properties:
        id:
          title: Question ID
          description: The unique ID of the question.
          type: string
          format: uuid
          example: 76c461cb-77f6-40b3-acc8-db44452f11c4
        text:
          title: Question Text
          description: The text of the question.
          type: string
          maxLength: 300
          example: What type of food is served in the hotel restaurant?
        required:
          title: Required?
          type: boolean
          example: true
          description: Is this question required by default?
        responseType:
          $ref: '#/components/schemas/QuestionResponseType'
        responseDataType:
          $ref: '#/components/schemas/QuestionResponseDataType'
        responseFormat:
          $ref: '#/components/schemas/QuestionResponseFormat'
        responseChoices:
          title: Response Choices
          description: A list of options for the question.  This only applies when responseType is 'choice'
          type: array
          items:
            type: string
          example:
          - Mexican
          - American
          - French
          - Other
    travel-program-paginated-response:
      title: Travel program paginated response
      description: A paginated list of travel programs.
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/Paging'
        data:
          type: array
          items:
            $ref: '#/components/schemas/travel-program'
          description: Collection of travel programs and their related details.
    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
    TravelProgramType:
      title: Travel Program Type
      enum:
      - corporate
      - leisure
      - consortia
      type: string
      description: Code representing the travel program type.
      example: corporate
    travel-proposal:
      title: Travel Proposal
      type: object
      description: Represents travel proposals. Travel proposals are created by the travel supplier in response
        to a travel account's program.
      allOf:
      - $ref: '#/components/schemas/Audit'
      properties:
        id:
          title: Proposal ID
          description: The unique ID of the travel proposal.
          type: string
          format: uuid
          example: 3e2a8614-7d52-442e-8c4f-a6a18ed9ac4d
          readOnly: true
        supplierProperty:
          title: Supplier Property
          description: Supplier property that the proposal is tied to.
          type: object
          properties:
            id:
              title: Supplier Property ID
              description: The unique ID of the supplier property.
              type: string
              format: uuid
              example: a1c79ba8-9553-4fb0-80bd-66adac1b2f5d
        travelProgram:
          title: Travel Program
          description: Travel program that the proposal is in response to.
          type: object
          properties:
            id:
              title: Travel Program ID
              description: The unique ID of the travel program.
              type: string
              format: uuid
              example: ddc61444-45c7-4e1d-9fdd-07713c8baf9b
        contractPeriod:
          type: integer
          example: 2021
          description: Contract period of the proposal. The year the contract begins.
        status:
          $ref: '#/components/schemas/proposal-status-type'
        deleted:
          type: boolean
          default: false
          description: True indicates the proposal is deleted.
        rateReviewStatus:
          $ref: '#/components/schemas/RateReviewStatusType'
        businessType:
          $ref: '#/components/schemas/business-type'
        format:
          $ref: '#/components/schemas/format-type'
        documentRead:
          type: boolean
          default: false
          description: True indicates the documents been read by the supply-side.
        rejectReasonCode:
          type: string
          maxLength: 30
          example: Other
          description: Reason the reject/decline action was performed. Used for certain actions/statuses.
        rejectComment:
          type: string
          maxLength: 2000
          example: other reasons
          description: Comments regarding the reasoning for the reject/decline action. This only comes into play
            for certain actions/statuses.
        submitDate:
          type: string
          format: date-time
          description: The ISO 8601 datetime when proposal was submitted by the hotel.
          example: '2030-02-10T00:00:00.000Z'
        negotiationRound:
          type: integer
          description: The current round of negotiations.
          example: 1
        negotiationDueDate:
          type: string
          format: date-time
          description: The ISO 8601 datetime when the negotiation response is due.
          example: '2030-02-10T00:00:00.000Z'
        roomNightConsumption:
          type: integer
          description: Client room nights produced at property from January 1 through June 30.
          example: 100
        draft:
          type: boolean
          description: True indicates this proposal is a draft copy that is not sent to the other party.
        bids:
          type: array
          description: Collection of bid IDs attached to the proposal.
          items:
            $ref: '#/components/schemas/TravelProposalBid'
        customQuestionAnswers:
          type: array
          description: Collection of custom questions.
          items:
            $ref: '#/components/schemas/TravelProposalCustomQuestion'
        groupAndMeeting:
          $ref: '#/components/schemas/TravelProposalGroupAndMeeting'
        proposalDisposition:
          $ref: '#/components/schemas/TravelProposalDisposition'
    TravelBidAmenity:
      title: Travel Bid Amenity
      type: object
      description: Amenity details for a travel bid.
      properties:
        type:
          $ref: '#/components/schemas/AmenityType'
        code:
          type: string
          minLength: 1
          maxLength: 60
          description: The code representing the amenity.
          example: parking_valet
        category:
          type: string
          minLength: 1
          maxLength: 60
          description: The category of the amenity.
          example: Parking
        included:
          type: boolean
          default: false
          description: True indicates the amenity price is included in the rate.
        price:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          description: The price of the amenity.
          example: 100
        discountAmount:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          description: The price of the amenity after discounts.
          example: 90
        internalCost:
          type: number
          minimum: 0.01
          maximum: 9999999999.99
          description: Internal cost of the amenity.
          example: 80
        description:
          type: string
          maxLength: 1000
          description: Additional notes on the amenity.
          example: Valet parking is available for all guests.
        status:
          $ref: '#/components/schemas/BidItemStatusType'
    TravelBidTaxAndFee:
      title: Travel Bid Tax and Fee
      description: A tax or fee associated with a travel bid.
      type: object
      properties:
        code:
          $ref: '#/components/schemas/TaxType1'
        amount:
          type: number
          description: The amount of the tax/fee. This may be a percent or monetary value depending on the value
            in `percent`.
          minimum: 0
          maximum: 9999999999.99
          example: 20
        percent:
          type: boolean
          default: false
          description: True indicates the tax/fee amount represents a percentage, instead of a monetary 

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