HubSpot Tickets API

Tickets represent customer requests for help and are tracked through support pipelines until resolved. The tickets endpoints allow you to create, manage, and retrieve customer support ticket records and associate them with contacts, companies, and other CRM objects.

Documentation

Specifications

Code Examples

💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-association-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-batch-archive-input-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-batch-create-input-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-batch-read-input-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-batch-response-ticket-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-batch-update-input-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-collection-response-association-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-collection-response-ticket-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-filter-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-filter-group-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-paging-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-search-request-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-simple-public-object-input-example.json
💻
CodeExamples
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/examples/crm-tickets-api-ticket-example.json

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-association-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-batch-archive-input-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-batch-create-input-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-batch-read-input-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-batch-response-ticket-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-batch-update-input-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-collection-response-association-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-collection-response-ticket-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-filter-group-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-filter-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-paging-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-search-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-simple-public-object-input-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/crm-tickets-api-ticket-schema.json
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure
📊
JSONSchema
JSON Structure

OpenAPI Specification

hubspot-crm-tickets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: HubSpot CRM Tickets API
  description: >-
    Tickets represent customer requests for help and are tracked through support
    pipelines until resolved. The tickets endpoints allow you to create, manage,
    and retrieve customer support ticket records and associate them with contacts,
    companies, and other CRM objects.
  version: v3
  contact:
    name: HubSpot Developer Support
    url: https://developers.hubspot.com/
servers:
- url: https://api.hubapi.com
  description: HubSpot API
security:
- oauth2: []
tags:
- name: Associations
  description: Operations for managing ticket associations
- name: Batch
  description: Batch operations for tickets
- name: Tickets
  description: Operations for managing ticket records
paths:
  /crm/v3/objects/tickets:
    get:
      operationId: listTickets
      summary: Hubspot List Tickets
      description: >-
        Returns a page of ticket records. Use the limit and after parameters
        to paginate through tickets. You can also specify which properties to
        return using the properties parameter.
      tags:
      - Tickets
      parameters:
      - name: limit
        in: query
        description: The maximum number of results to return per page.
        schema:
          type: integer
          default: 10
          maximum: 100
        example: 10
      - name: after
        in: query
        description: The cursor for pagination to get the next page of results.
        schema:
          type: string
        example: example-value
      - name: properties
        in: query
        description: A comma-separated list of property names to return.
        schema:
          type: string
        example: example-value
      - name: archived
        in: query
        description: Whether to return archived tickets.
        schema:
          type: boolean
          default: false
        example: false
      responses:
        '200':
          description: Successful response with a list of tickets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponseTicket'
              examples:
                Listtickets200Example:
                  summary: Default listTickets 200 response
                  x-microcks-default: true
                  value:
                    results: &id005
                    - id: '500123'
                      properties: &id001
                        key: value
                      createdAt: '2025-03-15T14:30:00Z'
                      updatedAt: '2025-03-15T14:30:00Z'
                      archived: true
                      associations: &id002
                        key: value
                    paging:
                      next: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createTicket
      summary: Hubspot Create a Ticket
      description: >-
        Creates a new ticket record with the provided properties. The request
        body should include a properties object containing field values such as
        subject, content, hs_ticket_priority, and hs_pipeline_stage.
      tags:
      - Tickets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimplePublicObjectInput'
            examples:
              CreateticketRequestExample:
                summary: Default createTicket request
                x-microcks-default: true
                value:
                  properties: &id003
                    key: value
      responses:
        '201':
          description: Ticket created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
              examples:
                Createticket201Example:
                  summary: Default createTicket 201 response
                  x-microcks-default: true
                  value:
                    id: '500123'
                    properties: *id001
                    createdAt: '2025-03-15T14:30:00Z'
                    updatedAt: '2025-03-15T14:30:00Z'
                    archived: true
                    associations: *id002
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /crm/v3/objects/tickets/{ticketId}:
    get:
      operationId: getTicket
      summary: Hubspot Get a Ticket
      description: >-
        Returns a single ticket record by its ID. You can specify which
        properties to return using the properties parameter.
      tags:
      - Tickets
      parameters:
      - name: ticketId
        in: path
        required: true
        description: The ID of the ticket to retrieve.
        schema:
          type: string
        example: '500123'
      - name: properties
        in: query
        description: A comma-separated list of property names to return.
        schema:
          type: string
        example: example-value
      - name: archived
        in: query
        description: Whether to return archived tickets.
        schema:
          type: boolean
          default: false
        example: false
      responses:
        '200':
          description: Successful response with the ticket record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
              examples:
                Getticket200Example:
                  summary: Default getTicket 200 response
                  x-microcks-default: true
                  value:
                    id: '500123'
                    properties: *id001
                    createdAt: '2025-03-15T14:30:00Z'
                    updatedAt: '2025-03-15T14:30:00Z'
                    archived: true
                    associations: *id002
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: updateTicket
      summary: Hubspot Update a Ticket
      description: >-
        Performs a partial update of a ticket record. Only the properties
        included in the request body will be updated; other properties will
        remain unchanged.
      tags:
      - Tickets
      parameters:
      - name: ticketId
        in: path
        required: true
        description: The ID of the ticket to update.
        schema:
          type: string
        example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimplePublicObjectInput'
            examples:
              UpdateticketRequestExample:
                summary: Default updateTicket request
                x-microcks-default: true
                value:
                  properties: *id003
      responses:
        '200':
          description: Ticket updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
              examples:
                Updateticket200Example:
                  summary: Default updateTicket 200 response
                  x-microcks-default: true
                  value:
                    id: '500123'
                    properties: *id001
                    createdAt: '2025-03-15T14:30:00Z'
                    updatedAt: '2025-03-15T14:30:00Z'
                    archived: true
                    associations: *id002
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteTicket
      summary: Hubspot Archive a Ticket
      description: >-
        Archives (soft deletes) a ticket record by its ID. Archived tickets
        can be restored using the HubSpot UI or API.
      tags:
      - Tickets
      parameters:
      - name: ticketId
        in: path
        required: true
        description: The ID of the ticket to archive.
        schema:
          type: string
        example: '500123'
      responses:
        '204':
          description: Ticket archived successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /crm/v3/objects/tickets/batch/read:
    post:
      operationId: batchReadTickets
      summary: Hubspot Batch Read Tickets
      description: >-
        Reads a batch of ticket records by their IDs or unique property values.
        Useful for retrieving multiple tickets in a single API call.
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchReadInput'
            examples:
              BatchreadticketsRequestExample:
                summary: Default batchReadTickets request
                x-microcks-default: true
                value:
                  properties: &id006
                  - example-value
                  inputs: &id007
                  - id: '500123'
      responses:
        '200':
          description: Batch read completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponseTicket'
              examples:
                Batchreadtickets200Example:
                  summary: Default batchReadTickets 200 response
                  x-microcks-default: true
                  value:
                    status: active
                    results: &id004
                    - id: '500123'
                      properties: *id001
                      createdAt: '2025-03-15T14:30:00Z'
                      updatedAt: '2025-03-15T14:30:00Z'
                      archived: true
                      associations: *id002
                    completedAt: '2025-03-15T14:30:00Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /crm/v3/objects/tickets/batch/create:
    post:
      operationId: batchCreateTickets
      summary: Hubspot Batch Create Tickets
      description: >-
        Creates multiple ticket records in a single API call. The request
        body should include an array of ticket property objects.
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCreateInput'
            examples:
              BatchcreateticketsRequestExample:
                summary: Default batchCreateTickets request
                x-microcks-default: true
                value:
                  inputs: &id008
                  - properties: *id003
      responses:
        '201':
          description: Tickets created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponseTicket'
              examples:
                Batchcreatetickets201Example:
                  summary: Default batchCreateTickets 201 response
                  x-microcks-default: true
                  value:
                    status: active
                    results: *id004
                    completedAt: '2025-03-15T14:30:00Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /crm/v3/objects/tickets/batch/update:
    post:
      operationId: batchUpdateTickets
      summary: Hubspot Batch Update Tickets
      description: >-
        Updates multiple ticket records in a single API call. Each record
        in the request must include the ticket ID and the properties to update.
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUpdateInput'
            examples:
              BatchupdateticketsRequestExample:
                summary: Default batchUpdateTickets request
                x-microcks-default: true
                value:
                  inputs: &id009
                  - id: '500123'
                    properties:
                      key: value
      responses:
        '200':
          description: Tickets updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponseTicket'
              examples:
                Batchupdatetickets200Example:
                  summary: Default batchUpdateTickets 200 response
                  x-microcks-default: true
                  value:
                    status: active
                    results: *id004
                    completedAt: '2025-03-15T14:30:00Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /crm/v3/objects/tickets/batch/archive:
    post:
      operationId: batchArchiveTickets
      summary: Hubspot Batch Archive Tickets
      description: >-
        Archives multiple ticket records in a single API call by their IDs.
        Archived tickets can be restored using the HubSpot UI or API.
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchArchiveInput'
            examples:
              BatcharchiveticketsRequestExample:
                summary: Default batchArchiveTickets request
                x-microcks-default: true
                value:
                  inputs: &id010
                  - id: '500123'
      responses:
        '204':
          description: Tickets archived successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /crm/v3/objects/tickets/search:
    post:
      operationId: searchTickets
      summary: Hubspot Search Tickets
      description: >-
        Searches for ticket records using filter groups, sorts, and other
        query parameters. Supports complex filtering with multiple filter
        groups and operators for precise record retrieval.
      tags:
      - Tickets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
            examples:
              SearchticketsRequestExample:
                summary: Default searchTickets request
                x-microcks-default: true
                value:
                  filterGroups: &id011
                  - filters:
                    - {}
                  sorts: &id012
                  - propertyName: Example Record
                    direction: ASCENDING
                  query: example-value
                  properties: &id013
                  - example-value
                  limit: 100
                  after: example-value
      responses:
        '200':
          description: Search results returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponseTicket'
              examples:
                Searchtickets200Example:
                  summary: Default searchTickets 200 response
                  x-microcks-default: true
                  value:
                    results: *id005
                    paging:
                      next: {}
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /crm/v3/objects/tickets/{ticketId}/associations/{toObjectType}:
    get:
      operationId: listTicketAssociations
      summary: Hubspot List Ticket Associations
      description: >-
        Returns all associations of a ticket record to objects of a specified
        type, such as contacts, companies, or deals.
      tags:
      - Associations
      parameters:
      - name: ticketId
        in: path
        required: true
        description: The ID of the ticket.
        schema:
          type: string
        example: '500123'
      - name: toObjectType
        in: path
        required: true
        description: The type of associated object (e.g., contacts, companies, deals).
        schema:
          type: string
        example: standard
      responses:
        '200':
          description: List of associations returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponseAssociation'
              examples:
                Listticketassociations200Example:
                  summary: Default listTicketAssociations 200 response
                  x-microcks-default: true
                  value:
                    results: &id014
                    - id: '500123'
                      type: standard
                    paging:
                      next: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /crm/v3/objects/tickets/{ticketId}/associations/{toObjectType}/{toObjectId}/{associationType}:
    put:
      operationId: createTicketAssociation
      summary: Hubspot Create a Ticket Association
      description: >-
        Creates an association between a ticket and another CRM object record.
        The association type specifies the relationship between the objects.
      tags:
      - Associations
      parameters:
      - name: ticketId
        in: path
        required: true
        description: The ID of the ticket.
        schema:
          type: string
        example: '500123'
      - name: toObjectType
        in: path
        required: true
        description: The type of the object to associate with.
        schema:
          type: string
        example: standard
      - name: toObjectId
        in: path
        required: true
        description: The ID of the object to associate with.
        schema:
          type: string
        example: '500123'
      - name: associationType
        in: path
        required: true
        description: The type of association to create.
        schema:
          type: string
        example: standard
      responses:
        '200':
          description: Association created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Association'
              examples:
                Createticketassociation200Example:
                  summary: Default createTicketAssociation 200 response
                  x-microcks-default: true
                  value:
                    id: '500123'
                    type: standard
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteTicketAssociation
      summary: Hubspot Delete a Ticket Association
      description: >-
        Removes an association between a ticket and another CRM object record.
        This does not delete the ticket or the associated object, only the
        relationship between them.
      tags:
      - Associations
      parameters:
      - name: ticketId
        in: path
        required: true
        description: The ID of the ticket.
        schema:
          type: string
        example: '500123'
      - name: toObjectType
        in: path
        required: true
        description: The type of the associated object.
        schema:
          type: string
        example: standard
      - name: toObjectId
        in: path
        required: true
        description: The ID of the associated object.
        schema:
          type: string
        example: '500123'
      - name: associationType
        in: path
        required: true
        description: The type of association to delete.
        schema:
          type: string
        example: standard
      responses:
        '204':
          description: Association deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    oauth2:
      type: http
      scheme: bearer
      description: OAuth 2.0 Bearer token (access token from OAuth flow)
  schemas:
    Ticket:
      type: object
      description: A HubSpot ticket record.
      properties:
        id:
          type: string
          description: The unique identifier for the ticket.
          example: '500123'
        properties:
          type: object
          description: The ticket's properties as key-value pairs.
          additionalProperties:
            type: string
          example: *id001
        createdAt:
          type: string
          format: date-time
          description: The date and time the ticket was created.
          example: '2025-03-15T14:30:00Z'
        updatedAt:
          type: string
          format: date-time
          description: The date and time the ticket was last updated.
          example: '2025-03-15T14:30:00Z'
        archived:
          type: boolean
          description: Whether the ticket has been archived.
          example: true
        associations:
          type: object
          description: The ticket's associations with other CRM objects.
          additionalProperties:
            $ref: '#/components/schemas/CollectionResponseAssociation'
          example: *id002
    CollectionResponseTicket:
      type: object
      description: A paginated list of ticket records.
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Ticket'
          example: *id005
        paging:
          $ref: '#/components/schemas/Paging'
    BatchResponseTicket:
      type: object
      description: Results from a batch operation on tickets.
      properties:
        status:
          type: string
          example: active
        results:
          type: array
          items:
            $ref: '#/components/schemas/Ticket'
          example: *id004
        completedAt:
          type: string
          format: date-time
          example: '2025-03-15T14:30:00Z'
    SimplePublicObjectInput:
      type: object
      description: Input for creating or updating a CRM object.
      properties:
        properties:
          type: object
          additionalProperties:
            type: string
          example: *id003
    BatchReadInput:
      type: object
      description: Input for a batch read operation.
      properties:
        properties:
          type: array
          items:
            type: string
          example: *id006
        inputs:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
          example: *id007
    BatchCreateInput:
      type: object
      description: Input for a batch create operation.
      properties:
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/SimplePublicObjectInput'
          example: *id008
    BatchUpdateInput:
      type: object
      description: Input for a batch update operation.
      properties:
        inputs:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              properties:
                type: object
                additionalProperties:
                  type: string
          example: *id009
    BatchArchiveInput:
      type: object
      description: Input for a batch archive operation.
      properties:
        inputs:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
          example: *id010
    SearchRequest:
      type: object
      description: A search request for CRM objects.
      properties:
        filterGroups:
          type: array
          items:
            $ref: '#/components/schemas/FilterGroup'
          example: *id011
        sorts:
          type: array
          items:
            type: object
            properties:
              propertyName:
                type: string
              direction:
                type: string
                enum: [ASCENDING, DESCENDING]
          example: *id012
        query:
          type: string
          example: example-value
        properties:
          type: array
          items:
            type: string
          example: *id013
        limit:
          type: integer
          maximum: 200
          example: 100
        after:
          type: string
          example: example-value
    FilterGroup:
      type: object
      description: A group of filters combined with AND logic.
      properties:
        filters:
          type: array
          items:
            $ref: '#/components/schemas/Filter'
          example:
          - propertyName: Example Record
            operator: EQ
            value: example-value
    Filter:
      type: object
      description: A single filter condition.
      properties:
        propertyName:
          type: string
          example: Example Record
        operator:
          type: string
          enum: [EQ, NEQ, LT, LTE, GT, GTE, BETWEEN, IN, NOT_IN, HAS_PROPERTY, NOT_HAS_PROPERTY, CONTAINS_TOKEN, NOT_CONTAINS_TOKEN]
          example: EQ
        value:
          type: string
          example: example-value
    Association:
      type: object
      description: An association between two CRM objects.
      properties:
        id:
          type: string
          example: '500123'
        type:
          type: string
          example: standard
    CollectionResponseAssociation:
      type: object
      description: A list of associations.
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Association'
          example: *id014
        paging:
          $ref: '#/components/schemas/Paging'
    Paging:
      type: object
      description: Pagination information.
      properties:
        next:
          type: object
          properties:
            after:
              type: string
          example:
            after: example-value
    Error:
      type: object
      description: An error response.
      properties:
        status:
          type: string
          example: active
        message:
          type: string
          example: This is an example description.
        correlationId:
          type: string
          example: '500123'
        category:
          type: string
          example: standard
  responses:
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request is invalid or missing required parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'