Cvent Event Cloud Attendees API

Event registrations and attendees

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-attendees-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no email required.

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

OpenAPI Specification

cvent-event-cloud-attendees-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cvent REST APIs — Event Cloud Attendees API
  description: "Event Cloud scope of the Cvent REST APIs. This document is a TAG-SCOPED SUBSET of the OpenAPI specification Cvent publishes at https://github.com/cvent/rest-sdks/blob/main/cvent-public-spec/openapi.yaml (the source of truth for Cvent's official TypeScript/.NET/Java SDKs). Venue-sourcing, RFP, housing-supplier and travel-supplier tags were removed because they belong to Cvent Hospitality Cloud; every path, operation, parameter, schema and security requirement below is verbatim from Cvent's published spec.\n\n# Introduction\nThe Cvent API Platform is built around REST. We aim to provide intuitive endpoints that can be easily\ndiscovered to help leverage the Cvent platform for your event needs. The RESTful APIs outlined here\nuse JSON-encoded request and response format, along with HTTP codes, to convey processing status of\nrequests received. The Cvent resources are protected using OAuth2.\n\n# Getting Started\n\nIf you're new to the Cvent API Platform, start by reading our\n[Developer Quickstart](https://developers.cvent.com/docs/rest-api/tutorials/developer-quickstart) guide. This will\ngive you an overview of how to authenticate and make requests using our APIs.\n\n## Authentication\n\nThe Cvent REST API uses [OAuth2](https://oauth.net/2/) to authorize requests to the platform. The client\ncredentials authorization flow is supported.\n\n<a name=\"oauth2-auth-code-planner-admin\"></a>\n\nAuthorization code flow is only supported for planner users with the administrator role in Cvent. Developer users\ncannot use authorization code flow.\n\n<!-- ReDoc-Inject: <security-definitions> -->\n\nHere's an example of using client credential flow to authorize. You'll supply your application's id and secret to\nmake a [Token](#operation/oauth2Token) request.\n\n```bash\ncurl --location --request POST '{hostName}/{version}/oauth2/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--header 'Authorization: Basic {api_credentials}' \\\n--data-urlencode 'grant_type=client_credentials' \\\n--data-urlencode 'client_id={client_id}'\n```\n\n| Key               | Description                                          | Value                                                                                                        |\n| :---------------- | :--------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- |\n| {hostName}        | https://api-platform.cvent.com                       | Location if your account is in the North American datacenter.                                                |\n|                   | https://api-platform-eur.cvent.com                   | Location if your account is in the European data center.                                                     |\n| {version}         | ea                                                   | The version of the API you're using. Only `ea` is currently supported.                                       |\n| {api_credentials} | {client_id}:{client_secret} in base64 encoded format | Supply your client id & client credentials in a base 64 encoded format.                                      |\n| {client_id}       | Retrieved from your application                      | Your application's client id.                                                                                |\n| {client_secret}   | Retrieved from your application                      | Your application's client secret.                                                                            |\n\nOn a successful call, you'll receive the following response:\n\n```json\n{\n  \"access_token\": \"{accessToken}\",\n  \"expires_in\": 3600,\n  \"token_type\": \"Bearer\"\n}\n```\n\nThis bearer token is valid for 3600 seconds (60 minutes) and must be used in subsequent calls.\n\n## Endpoints\n\nEndpoints start with `hostName` and `version`.\n\nThe `hostname` will depend on the region that your Cvent account is hosted in. Please see the table\nbelow to identify which hostname you should be using.\n\n| Region        |\tHostname                           |\n|:--------------|:-----------------------------------|\n| North America\t| https://api-platform.cvent.com     |\n| Europe        | https://api-platform-eur.cvent.com |\n\nThe current `version` of the Cvent API is `ea`.\n\n## Rate Limits\n\nCvent APIs enforce rate limits to ensure platform stability. Your limits depend on your tier: Free,\nStandard, or Premium.\n\n<br />\n\n### Usage Tiers\n\n| Tier     | Daily Calls | Calls per Second | Max Burst |\n| -------- | ----------- | ---------------- | --------- |\n| Free     | 1,000       | 2                | 1         |\n| Standard | 15,000      | 10               | 10        |\n| Premium  | 500,000     | 25               | 25        |\n\n- **Daily calls** define how many requests you can make in a 24-hour period. Quota\n  resets at 12 midnight (+0 GMT).\n- **Calls per second** define how many requests you can make in a 1-second window.\n- **Max Burst** defines how many requests you can make at once.\n\nIf you are unsure what usage tier applies to your account, you can check via\n[Get Current Usage Tier](#operation/getUsageTier).\n\nPlease note that these limits may change as the Cvent API Platform evolves.\n\n<br />\n\n### Handling Rate Limits\n\nSometimes, you may exceed your rate limits. When this happens, the API will return a `429 Too Many Requests`. See\n[handling rate limits](https://developers.cvent.com/docs/rest-api/guides/handling-rate-limits) for best practices on how to handle this.\n\n## Pagination\n\nSome APIs use pagination to manage records. Each page of records has a token associated to identify it.\n\nIf an API uses pagination, you’ll find up to three tokens in the response:\n- **currentToken**: Describes the token of the current page.\n- **nextToken**: Provides a token for the next page of records, if one exists.\n- **previousToken**: Provides a token for the previous page of records, if one exists. Not all APIs will return\n  this token.\n\nYou specify which page of records to view via the `token` parameter in your API call. To navigate through pages,\ntake the `nextToken` or `previousToken` value and pass it to your next call’s `token` parameter to get the\nrespective page of records. For example, if you made this request:\n\n```bash\ncurl -X GET {hostname}/{version}/contacts?limit=100 \\\n-H 'Accept: application/json' \\\n-H 'Authorization: Bearer {accessToken}'\n```\n\nThe response contains a paging array where you'll find the token information.\n\n```json\n{\n  \"paging\": {\n    \"currentToken\": \"90c5f062-76ad-4ea4-aa53-00eb698d9262\",\n    \"nextToken\": \"3b2359a7-4583-40ed-8afd-67e5f15373d3\",\n    \"limit\": 100,\n    \"totalCount\": 102,\n    \"_links\": {...}\n  },\n  \"data\": [...]\n}\n```\n\nTake the `nextToken` and use it in the `token` parameter on your subsequent call.\n\n```bash\ncurl -X GET {hostname}/{version}/contacts?limit=100&token=3b2359a7-4583-40ed-8afd-67e5f15373d3 \\\n-H 'Accept: application/json' \\\n-H 'Authorization: Bearer {accessToken}'\n```\n\nWhen the response doesn’t contain a `nextToken` field, you’ve reached the last page. Occasionally, you might\nencounter an empty page at the end of results. This typically happens when the results were evenly divisible.\nEnsure your client code handles the possibility of receiving an empty data array when using the `nextToken`.\n\n## Filtering\n\nUse filters to narrow down results. The filter follows the pattern\n`filter='field' comparisonType 'value'`. The value can be enclosed with single\nquotes (') or double quotes (\").\n\n```bash\nGET {hostName}/{version}/contacts?filter=lastName eq 'Smith'\n````\n\nTo correctly pass a single quote in the filter's value, use double quotes around\nthe string.\n\n```bash\nGET {hostName}/{version}/contacts?filter=lastName eq \"O'Keenan\"\n```\n\nTo correctly pass a double quote in the filter's value, use double quotes around\nthe string and add an escape character `\\` to each quote that is part of the\nstring.\n\n```bash\nGET {hostName}/{version}/events?filter=eventName eq \"\\\"Yearly\\\" Conference\"\n```\n\n## Versioning\n\nChange is inevitable in API development. Planning for it is crucial. We track\nboth backward-compatible and backward-incompatible changes.\n\n<br />\n\n### Backward Compatible Changes\n\nBackward compatible changes will be made often and are intended to avoid\nany adverse impact on our customers. It is highly advisable that when reading\nJSON payloads from Cvent, you are able to handle \"unknown\" attributes that\ncan be added over time. We consider the following changes backward-compatible:\n\n- Adding new resources\n- Adding new optional request parameters to existing operations\n- Adding new attributes to requests or responses\n- Changing the length or format (not type) of resource identifiers. For example, an ID can change from\n  \"1234/1234\" to \"1234::1234\".\n- Increasing the length of string fields\n\n<br />\n\n### Backward Incompatible Changes\n\nBackward-incompatible changes are made infrequently, however, they can be\ndisruptive to consumers. Due to this, our APIs are versioned to avoid\ndisruptions to customers. We leverage a URI-based versioning scheme,\nwhich means that a version value is included in the Cvent API URL.\nWhen breaking changes occur, a new version of the API is made available\nwhile the existing version is deprecated but remains available for a\nlimited period of time. We consider the following backward-incompatible changes:\n\n- Adding a new required parameter (query string param or payload attribute)\n- Deleting API resources\n- Deleting any attribute from API responses\n- Changing the data type on any parameter or attribute\n\n## Standards\nAs you begin working with our APIs, it's essential to be aware of standards around\ncountry codes, time formats, and other important details that ensure smooth integration.\nLearn more about our [API Standards](https://developers.cvent.com/docs/rest-api/reference/api-standards)\n"
  contact:
    name: Cvent Development Platform
    url: https://developers.cvent.com/
  version: ea
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
tags:
- name: Attendees
  description: The Attendee entity primarily refers to the person throughout the lifecycle of an event including registration, enrollment into sessions, and participation. Once contacts are added to events, an Attendee entity is created. This API allows you to read attendee data and add new attendees to your Cvent events.
paths:
  /attendance-durations:
    get:
      summary: List Attendance Duration
      operationId: listDurations
      description: Gets a paginated list of durations attendees were engaged (in person or virtually) in a session, appointment or watching a video.
      tags:
      - Attendees
      security:
      - OAuth2.clientCredentials:
        - event/attendance-durations:read
      - OAuth2.authorizationCode:
        - event/attendance-durations:read
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit1'
      - $ref: '#/components/parameters/token'
      - $ref: '#/components/parameters/sort5'
      - name: filter
        in: query
        required: false
        description: 'Use filter query parameters to limit results

          to data that matches your criteria. See

          [Filters](https://developers.cvent.com/docs/rest-api/reference/filters) for details.


          Supported fields and operators are listed below:


          | Field       | Operators                          |

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

          | id          | `eq`, `ne`                         |

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

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

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

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

          | deleted     | `eq`, `ne`                         |

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

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

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

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


          The following logical operators are supported for combining filters:

          * and

          * or

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

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


          **Invite**


          Fields supported for invite:

          * event.id *(required)*

          * contact.id *(required)*

          * invitationList.id


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


          **Register**


          * All fields are supported for register.

          * admissionItem.id *(required)*


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

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

          to data that matches your criteria. See

          [Filters](https://developers.cvent.com/docs/rest-api/reference/filters) for details.


          Supported fields and operators are listed below:


          | Field            | Operators                          | Notes                                    |

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

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

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

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

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

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

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

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

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

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

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

          | externalReference.type | `eq`                                |                                          |

          | externalReference.id | `eq`                                |                                          |

          | externalReference.referenceId | `eq`                                |                                          |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        '
      operationId: listAttendeesPostFilter
      requestBody:
        description: 'The request body accepts filters to refine the data returned.  Refer to available filter details in [GET List Attendees](#operation/listAttendees).

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

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


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

          * equal: eq


          The following fields are filterable:

          * id (eq)

          * attendee.id (eq)

          '
        schema:
          type: string
          example: id eq '{string}' and attendee.id eq '{UUID}'
      responses:
        '200':
          description: Successfully get badges.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/badge-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      exter

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