Cvent Event Cloud Hooks API

These APIs allow you to create hooks. When triggered, a hook sends a request to your service to get updated data related to the related Cvent object. For more information on using hooks, see the [getting started guide](https://developers.cvent.com/docs/cid/attendee-identification-service).

OpenAPI Specification

cvent-event-cloud-hooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cvent REST APIs — Event Cloud Hooks 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: Hooks
  description: 'These APIs allow you to create hooks. When triggered, a hook sends a request to your service to

    get updated data related to the related Cvent object.


    For more information on using hooks, see the

    [getting started guide](https://developers.cvent.com/docs/cid/attendee-identification-service).

    '
paths:
  /contacts/hooks:
    get:
      summary: List Contact Hooks
      description: Gets a list of contact hooks configured in your account.
      operationId: ListContactHooks
      tags:
      - Hooks
      security:
      - OAuth2.clientCredentials:
        - account/hooks:read
      - OAuth2.authorizationCode:
        - account/hooks:read
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $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.\nThe filter adheres to the pattern filter='field' comparisonType 'value'.\n\nThere are two comparison types that can be used in filter expressions:\n  * equal: eq\n  * not equal: ne\n  * greater than: gt\n  * greater or equal: ge\n  * less than: lt\n  * less than or equal: le\n\nThe following fields are filterable:\n  * id (eq|ne)\n  * name (eq|ne)\n  * created (eq|ne|lt|le|gt|ge)\n  * lastModified (eq|ne|lt|le|gt|ge)\n\nThe following operators are available:\n  * and\n  * or\n"
        schema:
          type: string
          example: id eq '04ca6ae2-0dc3-487b-953e-86d6abbdf7d3' and name ne 'sampleIntegration'
      responses:
        '200':
          $ref: '#/components/responses/HooksPaginatedResponse'
        '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'
    post:
      summary: Create Contact Hook
      description: Creates a contact hook. Contact hooks have a callback URI pointing to your system where Cvent will request contact information.
      operationId: createContactHook
      tags:
      - Hooks
      security:
      - OAuth2.clientCredentials:
        - account/hooks:write
      - OAuth2.authorizationCode:
        - account/hooks:write
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/hook'
      responses:
        '201':
          $ref: '#/components/responses/HookCreated'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      callbacks:
        contactTransaction:
          '{$request.body#/callback}':
            post:
              summary: Contact Transaction Callback
              description: 'This callback will be invoked on the URI you registered via <a href="#operation/contactHook">Create Contact Hook</a>.

                Cvent will send a message requesting details on the contact that triggered the callback. All the non-blank

                fields in your response will overwrite the related fields in Cvent.

                '
              operationId: contactTransactionCallback
              security:
              - CallbackApiKeyAuth: []
              - CallbackBasicAuth: []
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/contact-transaction'
              responses:
                '200':
                  $ref: '#/components/responses/ContactFieldsResponse'
                '400':
                  description: Your server rejected the callback because of some issue with the data. We will not retry on this response.
                '404':
                  description: Your server rejects the callback because the contact doesn't exist in your system. Our system will not retry on this response.
                '429':
                  $ref: '#/components/responses/TooManyRequests1'
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /contacts/hooks/{id}:
    put:
      summary: Update Contact Hook
      description: Update a contact hook's details, including its associated callback URI.
      operationId: updateContactHook
      tags:
      - Hooks
      security:
      - OAuth2.clientCredentials:
        - account/hooks:write
      - OAuth2.authorizationCode:
        - account/hooks:write
      parameters:
      - $ref: '#/components/parameters/id5'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/hook'
      responses:
        '200':
          $ref: '#/components/responses/HookUpdated'
        '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'
    delete:
      summary: Delete Contact Hook
      description: Delete a contact hook's details.
      operationId: deleteContactHook
      tags:
      - Hooks
      security:
      - OAuth2.clientCredentials:
        - account/hooks:delete
      - OAuth2.authorizationCode:
        - account/hooks:delete
      parameters:
      - $ref: '#/components/parameters/id5'
      responses:
        '204':
          description: Successfully deleted contact hook details.
        '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'
components:
  schemas:
    hook-security.json:
      title: Hook Security
      description: Describe security for a web hook callback. Each option corresponds to an Authorization header variant.
      type: object
      oneOf:
      - title: API Key Authentication
        description: API Key Authentication.
        type: object
        required:
        - secret
        allOf:
        - title: Authorization Header
          description: Authorization header support characterizing the authentication type to be used for callbacks to the client system.
          type: object
          required:
          - type
          properties:
            type:
              type: string
              enum:
              - apiKey
              - basic
              title: Authorization Header Type
              description: Authorization header support characterizing the authentication type to be used for callbacks to the client system. API Key, or HTTP Basic Authentication, each configured with a corresponding option.
              example: apiKey
        properties:
          secret:
            type: string
            title: API Key Value
            description: An API key to be included in callback requests.
            writeOnly: true
            example: 2b3cc2bf083ff11206ce6b2f3ee09591
            maxLength: 300
          authHeaderKey:
            type: string
            title: Authorization Header Key
            description: The header key for which API Key will be sent in callback requests. If this field is not set, the API key is sent in the 'Authorization' header.
            example: x-api-key
            minLength: 1
            default: Authorization
          apiKeyPrefix:
            type: boolean
            title: API Key Prefix
            description: Whether API Key Value is prefixed by 'api_key'. When set to true, the authorization header's value in callback requests will be 'api_key 2b3cc2bf083ff11206ce6b2f3ee09591'
            example: true
            default: true
      - title: Basic Authentication
        description: HTTP Basic Authentication via Authorization header.
        type: object
        required:
        - secret
        allOf:
        - $ref: '#/components/schemas/hook-security.json/oneOf/0/allOf/0'
        properties:
          secret:
            type: string
            title: Basic Auth Credentials
            description: Base64 encoded Basic Authentication credentials.
            writeOnly: true
            example: ZGVtbzpwQDU1dzByZA==
            maxLength: 300
    uuid-property:
      title: UUID Property
      description: A string that has to be a format matching the industry standard uuid
      type: string
      format: uuid
      example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
    contact-transaction:
      title: Contact Transaction
      description: A changeset of contact fields.
      required:
      - transactionId
      type: object
      allOf:
      - title: Contact Fields
        description: An array of standard contact fields supported by Cvent.
        required:
        - data
        type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/contact-field.json'
            description: Collection of standard contact fields.
      properties:
        transactionId:
          title: Readonly UUID Property
          description: A unique id corresponding to the contact transaction callback made to fetch contact information.
          type: string
          format: uuid
          readOnly: true
          example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
    paging.json:
      title: Paging
      required:
      - _links
      type: object
      description: Represents pagination information for a collection of resources.
      properties:
        previousToken:
          type: string
          description: The pagination token for the previous page, if one exists. You can use this token to navigate to the previous page of data.
          example: 1a2b3c4d5e6f7g8h9i10j11k
        nextToken:
          type: string
          description: The pagination token for the next page. If this value is present in the response, there is another page of data you can fetch.
          example: 1a2b3c4d5e6f7g8h9i10j11k
        currentToken:
          type: string
          description: The pagination token for the current page.
          example: 1a2b3c4d5e6f7g8h9i10j11k
        limit:
          type: integer
          description: The number of records to return on the page. Not to exceed 200.
          example: 100
        totalCount:
          type: integer
          description: The total number of records available. This field may return blank, even if there are more records. To confirm if there are more records, check the `nextToken` field.
          example: 2
        _links:
          $ref: '#/components/schemas/pagination-links.json'
    link.json:
      title: Link
      required:
      - href
      type: object
      description: Represents a link to a related resource.
      properties:
        href:
          type: string
          description: A url provided that can be followed for linking
          example: ?token=90c5f062-76ad-4ea4-aa53-00eb698d9262
    hook:
      title: Hook
      description: A hook with a callback URI.
      type: object
      required:
      - name
      - callback
      - security
      allOf:
      - title: Audit
        description: Audit information
        type: object
        properties:
          created:
            type: string
            format: date-time
            description: The ISO 8601 zoned date time when this record was created.
            readOnly: true
            example: '2017-01-02T02:00:00Z'
          createdBy:
            type: string
            description: The identifier of the user that created this record.
            readOnly: true
            example: hporter
          lastModified:
            type: string
            format: date-time
            description: The ISO 8601 zoned date time when this record was updated.
            readOnly: true
            example: '2019-02-12T03:00:00Z'
          lastModifiedBy:
            type: string
            description: The identifier of the user that last updated this record.
            readOnly: true
            example: hporter
      properties:
        id:
          type: string
          description: The unique ID representing the hook
          format: uuid
          readOnly: true
          example: 3b2359a7-4583-40ed-8afd-67e5f15373d3
        name:
          type: string
          description: Name of the contact hook.
          example: Attendee Identification
          minLength: 1
          maxLength: 100
        callback:
          type: string
          format: uri
          description: A client hosted callback URI to which callback would be invoked. TLS is mandatory. Callback URL should not contain any confidential information such as API keys or login credentials.
          example: https://myserver.com/send/callback/here
          minLength: 1
          maxLength: 300
        security:
          $ref: '#/components/schemas/hook-security.json'
    ErrorResponseBase:
      title: ErrorResponseBase
      type: object
      description: Represents an error response with no additional details.
      required:
      - code
      - message
      properties:
        code:
          type: integer
          description: The HTTP status code representing the error.
          example: 400
        message:
          type: string
          description: A brief description of the error.
          example: Bad Request
        target:
          type: string
          description: The target resource of the error.
          example: example target
    ErrorResponse:
      title: ErrorResponse
      description: Represents an error response with additional details of cascading error messages.
      allOf:
      - $ref: '#/components/schemas/ErrorResponseBase'
      type: object
      required:
      - code
      - message
      properties:
        details:
          type: array
          items:
            $ref: '#/components/schemas/ErrorResponseBase'
          description: Additional details of cascading error messages.
    contact-fields:
      title: Contact Fields
      description: An array of standard contact fields supported by Cvent.
      required:
      - data
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/contact-field.json'
          description: Collection of standard contact fields.
    pagination-links.json:
      title: PaginationLinks
      type: object
      description: Represents pagination links for navigating between pages of data.
      properties:
        next:
          $ref: '#/components/schemas/link.json'
        self:
          $ref: '#/components/schemas/link.json'
        prev:
          $ref: '#/components/schemas/link.json'
    contact-field.json:
      title: Contact Field
      description: Contains contact data. For example, a User's email address.
      type: object
      required:
      - id
      - name
      - maximumLength
      - type
      properties:
        id:
          title: Readonly UUID Property
          description: The unique ID of the field supported by Cvent.
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          description: The name of the field.
          example: Email Address
        maximumLength:
          type: integer
          description: The maximum length allowed for a value.
          example: 80
        type:
          type: string
          description: The type of the field.
          enum:
          - String
          - Integer
          - Decimal
          - Double
          - DateTime
          - SingleChoice
          - MultiChoice
          example: String
        value:
          type: array
          items:
            type: string
            example: johndoe@cvent.com
          description: The value(s) of the field.
    hooks-paginated-response:
      title: HooksPaginatedResponse
      description: The response from a request to get the list of hooks with a callback URI. This includes the paging object as well as the collection of hooks.
      type: object
      required:
      - paging
      - data
      properties:
        paging:
          $ref: '#/components/schemas/paging.json'
        data:
          type: array
          items:
            $ref: '#/components/schemas/hook'
          description: Collection of contact hooks.
  responses:
    ContactFieldsResponse:
      description: Your server returns this structure on a successful callback with the updated values for contact fields present in your system.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/contact-fields'
    TooManyRequests1:
      description: Too many requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 429
            message: Limit Exceeded
    NotFound1:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 404
            message: Not found
    HooksPaginatedResponse:
      description: Successfully retrieved a list of contact hooks and their details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/hooks-paginated-response'
    HookCreated:
      description: Successfully created a contact hook.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/hook'
    Unauthorized1:
      description: Bad or expired token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 401
            message: Unauthorized
    Forbidden1:
      description: You do not have access to the resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 403
            message: Access Forbidden
    BadRequest1:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 400
            message: Bad Request
    HookUpdated:
      description: Successfully updated a contact hook.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/hook'
  parameters:
    before:
      name: before
      required: false
      in: query
      description: Used to query records that have been added or updated before this time point.
      schema:
        type: string
        format: date-time
        example: '2017-01-02T02:00:00Z'
    token:
      name: token
      in: query
      description: 'The continuation token returned from a previous class. This must be a valid UUID v4 if provided.

        This will override any other pageable parameters provided.

        '
      style: form
      explode: true
      schema:
        type: string
        example: 0e28af57-511f-47ab-ae46-46cd1ca51a1a
    after:
      name: after
      required: false
      description: Used to query records that have been added or updated after this time point. Default to the beginning of time of the data store.
      in: query
      schema:
        type: string
        format: date-time
        example: '2017-01-02T02:00:00Z'
    limit:
      name: limit
      in: query
      description: The maximum number of records to return per page.
      style: form
      explode: true
      schema:
        maximum: 200
        minimum: 1
        type: integer
        default: 100
        example: 100
    id5:
      in: path
      name: id
      required: true
      description: Unique ID of the contact hook.
      schema:
        $ref: '#/components/schemas/uuid-property'
  securitySchemes:
    OAuth2.authorizationCode:
      type: oauth2
      description: OAuth2 Authorization Code Flow.
      flows:
        authorizationCode:
          authorizationUrl: https://api-platform.cvent.com/ea/oauth2/authorize
          tokenUrl: https://api-platform.cvent.com/ea/oauth2/token
          scopes:
            account/hooks:delete: Allows the deletion of hooks.
            account/hooks:read: Allows the reading of hooks.
            account/hooks:write: Allows the creation/updation of hooks.
            account/user-groups:delete: Allows deletion for user groups
            account/user-groups:read: Allows the reading of user groups
            account/user-groups:write: Allows the writing of user groups
            account/users:delete: Allows the deletion of User
            account/users:read: Allows the reading of User, User Group
            account/users:write: Allows the creation/updating of User
            appointments/appointment-attendees:read: Allows the reading of appointment attendees and their related entities.
            appointments/appointment-events:read: Allows the reading of appointment events and their related entities.
            appointments/appointment-types:read: Allows the reading of appointment types and their related entities.
            appointments/appointments:read: Allows the reading of appointment an

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