Cvent Event Cloud Travel RFPs API

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.'

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/cvent-event-cloud-travel-rfps-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-event-cloud-travel-rfps-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cvent REST Travel RFPs API
  description: "# 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: 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:
  schemas:
    travel-program:
      title: Travel Program
      description: Travel program details.
      type: object
      allOf:
      - $ref: '#/components/schemas/Audit'
      properties:
        id:
          title: Program ID
          description: The unique ID of the travel program.
          type: string
          format: uuid
          example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
        name:
          title: Program Name
          type: string
          maxLength: 60
          description: The name of the travel program.
          example: Test Program
        contractPeriod:
          title: Originating Contract Period
          description: The contract year in which the travel program originated.
          type: integer
          example: 2023
        type:
          $ref: '#/components/schemas/TravelProgramType'
        format:
          $ref: '#/components/schemas/TravelProgramFormatType'
        status:
          $ref: '#/components/schemas/TravelProgramStatus'
        travelAccount:
          title: Travel Account
          description: Travel account that the program belongs to.
          type: object
          properties:
            id:
              title: Travel Account ID
              description: The unique ID of the travel account.
              type: string
              format: uuid
              example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
        stayType:
          $ref: '#/components/schemas/TravelProgramStayType'
        startDate:
          title: Start Date
          description: The ISO 8601 formatted start date (in GMT) of the travel program.
          type: string
          format: date
          example: '2024-01-01'
        endDate:
          title: End Date
          description: The ISO 8601 formatted end date (in GMT) of the travel program.
          type: string
          format: date
          example: '2024-12-31'
        dueDate:
          title: Due Date
          description: The ISO 8601 formatted due date (in GMT) of the travel program.
          type: string
          format: date
          example: '2023-11-13'
        closeoutDate:
          title: Closeout Date
          description: The ISO 8601 formatted decision date (in GMT) of the travel program.
          type: string
          format: date
          example: '2023-11-13'
        questions:
          title: Questions
          description: A list of program specific questions for the supplier to answer as part of their proposal.
          type: array
          items:
            $ref: '#/components/schemas/TravelProgramQuestion-1'
    TravelProposalBid:
      title: Travel Proposal Bid
      type: object
      description: A travel proposal bid.
      properties:
        id:
          title: Bid ID
          description: The ID of the bid.
          type: string
          format: uuid
          example: 1c208c0d-cf96-42ec-a2c3-7ab7a5c04825
    BidStayType:
      title: Bid Stay Type
      enum:
      - daily
      - extended
      type: string
      description: Bid stay type.
      default: daily
    PolicyValueType:
      title: Policy Value Type
      enum:
      - selection_list
      - integer
      - money
      - percent
      - multi_select
      - text_multi_line
      - percent_or_money
      type: string
      description: Value type of the policy
    travel-proposal-paginated-response:
      title: Travel Proposal Paginated Response
      description: A paginated list of travel proposals.
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/Paging'
        data:
          type: array
          items:
            $ref: '#/components/schemas/travel-proposal'
          description: Paginated list of business transient proposals.
    RateLevelType:
      title: Rate Level Type
      enum:
      - corporate
      - leisure
      - government
      type: string
      description: Rate level
      example: corporate
    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.
    QuestionResponseFormat:
      title: Question Response Format
      enum:
      - lower_case
      - proper_case
      - upper_case
      type: string
      description: Code representing the format the text of the response will be in.
      example: proper_case
    TravelProgramStatus:
      title: Travel Program Status
      enum:
      - in_progress
      - complete
      - closed
      type: string
      description: Code representing the status of the travel program.
      example: complete
    TravelBidSeason:
      title: Travel Bid Season
      type: object
      description: Season details for a travel bid.
      properties:
        name:
          type: string
          maxLength: 20
          description: Season name.
          example: Season 1
        startDate:
          type: string
          format: date
          description: The ISO 8601 start date of the season.
          example: '2021-07-13'
        endDate:
          type: string
          format: date
          description: The ISO 8601 end date of the season.
          example: '2021-07-13'
        releasePeriod:
          type: integer
          minimum: 1
          maximum: 999
          example: 1
          description: Number of release periods.
        weekendReleasePeriod:
          type: integer
          minimum: 1
          maximum: 999
          example: 2
          description: Number of weekend release periods.
        rates:
          type: array
          description: Collection of rates for the season.
          items:
            $ref: '#/components/schemas/TravelBidSeasonRate'
        weekendRates:
          type: array
          description: Collection of weekend rates for the season.
          items:
            $ref: '#/components/schemas/TravelBidSeasonRate'
        status:
          $ref: '#/components/schemas/BidItemStatusType'
    TaxType1:
      title: Tax Type
      enum:
      - city_tax
      - lodging_tax
      - occupancy_tax
      - service_fee
      - state_tax
      - vat_tax
      - vatfb_tax
      - other_tax
      - resort_fee
      type: string
      description: Bid tax type.
      example: city_tax
    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
    QuestionResponseDataType:
      title: Question Response Data Type
      enum:
      - text
      - date
      - date_time
      - time
      - number
      - email
      - boolean
      type: string
      description: Code representing the expected data type of the question response.
      example: text
    proposal-status-type:
      title: Proposal Status Type
      enum:
      - participation_requested
      - new
      - active
      - submitted
      - declined_participation
      - verified
      - approved
      - account_accepted
      - account_rejected
      - internal_rejected
      - request_renegotiation
      - decline_renegotiation
      - deleted
      type: string
      description: The status of the proposal
      example: account_accepted
    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
    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

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