openapi: 3.0.1 info: title: HubSpot CRM Price Books CRM Reads API description: Basepom for all HubSpot Projects version: 2026-09 x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE servers: - url: https://api.hubapi.com tags: - name: Basic - name: Batch paths: /crm/objects/2026-09/{objectType}: get: tags: - Basic summary: Retrieve price books description: Read a page of objects of a specified type in your HubSpot account. You can control the data returned by specifying properties, associations, and whether to include archived records. This endpoint supports pagination through the use of a cursor token. operationId: get-/crm/objects/2026-09/{objectType} parameters: - name: objectType in: path description: The type of object to retrieve, such as contacts, companies, or deals. required: true style: simple explode: false schema: type: string - name: after in: query description: The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. required: false style: form explode: true schema: type: string - name: archived in: query description: Whether to return only results that have been archived. required: false style: form explode: true schema: type: boolean default: false - name: associations in: query description: A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. required: false style: form explode: true schema: type: array items: type: string - name: limit in: query description: The maximum number of results to display per page. required: false style: form explode: true schema: type: integer format: int32 default: 10 - name: properties in: query description: A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. required: false style: form explode: true schema: type: array items: type: string - name: propertiesWithHistory in: query description: A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request. required: false style: form explode: true schema: type: array items: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseSimplePublicObjectWithAssociationsForwardPaging' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - oauth-access - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read - oauth2: - oauth x-hubspot-user-level-auth: internalOnly: false /crm/objects/2026-09/{objectType}/batch/read: post: tags: - Batch summary: Retrieve a batch of price books description: Retrieve a batch of CRM objects by their internal IDs or unique property values. This endpoint allows you to specify the properties and their history to be included in the response. It is useful for efficiently fetching multiple objects' data in a single request. operationId: post-/crm/objects/2026-09/{objectType}/batch/read parameters: - name: objectType in: path description: The type of the CRM object to read in batch. required: true style: simple explode: false schema: type: string - name: archived in: query description: Whether to return only results that have been archived. required: false style: form explode: true schema: type: boolean default: false requestBody: content: application/json: schema: $ref: '#/components/schemas/BatchReadInputSimplePublicObjectId' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BatchResponseSimplePublicObject' '207': description: multiple statuses content: application/json: schema: $ref: '#/components/schemas/BatchResponseSimplePublicObjectWithErrors' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - oauth-access - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read - oauth2: - oauth x-hubspot-user-level-auth: internalOnly: false /crm/objects/2026-09/{objectType}/{objectId}: get: tags: - Basic summary: Retrieve a price book description: Read an object identified by `{objectId}`. By default, `{objectId}` refers to the internal object ID, but you can specify any unique property value using the `idProperty` query parameter. Use the `properties` query parameter to control which properties are returned in the response. operationId: get-/crm/objects/2026-09/{objectType}/{objectId} parameters: - name: objectId in: path description: The unique identifier of the object to retrieve. required: true style: simple explode: false schema: type: string - name: objectType in: path description: The type of the object to retrieve. required: true style: simple explode: false schema: type: string - name: archived in: query description: Whether to return only results that have been archived. required: false style: form explode: true schema: type: boolean default: false - name: associations in: query description: A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. required: false style: form explode: true schema: type: array items: type: string - name: idProperty in: query description: The name of a property whose values are unique for this object type required: false style: form explode: true schema: type: string - name: properties in: query description: A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. required: false style: form explode: true schema: type: array items: type: string - name: propertiesWithHistory in: query description: A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. required: false style: form explode: true schema: type: array items: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SimplePublicObjectWithAssociations' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - oauth-access - oauth2: - crm.objects.deals.read - oauth2: - crm.objects.subscriptions.read - oauth2: - crm.objects.services.read - oauth2: - crm.objects.tickets.sensitive.read - oauth2: - crm.objects.orders.read - oauth2: - crm.objects.listings.write - oauth2: - crm.objects.custom.read - oauth2: - crm.objects.companies.write - oauth2: - crm.objects.tasks.read - oauth2: - crm.objects.custom.sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.read - oauth2: - crm.objects.contacts.highly_sensitive.read.v2 - oauth2: - crm.objects.appointments.sensitive.read.v2 - oauth2: - crm.objects.tickets.highly_sensitive.read - oauth2: - crm.objects.companies.sensitive.read.v2 - oauth2: - crm.objects.tickets.sensitive.write - oauth2: - media_bridge.read - oauth2: - crm.objects.deals.highly_sensitive.read.v2 - oauth2: - crm.objects.contacts.highly_sensitive.write.v2 - oauth2: - crm.objects.companies.highly_sensitive.read.v2 - oauth2: - crm.objects.commercepayments.write - oauth2: - crm.objects.invoices.write - oauth2: - crm.objects.contacts.sensitive.write.v2 - oauth2: - crm.objects.users.write - oauth2: - crm.objects.calls.read - oauth2: - crm.objects.meetings.read - oauth2: - crm.objects.custom.sensitive.read.v2 - oauth2: - crm.objects.users.read - oauth2: - crm.objects.partner-services.read - oauth2: - crm.objects.orders.write - oauth2: - crm.objects.partner-services.write - oauth2: - crm.objects.appointments.write - oauth2: - crm.objects.projects.highly_sensitive.write - oauth2: - crm.objects.carts.write - oauth2: - crm.objects.tickets.highly_sensitive.write - oauth2: - tickets - oauth2: - crm.objects.commercepayments.read - oauth2: - crm.objects.products.write - oauth2: - crm.objects.services.write - oauth2: - crm.objects.subscriptions.write - oauth2: - crm.objects.deals.sensitive.write.v2 - oauth2: - crm.objects.contacts.read - oauth2: - crm.objects.appointments.sensitive.write.v2 - oauth2: - crm.objects.invoices.read - oauth2: - crm.objects.projects.highly_sensitive.read - oauth2: - tickets.sensitive.v2 - oauth2: - crm.objects.custom.write - oauth2: - crm.objects.deals.write - oauth2: - e-commerce - oauth2: - crm.objects.appointments.read - oauth2: - crm.objects.companies.sensitive.write.v2 - oauth2: - crm.objects.projects.read - oauth2: - crm.objects.deals.highly_sensitive.write.v2 - oauth2: - crm.objects.custom.highly_sensitive.read.v2 - oauth2: - crm.objects.companies.highly_sensitive.write.v2 - oauth2: - crm.objects.goals.write - oauth2: - crm.objects.line_items.write - oauth2: - crm.objects.projects.sensitive.read - oauth2: - crm.objects.contacts.write - oauth2: - crm.objects.goals.read - oauth2: - crm.objects.line_items.read - oauth2: - crm.objects.partner-clients.write - oauth2: - crm.objects.projects.write - oauth2: - crm.objects.deals.sensitive.read.v2 - oauth2: - crm.objects.projects.sensitive.write - oauth2: - crm.objects.quotes.write - oauth2: - tickets.highly_sensitive.v2 - oauth2: - crm.objects.leads.read - oauth2: - crm.objects.leads.write - oauth2: - crm.objects.carts.read - oauth2: - crm.objects.emails.read - oauth2: - crm.objects.quotes.read - oauth2: - crm.objects.courses.write - oauth2: - crm.objects.partner-clients.read - oauth2: - crm.objects.notes.read - oauth2: - crm.objects.courses.read - oauth2: - crm.objects.listings.read - oauth2: - crm.objects.contacts.sensitive.read.v2 - oauth2: - crm.objects.products.read - oauth2: - oauth x-hubspot-user-level-auth: internalOnly: false components: schemas: AssociatedId: required: - id - type type: object properties: id: type: string description: The unique identifier for the associated object. It is a string. type: type: string description: The type of association between the objects. It is a string. example: deal_to_contact description: Contains the id and type of an association BatchReadInputSimplePublicObjectId: required: - inputs - properties - propertiesWithHistory type: object properties: idProperty: type: string description: A string representing the name of a property whose values are unique for this object type. inputs: type: array description: An array of SimplePublicObjectId objects, each containing an ID of a CRM object to be read. items: $ref: '#/components/schemas/SimplePublicObjectId' properties: type: array description: An array of strings representing the properties to be returned in the response. If any specified properties are not present on the requested objects, they will be ignored. items: type: string propertiesWithHistory: type: array description: An array of strings representing the properties to be returned along with their history of previous values. If any specified properties are not present on the requested objects, they will be ignored. Using this parameter may reduce the maximum number of objects that can be read in a single request. items: type: string description: Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property. BatchResponseSimplePublicObject: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the batch operation was completed, in ISO 8601 format. format: date-time links: type: object additionalProperties: type: string description: A map of link names to associated URIs, providing additional resources or documentation related to the batch operation. requestedAt: type: string description: The date and time when the batch operation was requested, in ISO 8601 format. format: date-time results: type: array description: An array of SimplePublicObject items representing the results of the batch operation. items: $ref: '#/components/schemas/SimplePublicObject' startedAt: type: string description: The date and time when the batch operation started, in ISO 8601 format. format: date-time status: type: string description: The current status of the batch operation. Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'. enum: - CANCELED - COMPLETE - PENDING - PROCESSING description: A public object batch response object BatchResponseSimplePublicObjectWithErrors: required: - completedAt - results - startedAt - status type: object properties: completedAt: type: string description: The date and time when the batch operation was completed, in ISO 8601 format. format: date-time errors: type: array description: An array of standard errors that occurred during the batch operation. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: A map of link names to associated URIs that provide additional information or actions related to the batch operation. numErrors: type: integer description: The number of errors that occurred during the batch operation. format: int32 requestedAt: type: string description: The date and time when the batch operation was requested, in ISO 8601 format. format: date-time results: type: array description: An array of simple public objects that were processed in the batch operation. items: $ref: '#/components/schemas/SimplePublicObject' startedAt: type: string description: The date and time when the batch operation started, in ISO 8601 format. format: date-time status: type: string description: The current status of the batch operation. Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'. enum: - CANCELED - COMPLETE - PENDING - PROCESSING description: Represents the result of a batch operation on CRM objects, including the processing status, batch results, timestamps, and a list of any errors encountered during the operation. CollectionResponseAssociatedId: required: - results type: object properties: paging: $ref: '#/components/schemas/Paging' results: type: array description: An array of associated IDs, each represented by an 'AssociatedId' object. items: $ref: '#/components/schemas/AssociatedId' CollectionResponseSimplePublicObjectWithAssociationsForwardPaging: required: - results type: object properties: paging: $ref: '#/components/schemas/ForwardPaging' results: type: array description: An array of SimplePublicObjectWithAssociations, each representing a CRM object along with its associated data. items: $ref: '#/components/schemas/SimplePublicObjectWithAssociations' Error: required: - category - correlationId - message type: object properties: category: type: string description: The error category context: type: object additionalProperties: type: array items: type: string description: Context about the error condition example: '{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}' correlationId: type: string description: A unique identifier for the request. Include this value with any error reports or support tickets format: uuid example: aeb5f871-7f07-4993-9211-075dc63e7cbf errors: type: array description: further information about the error items: $ref: '#/components/schemas/ErrorDetail' links: type: object additionalProperties: type: string description: A map of link names to associated URIs containing documentation about the error or recommended remediation steps message: type: string description: A human readable message describing the error along with remediation steps where appropriate example: An error occurred subCategory: type: string description: A specific category that contains more specific detail about the error description: Represents an error response returned by the API when an operation fails. This component is used in various endpoints to provide detailed information about the error encountered. example: message: Invalid input (details will vary based on the error) correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf category: VALIDATION_ERROR links: knowledge-base: https://www.hubspot.com/products/service/knowledge-base ErrorDetail: required: - message type: object properties: code: type: string description: The status code associated with the error detail context: type: object additionalProperties: type: array items: type: string description: Context about the error condition example: '{missingScopes=[scope1, scope2]}' in: type: string description: The name of the field or parameter in which the error was found. message: type: string description: A human readable message describing the error along with remediation steps where appropriate subCategory: type: string description: A specific category that contains more specific detail about the error description: Represents detailed information about an error that occurred in the API. This component is used to provide additional context and specifics about errors, typically as part of an error response. ForwardPaging: type: object properties: next: $ref: '#/components/schemas/NextPage' description: Paging information for forward-only pagination. Contains the next page reference when more results are available; omitted or empty on the last page. NextPage: required: - after type: object properties: after: type: string description: A string token representing the paging cursor for the next page of results. link: type: string description: A string URL that provides the link to access the next page of results. description: Specifies the paging information needed to retrieve the next set of results in a paginated API response Paging: type: object properties: next: $ref: '#/components/schemas/NextPage' prev: $ref: '#/components/schemas/PreviousPage' PreviousPage: required: - before type: object properties: before: type: string description: A string token that indicates the position of the last item on the previous page. It is used to retrieve the previous set of results in a paginated list. link: type: string description: A string URL that provides a direct link to the previous page of results. description: specifies the paging information needed to retrieve the previous set of results in a paginated API response PublicObjectWarning: required: - category - context - message type: object properties: category: type: string description: A string indicating the category of the warning. context: type: object additionalProperties: type: string description: An object providing additional context about the warning, with properties as key-value pairs. message: type: string description: A string containing the warning message. SimplePublicObject: required: - archived - createdAt - id - properties - updatedAt type: object properties: archived: type: boolean description: A boolean indicating whether this object has been archived. archivedAt: type: string description: The date and time when this object was archived, in ISO 8601 format. format: date-time createdAt: type: string description: The date and time when this object was created, in ISO 8601 format. format: date-time id: type: string description: The unique identifier for this object, represented as a string. objectWriteTraceId: type: string description: A string used to trace the write operations for this object. properties: type: object additionalProperties: type: string description: A map of property names to their values, where each value is a string. propertiesWithHistory: type: object additionalProperties: type: array items: $ref: '#/components/schemas/ValueWithTimestamp' description: A map of property names to arrays of their historical values, each with a timestamp and source information. updatedAt: type: string description: The date and time when this object was last updated, in ISO 8601 format. format: date-time url: type: string description: A string representing the URL of this object. warnings: type: array description: An array of warnings related to this object, each containing a category, message, and context. items: $ref: '#/components/schemas/PublicObjectWarning' description: A simple public object. SimplePublicObjectId: required: - id type: object properties: id: type: string description: The unique identifier for the object, represented as a string. example: '430001' description: Contains the Id of a Public Object SimplePublicObjectWithAssociations: required: - archived - createdAt - id - properties - updatedAt type: object properties: archived: type: boolean description: A boolean indicating whether this object is archived. archivedAt: type: string description: The date and time when this object was archived, in ISO 8601 format. format: date-time associations: type: object additionalProperties: $ref: '#/components/schemas/CollectionResponseAssociatedId' description: A map of associated object types to their collection of associated IDs. createdAt: type: string description: The date and time when this object was created, in ISO 8601 format. format: date-time id: type: string description: The unique identifier for this object, represented as a string. objectWriteTraceId: type: string description: A string representing the trace ID for the object write operation. properties: type: object additionalProperties: type: string description: A map of property names to their values, where each value is a string. propertiesWithHistory: type: object additionalProperties: type: array items: $ref: '#/components/schemas/ValueWithTimestamp' description: A map of property names to their historical values, where each value is an array of objects containing the value and timestamp. updatedAt: type: string description: The date and time when this object was last updated, in ISO 8601 format. format: date-time url: type: string description: A string representing the URL of the object. warnings: type: array description: An array of warnings related to the object, each containing a category, message, and context. items: $ref: '#/components/schemas/PublicObjectWarning' description: Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type. StandardError: required: - category - context - errors - links - message - status type: object properties: category: type: string description: A string that categorizes the error. context: type: object additionalProperties: type: array items: type: string description: An object containing additional context about the error, with properties as arrays of strings. errors: type: array description: An array of ErrorDetail objects providing further information about the error. items: $ref: '#/components/schemas/ErrorDetail' id: type: string description: A string representing the unique identifier for the error instance. links: type: object additionalProperties: type: string description: An object mapping link names to associated URIs for documentation or remediation steps. message: type: string description: A string containing a human-readable message describing the error. status: type: string description: A string indicating the status of the error. subCategory: type: object properties: {} description: An object providing more specific categorization of the error. description: Ye olde error ValueWithTimestamp: required: - sourceType - timestamp - value type: object properties: sourceId: type: string description: A string representing the unique identifier of the source. sourceLabel: type: string description: A string providing a label or description for the source. sourceType: type: string description: A string indicating the type of source from which the value was obtained. timestamp: type: string description: A string representing the date and time when the value was recorded, in date-time format. format: date-time updatedByUserId: type: integer description: An integer representing the ID of the user who updated the value. format: int32 value: type: string description: A string representing the value associated with the timestamp. description: Property model that includes timestamp. responses: Error: description: An error occurred. content: '*/*': schema: $ref: '#/components/schemas/Error' securitySchemes: developer_hapikey: type: apiKey name: hapikey in: query oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://app.hubspot.com/oauth/authorize tokenUrl: https://api.hubapi.com/oauth/v1/token scopes: crm.objects.appointments.read: '' crm.objects.appointments.sensitive.read.v2: '' crm.objects.appointments.sensitive.write.v2: '' crm.objects.appointments.write: '' crm.objects.calls.read: '' crm.objects.carts.read: '' crm.objects.carts.write: '' crm.objects.commercepayments.read: '' crm.objects.commercepayments.write: '' crm.objects.companies.highly_sensitive.read.v2: '' crm.objects.companies.highly_sensitive.write.v2: '' crm.objects.companies.read: '' crm.objects.companies.sensitive.read.v2: '' crm.objects.companies.sensitive.write.v2: '' crm.objects.companies.write: '' crm.objects.contacts.highly_sensitive.read.v2: '' crm.objects.contacts.highly_sensitive.write.v2: '' crm.objects.contacts.read: '' crm.objects.contacts.sensitive.read.v2: '' crm.objects.contacts.sensitive.write.v2: '' crm.objects.contacts.write: '' crm.objects.courses.read: '' crm.objects.courses.write: '' crm.objects.custom.highly_sensitive.read.v2: '' crm.objects.custom.highly_sensitive.write.v2: '' crm.objects.custom.read: '' crm.objects.custom.sensitive.read.v2: '' crm.objects.custom.sensitive.write.v2: '' crm.objects.custom.write: '' crm.objects.deals.highly_sensitive.read.v2: '' crm.objects.deals.highly_sensitive.write.v2: '' crm.objects.deals.read: '' crm.objects.deals.sensitive.read.v2: '' crm.objects.deals.sensitive.write.v2: '' crm.objects.deals.write: '' crm.objects.emails.read: '' crm.objects.goals.read: '' crm.objects.goals.write: '' crm.objects.invoices.read: '' crm.objects.invoices.write: '' crm.objects.leads.read: '' crm.objects.leads.write: '' crm.objects.line_items.read: '' crm.objects.line_items.write: '' crm.objects.listings.read: '' crm.objects.listings.write: '' crm.objects.meetings.read: '' crm.objects.notes.read: '' crm.objects.orders.read: '' crm.objects.orders.write: '' crm.objects.partner-clients.read: '' crm.objects.partner-clients.write: '' crm.objects.partner-services.read: '' crm.objects.partner-services.write: '' crm.objects.products.read: '' crm.objects.products.write: '' crm.objects.projects.highly_sensitive.read: '' crm.objects.projects.highly_sensitive.write: '' crm.objects.projects.read: '' crm.objects.projects.sensitive.read: '' crm.objects.projects.sensitive.write: '' crm.objects.projects.write: '' crm.objects.quotes.read: '' crm.objects.quotes.write: '' crm.objects.services.read: '' crm.objects.services.write: '' crm.objects.subscriptions.read: '' crm.objects.subscriptions.write: '' crm.objects.tasks.read: '' crm.objects.tickets.highly_sensitive.read: '' crm.objects.tickets.highly_sensitive.write: '' crm.objects.tickets.sensitive.read: '' crm.objects.tickets.sensitive.write: '' crm.objects.users.read: '' crm.objects.users.write: '' e-commerce: '' media_bridge.read: '' oauth: '' oauth-access: '' tickets: '' tickets.highly_sensitive.v2: '' tickets.sensitive.v2: '' private_apps: type: apiKey name: private-app in: header private_apps_legacy: type: apiKey name: private-app-legacy in: header x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE