Cvent Event Cloud Meeting Request API

When planning an event, meeting request forms are customizable online questionnaires to capture information about the event and facilitate the approval of events. When a meeting request form is submitted it becomes a meeting request. Use this API to view forms, create meeting requests and track the status of meeting requests. **Legacy meeting request forms are not supported by this API.**

Operations 8

GET /events/{id}/meeting-requests Get MR by Event ID #
GET /meeting-request-forms List MR Forms #
GET /meeting-request-forms/{id} Get MR Form #
POST /meeting-request-forms/{id}/requests Create MR (Bulk) #
PUT /meeting-request-forms/{id}/requests Update MR (Bulk) #
GET /meeting-request-forms/{id}/requests List MR #
GET /meeting-request-forms/{id}/requests/{requestId} Get MR #
GET /meeting-requests/{requestId}/documents List MR Documents #

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-meeting-request-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-meeting-request-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cvent REST Meeting Request 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: Meeting Request
  description: When planning an event, meeting request forms are customizable online questionnaires to capture information about the event and facilitate the approval of events. When a meeting request form is submitted it becomes a meeting request. Use this API to view forms, create meeting requests and track the status of meeting requests. **Legacy meeting request forms are not supported by this API.**
paths:
  /events/{id}/meeting-requests:
    get:
      tags:
      - Meeting Request
      security:
      - OAuth2.clientCredentials:
        - event/meeting-requests:read
      - OAuth2.authorizationCode:
        - event/meeting-requests:read
      summary: Get MR by Event ID
      description: Gets a meeting request connected to a given event.
      operationId: getMeetingRequestByEventId
      parameters:
      - name: id
        in: path
        required: true
        description: ID of an event.
        schema:
          $ref: '#/components/schemas/uuid-property'
      responses:
        '200':
          description: Successfully retrieved a meeting request.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/meeting-request'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /meeting-request-forms:
    get:
      tags:
      - Meeting Request
      security:
      - OAuth2.clientCredentials:
        - event/meeting-request-forms:read
      - OAuth2.authorizationCode:
        - event/meeting-request-forms:read
      parameters:
      - $ref: '#/components/parameters/limit3'
      - $ref: '#/components/parameters/token'
      - name: filter
        in: query
        required: false
        description: "A filter query string narrows search results and supports the combination of logical and comparison operators. The filter adheres to the pattern filter='field' comparisonType 'value'.\nThis is the comparison type that can be used in filter expressions:\n  * equal: eq\n\nThe following field is filterable:\n  * active (eq)\n"
        schema:
          type: string
          example: active eq 'true'
      summary: List MR Forms
      description: Get a paginated list of meeting request forms.
      operationId: listMRF
      responses:
        '200':
          description: Successfully retrieved a paginated list of meeting request forms.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/meeting-request-form-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /meeting-request-forms/{id}:
    parameters:
    - name: id
      in: path
      description: ID of a meeting request form.
      required: true
      schema:
        $ref: '#/components/schemas/uuid-property'
    get:
      tags:
      - Meeting Request
      security:
      - OAuth2.clientCredentials:
        - event/meeting-request-forms:read
      - OAuth2.authorizationCode:
        - event/meeting-request-forms:read
      summary: Get MR Form
      description: Get a single meeting request form by ID.
      operationId: getMRFById
      responses:
        '200':
          description: Successfully retrieved a meeting request form.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/meeting-request-form'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '422':
          $ref: '#/components/responses/UnprocessableEntity1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /meeting-request-forms/{id}/requests:
    parameters:
    - name: id
      required: true
      description: Meeting request form ID.
      in: path
      schema:
        $ref: '#/components/schemas/uuid-property'
    post:
      tags:
      - Meeting Request
      operationId: createMeetingRequest
      security:
      - OAuth2.clientCredentials:
        - event/meeting-requests:write
      - OAuth2.authorizationCode:
        - event/meeting-requests:write
      summary: Create MR (Bulk)
      description: 'Creates a collection of meeting requests for a given active form. For complex questions such as Meeting Room Requirements, Sleeping Room Requirements, or Budget Estimates, send the answer as a JSON-serialized string. See the question schema and the [Complex Questions Guide](https://developers.cvent.com/docs/rest-api/guides/meeting-request-complex-questions) for details.


        **Note:** If the meeting request form is configured to auto-create an event upon submission, the `event.id` field may not be populated in the response at the time of initial creation. Event creation is processed asynchronously after the meeting request is saved. To retrieve the associated event ID once it is available, poll the [Get MR](https://developers.cvent.com/documentation#tag/Meeting-Request/operation/getMeetingRequestById) endpoint.'
      parameters:
      - in: query
        name: skipRequiredQuestionValidation
        required: false
        schema:
          type: boolean
        description: Flag `true` to skip required field validation.
      requestBody:
        description: Up to **5 meeting requests** can be created per call.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/meeting-request-bulk-create'
        required: true
      responses:
        '207':
          description: Meeting request(s) were successfully created.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/meeting-request-bulk-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
    put:
      tags:
      - Meeting Request
      operationId: updateMeetingRequest
      security:
      - OAuth2.clientCredentials:
        - event/meeting-requests:write
      - OAuth2.authorizationCode:
        - event/meeting-requests:write
      summary: Update MR (Bulk)
      description: 'Updates a collection of meeting requests for a given form, adding information to the existing meeting requests. For complex questions such as Meeting Room Requirements, Sleeping Room Requirements, or Budget Estimates, send the answer as a JSON-serialized string. See the question schema and the [Complex Questions Guide](https://developers.cvent.com/docs/rest-api/guides/meeting-request-complex-questions) for details.


        **Note:** If the meeting request form is configured to auto-create an event upon submission, the `event.id` field may not be populated in the response at the time of the update. Event creation is processed asynchronously after the meeting request is saved. To retrieve the associated event ID once it is available, poll the [Get MR](https://developers.cvent.com/documentation#tag/Meeting-Request/operation/getMeetingRequestById) endpoint.'
      parameters:
      - in: query
        name: skipRequiredQuestionValidation
        required: false
        schema:
          type: boolean
        description: Flag `true` to skip required field validation.
      requestBody:
        description: Up to **5 meeting requests** can be updated per call.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/meeting-request-bulk-update'
        required: true
      responses:
        '207':
          description: Meeting request was successfully updated.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/meeting-request-bulk-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
    get:
      tags:
      - Meeting Request
      security:
      - OAuth2.clientCredentials:
        - event/meeting-requests:read
      - OAuth2.authorizationCode:
        - event/meeting-requests:read
      summary: List MR
      description: Gets a paginated list of meeting requests for a given form.
      operationId: listMeetingRequest
      parameters:
      - $ref: '#/components/parameters/limit3'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - 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'.\nThese are the comparison types that can be used in filter expressions:\n  * equal: eq\n  * not equal: ne\n\nThe following fields are filterable:\n  * meeting-request.id (eq)\n  * sourceId (eq)\n  * status (eq|ne)\n"
        schema:
          type: string
          example: meeting-request.id eq '775b7a6c-de7f-4dfe-8d16-966acdc0e848'
      responses:
        '200':
          description: Successfully retrieved a paginated list of meeting requests.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/meeting-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
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /meeting-request-forms/{id}/requests/{requestId}:
    parameters:
    - name: id
      required: true
      description: The meeting request form ID.
      in: path
      schema:
        $ref: '#/components/schemas/uuid-property'
    - name: requestId
      required: true
      description: The meeting request ID.
      in: path
      schema:
        $ref: '#/components/schemas/uuid-property'
    get:
      tags:
      - Meeting Request
      security:
      - OAuth2.clientCredentials:
        - event/meeting-requests:read
      - OAuth2.authorizationCode:
        - event/meeting-requests:read
      summary: Get MR
      description: Gets a single meeting request by ID.
      operationId: getMeetingRequestById
      responses:
        '200':
          description: Successfully retrieved a meeting request.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/meeting-request'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /meeting-requests/{requestId}/documents:
    parameters:
    - name: requestId
      in: path
      required: true
      description: Meeting request ID.
      schema:
        $ref: '#/components/schemas/uuid-property'
    get:
      tags:
      - Meeting Request
      summary: List MR Documents
      description: Gets a paginated list of documents for a given meeting request ID. When a meeting request form is submitted, it becomes a meeting request. Some meeting requests have document attachments.
      operationId: listMeetingRequestDocuments
      security:
      - OAuth2.clientCredentials:
        - event/meeting-requests:read
      - OAuth2.authorizationCode:
        - event/meeting-requests:read
      parameters:
      - name: limit
        in: query
        required: false
        description: The maximum number of Documents that can be fetched at once.
        schema:
          type: integer
          maximum: 20
          minimum: 1
          default: 10
      - $ref: '#/components/parameters/token'
      - name: includeReferenceLink
        in: query
        required: false
        description: Set to `false` to exclude the field `referenceLink` from the response.
        schema:
          type: boolean
          default: true
      - 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'.\n\nThe following comparison types can be used in filter expressions:\n  * equal: eq\n  * not equal: ne\n  * greater or equal: ge\n  * less than or equal: le\n\nThe following fields are filterable:\n  * id (eq|ne)\n  * name (eq|ne)\n  * lastModified (le|ge)\n"
        schema:
          type: string
          example: lastModified lt '2024-12-12T03:00:00Z'
      responses:
        '200':
          description: Successfully retrieved the paginated list of documents for the meeting request.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/meeting-request-document-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
components:
  schemas:
    QuestionType1:
      title: QuestionType
      enum:
      - AutoIncrement
      - BudgetEstimates
      - ConsentQuestion
      - Country
      - Currency
      - Decimal
      - Date
      - DateTime
      - Email
      - FileUpload
      - FreeText
      - General
      - Number
      - MeetingRoomRequirements
      - MultiSelect
      - SingleSelect
      - SleepingRoomRequirements
      - USPhoneNumber
      - Unknown
      type: string
      description: Denotes the type of data collected by a question.
      example: SingleSelect
      readOnly: true
    meeting-request-bulk-create:
      title: MeetingRequestBulkCreate
      description: Meeting requests to create.
      type: array
      items:
        $ref: '#/components/schemas/MeetingRequestCreate'
    BudgetSubCategory:
      title: BudgetSubCategory
      type: object
      description: This is used to denote the sub category for a budget.
      properties:
        id:
          $ref: '#/components/schemas/uuid-property'
        name:
          type: string
          description: Name of the budget subcategory assigned to the budget item.
          readOnly: true
          example: utilities
    MeetingRequestCustomField:
      title: MeetingRequestCustomField
      description: Custom field for a meeting request.
      required:
      - id
      allOf:
      - $ref: '#/components/schemas/CustomField'
      properties:
        field:
          type: boolean
          description: True indicates the question is of the field type.
          example: true
        fieldName:
          type: string
          description: The fixed field name.
          example: Event Theme Color
        name:
          type: string
          description: The displayed field name which can be customized.
          readOnly: true
          example: What is your favorite color?
        hidden:
          type: boolean
          description: True indicates a question on the meeting request form should be hidden from the user filling out the meeting request.
          example: false
        required:
          type: boolean
          description: True indicates the given question must be answered.
          example: true
        minLength:
          type: number
          description: The minimum length of a text field.
          example: 0
        maxLength:
          type: number
          description: The maximum length of a text field.
          example: 100
        minChoice:
          type: number
          description: The minimum number of choices required for a multi-choice field.
          example: 0
        maxChoice:
          type: number
          description: The maximum number of choices allowed for a multi-choice field.
          example: 10
        minDate:
          type: string
          description: The ISO 8601 minimum date value for a date field.
          example: '1970-12-23'
        maxDate:
          type: string
          description: The ISO 8601 maximum date value for a date field.
          example: '2100-12-31'
        answerTypes:
          description: List of non-null answer types applicable to the question, such as `Other` or `NA`. This field is omitted when no non-default answer type is defined for the question.
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/AnswerType1'
    CustomFieldType:
      title: CustomFieldType
      enum:
      - AutoIncrement
      - ConsentQuestion
      - Currency
      - Decimal
      - Date
      - DateTime
      - Email
      - FileUpload
      - FreeText
      - General
      - MultiChoice
      - MultiSelect
      - Number
      - OpenEndedDateTime
      - OpenEndedText
      - SingleChoice
      - SingleSelect
      - USPhoneNumber
      - Unknown
      type: string
      description: The type of data collected by a custom field.
      example: General
    MeetingRequestStatus:
      title: MeetingRequestStatus
      description: The user-defined status of the meeting request. Possible statuses for requests are defined by the user at meeting request form creation.
      type: string
      example: Submitted to Accounting
    meeting-request-bulk-response:
      title: MeetingRequestBulkResponse
      description: Created meeting requests.
      type: array
      items:
        $ref: '#/components/schemas/MeetingRequestBulkResponseItem'
    meeting-request-form-paginated-response:
      title: MeetingRequestFormResponse
      description: The response from a request to get the list of meeting request forms. This includes the paging object as well as the collection of meeting request forms.
      required:
      - paging
      - data
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/Paging'
        data:
          type: array
          items:
            $ref: '#/components/schemas/meeting-request-form'
          description: Collection of meeting request form objects.
    MeetingRequestDocument:
      title: MeetingRequestDocument
      description: Document attached to a meeting request that can be downloaded.
      type: object
      allOf:
      - $ref: '#/components/schemas/Document'
      - properties:
          mimeType:
            type: string
            description: The MIME type of the document
            example: application/pdf
          referenceLink:
            $ref: '#/components/schemas/MeetingRequestDocumentReferenceLink'
          meetingRequest:
            type: object
            description: The meeting request this document is attached to.
            properties:
              id:
                description: Meeting Request ID.
                type: string
                format: uuid
    meeting-request-bulk-update:
      title: MeetingRequestBulkUpdate
      description: Meeting requests to update.
      type: array
      items:
        $ref: '#/components/schemas/MeetingRequestUpdate'
    MeetingRequestBulkResponseItem:
      title: MeetingRequestBulkResponseItem
      description: Represents a single meeting request that's returned as part of a bulk request call.
      type: object
      required:
      - status
      - data
      properties:
        data:
          $ref: '#/components/schemas/meeting-request'
        status:
          type: integer
          description: HTTP status code representing the processing status of a single item.
          example: 200
        message:
          type: string
          description: Quick description of what happened during processing.
          example: Successful
        request:
          description: The processed request tied to this response. This field is only sent when processing fails.
          example: Example request information.
          anyOf:
          - type: object
          - type: string
          - type: number
          - type: integer
          - type: boolean
      additionalProperties: false
    MeetingRoomSetupType:
      title: MeetingRoomSetupType
      description: Defines the setup types of a meeting room requirement.
      example: Classroom
      readOnly: true
      e

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