openapi: 3.1.0 info: title: HubSpot Analytics Events Access Tokens Emails API description: "The HubSpot Analytics Events API allows you to retrieve event completion data \nfrom your HubSpot account. Use this API to query event instances associated with \nCRM objects, filter by event types, and analyze user behavior and engagement patterns.\n\n## Key Features\n- Retrieve event instances for CRM objects\n- Filter events by type, date range, and object\n- Paginate through large result sets\n- Query available event types\n" version: 3.0.0 contact: name: HubSpot Developer Support url: https://developers.hubspot.com license: name: MIT url: https://opensource.org/licenses/MIT servers: - url: https://api.hubapi.com description: HubSpot Production API Server tags: - name: Emails description: Operations for managing email engagement records paths: /crm/v3/objects/emails: get: operationId: listEmailEngagements summary: Hubspot List Email Engagements description: Returns a page of email engagement records. Use the limit and after parameters to paginate through email engagements. You can also specify which properties to return using the properties parameter. tags: - Emails 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 email engagements. schema: type: boolean default: false example: false responses: '200': description: Successful response with a list of email engagements. content: application/json: schema: $ref: '#/components/schemas/CollectionResponseEmailEngagement' examples: Listemailengagements200Example: summary: Default listEmailEngagements 200 response x-microcks-default: true value: results: - id: '500123' properties: key: value createdAt: '2025-03-15T14:30:00Z' updatedAt: '2025-03-15T14:30:00Z' archived: true associations: key: value paging: next: {} '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createEmailEngagement summary: Hubspot Create an Email Engagement description: Creates a new email engagement record with the provided properties. Common email engagement properties include hs_email_subject, hs_email_text, hs_email_html, hs_email_status, hs_email_direction (INCOMING or OUTGOING), and hs_timestamp. tags: - Emails requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SimplePublicObjectInput' examples: CreateemailengagementRequestExample: summary: Default createEmailEngagement request x-microcks-default: true value: properties: key: value responses: '201': description: Email engagement created successfully. content: application/json: schema: $ref: '#/components/schemas/EmailEngagement' examples: Createemailengagement201Example: summary: Default createEmailEngagement 201 response x-microcks-default: true value: id: '500123' properties: key: value createdAt: '2025-03-15T14:30:00Z' updatedAt: '2025-03-15T14:30:00Z' archived: true associations: key: value '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /crm/v3/objects/emails/{emailId}: get: operationId: getEmailEngagement summary: Hubspot Get an Email Engagement description: Returns a single email engagement record by its ID. You can specify which properties to return using the properties parameter. tags: - Emails parameters: - name: emailId in: path required: true description: The ID of the email engagement to retrieve. schema: type: string example: jsmith@example.com - 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 email engagements. schema: type: boolean default: false example: false responses: '200': description: Successful response with the email engagement record. content: application/json: schema: $ref: '#/components/schemas/EmailEngagement' examples: Getemailengagement200Example: summary: Default getEmailEngagement 200 response x-microcks-default: true value: id: '500123' properties: key: value createdAt: '2025-03-15T14:30:00Z' updatedAt: '2025-03-15T14:30:00Z' archived: true associations: key: value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updateEmailEngagement summary: Hubspot Update an Email Engagement description: Performs a partial update of an email engagement record. Only the properties included in the request body will be updated. tags: - Emails parameters: - name: emailId in: path required: true description: The ID of the email engagement to update. schema: type: string example: jsmith@example.com requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SimplePublicObjectInput' examples: UpdateemailengagementRequestExample: summary: Default updateEmailEngagement request x-microcks-default: true value: properties: key: value responses: '200': description: Email engagement updated successfully. content: application/json: schema: $ref: '#/components/schemas/EmailEngagement' examples: Updateemailengagement200Example: summary: Default updateEmailEngagement 200 response x-microcks-default: true value: id: '500123' properties: key: value createdAt: '2025-03-15T14:30:00Z' updatedAt: '2025-03-15T14:30:00Z' archived: true associations: key: value '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteEmailEngagement summary: Hubspot Archive an Email Engagement description: Archives (soft deletes) an email engagement record by its ID. Archived email engagements can be restored using the HubSpot UI or API. tags: - Emails parameters: - name: emailId in: path required: true description: The ID of the email engagement to archive. schema: type: string example: jsmith@example.com responses: '204': description: Email engagement archived successfully. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /crm/v3/objects/emails/search: post: operationId: searchEmailEngagements summary: Hubspot Search Email Engagements description: Searches for email engagement records using filter groups, sorts, and other query parameters. tags: - Emails requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SearchRequest' examples: SearchemailengagementsRequestExample: summary: Default searchEmailEngagements request x-microcks-default: true value: filterGroups: - filters: - {} sorts: - propertyName: Example Record direction: ASCENDING query: example-value properties: - example-value limit: 100 after: example-value responses: '200': description: Search results returned successfully. content: application/json: schema: $ref: '#/components/schemas/CollectionResponseEmailEngagement' examples: Searchemailengagements200Example: summary: Default searchEmailEngagements 200 response x-microcks-default: true value: results: - id: '500123' properties: key: value createdAt: '2025-03-15T14:30:00Z' updatedAt: '2025-03-15T14:30:00Z' archived: true associations: key: value paging: next: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: EmailEngagement: type: object description: A HubSpot email engagement record. properties: id: type: string description: The unique identifier for the email engagement. example: '500123' properties: type: object description: The email engagement's properties as key-value pairs. additionalProperties: type: string example: key: value 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: key: value CollectionResponseEmailEngagement: type: object properties: results: type: array items: $ref: '#/components/schemas/EmailEngagement' example: - id: '500123' properties: key: value createdAt: '2025-03-15T14:30:00Z' updatedAt: '2025-03-15T14:30:00Z' archived: true associations: key: value paging: $ref: '#/components/schemas/Paging' FilterGroup: type: object properties: filters: type: array items: $ref: '#/components/schemas/Filter' example: - propertyName: Example Record operator: EQ value: 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 SimplePublicObjectInput: type: object properties: properties: type: object additionalProperties: type: string example: key: value SearchRequest: type: object properties: filterGroups: type: array items: $ref: '#/components/schemas/FilterGroup' example: - filters: - {} sorts: type: array items: type: object properties: propertyName: type: string direction: type: string enum: - ASCENDING - DESCENDING example: - propertyName: Example Record direction: ASCENDING query: type: string example: example-value properties: type: array items: type: string example: - example-value limit: type: integer maximum: 200 example: 100 after: type: string example: example-value Association: type: object properties: id: type: string example: '500123' type: type: string example: standard 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 Paging: type: object properties: next: type: object properties: after: type: string example: after: example-value CollectionResponseAssociation: type: object properties: results: type: array items: $ref: '#/components/schemas/Association' example: - id: '500123' type: standard paging: $ref: '#/components/schemas/Paging' responses: NotFound: description: The requested resource was not found. 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' Unauthorized: description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://app.hubspot.com/oauth/authorize tokenUrl: https://api.hubapi.com/oauth/v1/token scopes: analytics.read: Read analytics data