HubSpot Engagement Meetings API

The meetings endpoints allow you to log and manage meeting engagement records in HubSpot CRM. You can create meeting records, associate them with contacts and companies, and retrieve meeting details and outcomes.

Documentation

Specifications

Code Examples

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

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-association-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-batch-create-input-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-batch-read-input-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-batch-response-meeting-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-batch-update-input-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-collection-response-association-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-collection-response-meeting-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-filter-group-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-filter-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-meeting-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-paging-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-search-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-schema/engagement-meetings-api-simple-public-object-input-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

OpenAPI Specification

hubspot-engagement-meetings-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: HubSpot Engagement Meetings API
  description: >-
    The meetings endpoints allow you to log and manage meeting engagement records
    in HubSpot CRM. You can create meeting records, associate them with contacts
    and companies, and retrieve meeting details and outcomes. Meeting records
    follow the standard CRM object pattern at /crm/v3/objects/meetings.
  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 meeting associations
- name: Batch
  description: Batch operations for meetings
- name: Meetings
  description: Operations for managing meeting engagement records
paths:
  /crm/v3/objects/meetings:
    get:
      operationId: listMeetings
      summary: Hubspot List Meetings
      description: >-
        Returns a page of meeting engagement records. Use the limit and after
        parameters to paginate through meetings. You can also specify which
        properties to return using the properties parameter.
      tags:
      - Meetings
      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 meetings.
        schema:
          type: boolean
          default: false
        example: false
      responses:
        '200':
          description: Successful response with a list of meetings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponseMeeting'
              examples:
                Listmeetings200Example:
                  summary: Default listMeetings 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: createMeeting
      summary: Hubspot Create a Meeting
      description: >-
        Creates a new meeting engagement record with the provided properties.
        Common meeting properties include hs_meeting_title, hs_meeting_body,
        hs_meeting_start_time, hs_meeting_end_time, and hs_meeting_outcome.
      tags:
      - Meetings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimplePublicObjectInput'
            examples:
              CreatemeetingRequestExample:
                summary: Default createMeeting request
                x-microcks-default: true
                value:
                  properties: &id003
                    key: value
      responses:
        '201':
          description: Meeting created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Meeting'
              examples:
                Createmeeting201Example:
                  summary: Default createMeeting 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/meetings/{meetingId}:
    get:
      operationId: getMeeting
      summary: Hubspot Get a Meeting
      description: >-
        Returns a single meeting engagement record by its ID. You can specify
        which properties to return using the properties parameter.
      tags:
      - Meetings
      parameters:
      - name: meetingId
        in: path
        required: true
        description: The ID of the meeting 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 meetings.
        schema:
          type: boolean
          default: false
        example: false
      responses:
        '200':
          description: Successful response with the meeting record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Meeting'
              examples:
                Getmeeting200Example:
                  summary: Default getMeeting 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: updateMeeting
      summary: Hubspot Update a Meeting
      description: >-
        Performs a partial update of a meeting engagement record. Only the
        properties included in the request body will be updated.
      tags:
      - Meetings
      parameters:
      - name: meetingId
        in: path
        required: true
        description: The ID of the meeting to update.
        schema:
          type: string
        example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimplePublicObjectInput'
            examples:
              UpdatemeetingRequestExample:
                summary: Default updateMeeting request
                x-microcks-default: true
                value:
                  properties: *id003
      responses:
        '200':
          description: Meeting updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Meeting'
              examples:
                Updatemeeting200Example:
                  summary: Default updateMeeting 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: deleteMeeting
      summary: Hubspot Archive a Meeting
      description: >-
        Archives (soft deletes) a meeting engagement record by its ID.
        Archived meetings can be restored using the HubSpot UI or API.
      tags:
      - Meetings
      parameters:
      - name: meetingId
        in: path
        required: true
        description: The ID of the meeting to archive.
        schema:
          type: string
        example: '500123'
      responses:
        '204':
          description: Meeting archived successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /crm/v3/objects/meetings/batch/read:
    post:
      operationId: batchReadMeetings
      summary: Hubspot Batch Read Meetings
      description: >-
        Reads a batch of meeting records by their IDs. Useful for retrieving
        multiple meetings in a single API call.
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchReadInput'
            examples:
              BatchreadmeetingsRequestExample:
                summary: Default batchReadMeetings 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/BatchResponseMeeting'
              examples:
                Batchreadmeetings200Example:
                  summary: Default batchReadMeetings 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/meetings/batch/create:
    post:
      operationId: batchCreateMeetings
      summary: Hubspot Batch Create Meetings
      description: >-
        Creates multiple meeting engagement records in a single API call.
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCreateInput'
            examples:
              BatchcreatemeetingsRequestExample:
                summary: Default batchCreateMeetings request
                x-microcks-default: true
                value:
                  inputs: &id008
                  - properties: *id003
      responses:
        '201':
          description: Meetings created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponseMeeting'
              examples:
                Batchcreatemeetings201Example:
                  summary: Default batchCreateMeetings 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/meetings/batch/update:
    post:
      operationId: batchUpdateMeetings
      summary: Hubspot Batch Update Meetings
      description: >-
        Updates multiple meeting engagement records in a single API call.
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUpdateInput'
            examples:
              BatchupdatemeetingsRequestExample:
                summary: Default batchUpdateMeetings request
                x-microcks-default: true
                value:
                  inputs: &id009
                  - id: '500123'
                    properties:
                      key: value
      responses:
        '200':
          description: Meetings updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchResponseMeeting'
              examples:
                Batchupdatemeetings200Example:
                  summary: Default batchUpdateMeetings 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/meetings/search:
    post:
      operationId: searchMeetings
      summary: Hubspot Search Meetings
      description: >-
        Searches for meeting engagement records using filter groups, sorts,
        and other query parameters.
      tags:
      - Meetings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
            examples:
              SearchmeetingsRequestExample:
                summary: Default searchMeetings request
                x-microcks-default: true
                value:
                  filterGroups: &id010
                  - filters:
                    - {}
                  sorts: &id011
                  - propertyName: Example Record
                    direction: ASCENDING
                  query: example-value
                  properties: &id012
                  - example-value
                  limit: 100
                  after: example-value
      responses:
        '200':
          description: Search results returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponseMeeting'
              examples:
                Searchmeetings200Example:
                  summary: Default searchMeetings 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/meetings/{meetingId}/associations/{toObjectType}:
    get:
      operationId: listMeetingAssociations
      summary: Hubspot List Meeting Associations
      description: >-
        Returns all associations of a meeting record to objects of a specified
        type, such as contacts, companies, or deals.
      tags:
      - Associations
      parameters:
      - name: meetingId
        in: path
        required: true
        description: The ID of the meeting.
        schema:
          type: string
        example: '500123'
      - name: toObjectType
        in: path
        required: true
        description: The type of associated object.
        schema:
          type: string
        example: standard
      responses:
        '200':
          description: List of associations returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponseAssociation'
              examples:
                Listmeetingassociations200Example:
                  summary: Default listMeetingAssociations 200 response
                  x-microcks-default: true
                  value:
                    results: &id013
                    - 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/meetings/{meetingId}/associations/{toObjectType}/{toObjectId}/{associationType}:
    put:
      operationId: createMeetingAssociation
      summary: Hubspot Create a Meeting Association
      description: >-
        Creates an association between a meeting record and another CRM object.
      tags:
      - Associations
      parameters:
      - name: meetingId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: toObjectType
        in: path
        required: true
        schema:
          type: string
        example: standard
      - name: toObjectId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: associationType
        in: path
        required: true
        schema:
          type: string
        example: standard
      responses:
        '200':
          description: Association created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Association'
              examples:
                Createmeetingassociation200Example:
                  summary: Default createMeetingAssociation 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: deleteMeetingAssociation
      summary: Hubspot Delete a Meeting Association
      description: >-
        Removes an association between a meeting record and another CRM object.
      tags:
      - Associations
      parameters:
      - name: meetingId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: toObjectType
        in: path
        required: true
        schema:
          type: string
        example: standard
      - name: toObjectId
        in: path
        required: true
        schema:
          type: string
        example: '500123'
      - name: associationType
        in: path
        required: true
        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:
    Meeting:
      type: object
      description: A HubSpot meeting engagement record.
      properties:
        id:
          type: string
          description: The unique identifier for the meeting.
          example: '500123'
        properties:
          type: object
          description: The meeting's properties as key-value pairs.
          additionalProperties:
            type: string
          example: *id001
        createdAt:
          type: string
          format: date-time
          example: '2025-03-15T14:30:00Z'
        updatedAt:
          type: string
          format: date-time
          example: '2025-03-15T14:30:00Z'
        archived:
          type: boolean
          example: true
        associations:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CollectionResponseAssociation'
          example: *id002
    CollectionResponseMeeting:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Meeting'
          example: *id005
        paging:
          $ref: '#/components/schemas/Paging'
    BatchResponseMeeting:
      type: object
      properties:
        status:
          type: string
          example: active
        results:
          type: array
          items:
            $ref: '#/components/schemas/Meeting'
          example: *id004
        completedAt:
          type: string
          format: date-time
          example: '2025-03-15T14:30:00Z'
    SimplePublicObjectInput:
      type: object
      properties:
        properties:
          type: object
          additionalProperties:
            type: string
          example: *id003
    BatchReadInput:
      type: object
      properties:
        properties:
          type: array
          items:
            type: string
          example: *id006
        inputs:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
          example: *id007
    BatchCreateInput:
      type: object
      properties:
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/SimplePublicObjectInput'
          example: *id008
    BatchUpdateInput:
      type: object
      properties:
        inputs:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              properties:
                type: object
                additionalProperties:
                  type: string
          example: *id009
    SearchRequest:
      type: object
      properties:
        filterGroups:
          type: array
          items:
            $ref: '#/components/schemas/FilterGroup'
          example: *id010
        sorts:
          type: array
          items:
            type: object
            properties:
              propertyName:
                type: string
              direction:
                type: string
                enum: [ASCENDING, DESCENDING]
          example: *id011
        query:
          type: string
          example: example-value
        properties:
          type: array
          items:
            type: string
          example: *id012
        limit:
          type: integer
          maximum: 200
          example: 100
        after:
          type: string
          example: example-value
    FilterGroup:
      type: object
      properties:
        filters:
          type: array
          items:
            $ref: '#/components/schemas/Filter'
          example:
          - propertyName: Example Record
            operator: EQ
            value: example-value
    Filter:
      type: object
      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
      properties:
        id:
          type: string
          example: '500123'
        type:
          type: string
          example: standard
    CollectionResponseAssociation:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Association'
          example: *id013
        paging:
          $ref: '#/components/schemas/Paging'
    Paging:
      type: object
      properties:
        next:
          type: object
          properties:
            after:
              type: string
          example:
            after: example-value
    Error:
      type: object
      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'