HubSpot API Integration Guide: CRM, Contacts, Deals & OAuth (2026) | Knit

HubSpot is a cloud-based software platform designed to facilitate business growth by offering an integrated suite of tools for marketing, sales, customer service, and customer relationship management (CRM). Known for its user-friendly interface and robust integration capabilities, HubSpot provides businesses with the resources needed to enhance their operations and customer interactions. The platform is particularly popular among companies focusing on digital marketing and customer engagement strategies, making it a versatile solution for businesses of all sizes and industries.

HubSpot's comprehensive offerings include the Marketing Hub, which aids businesses in attracting visitors, converting leads, and closing customers through features like email marketing, social media management, and SEO analytics. The Sales Hub empowers sales teams to manage pipelines and automate tasks efficiently, while the Service Hub focuses on improving customer satisfaction with tools for ticketing and feedback management. Additionally, HubSpot's CRM offers a centralized database for tracking and nurturing leads, and the CMS Hub provides an intuitive content management system for website creation and optimization.

Key highlights of Hubspot APIs

  • 1. Easy Data Access:
    • The HubSpot API facilitates seamless access to data, enhancing accuracy and efficiency in business operations.
  • 2. Automation:
    • Supports marketing automation, sales enablement, and customer service, streamlining processes and increasing productivity.
  • 3. Custom Integration:
    • Enables seamless data exchange between HubSpot and other systems, improving overall productivity.
  • 4. Real-Time Sync:
    • Utilizes webhooks for prompt notifications of changes, ensuring up-to-date data synchronization.
  • 5. Scalable:
    • Capable of handling up to 150 requests per second, accommodating growing business needs.
  • 6. Developer-Friendly:
    • Extensive documentation and support make it accessible for developers to implement and manage.
  • 7. Global Support:
    • Implied by HubSpot's international presence, offering assistance across different regions.
  • 8. Error Handling and Logging:
    • Standard features included to manage and troubleshoot integration issues effectively.
  • 9. Rate Limiting:
    • Ensures fair usage and prevents abuse by limiting the number of requests per second.
  • 10. Version Control:
    • Maintains stability and compatibility across different API versions.
  • 11. Data Transformation:
    • Managed within integration logic to suit specific business requirements.
  • 12. Webhook Support:
    • Allows for event subscriptions, enhancing real-time data handling capabilities.
  • 13. Detailed Analytics and Reporting:
    • Likely includes features for comprehensive data insights to aid decision-making.
  • 14. Sandbox Environment:
    • A 60-day testing environment is available for development and experimentation.

Hubspot API Endpoints

Imports

  • POST /crm/v3/imports/ : Start a New Import
  • GET https://api.hubapi.com/crm/v3/imports/ : Get Active Imports
  • GET https://api.hubapi.com/crm/v3/imports/{importId} : Get Import Information
  • POST https://api.hubapi.com/crm/v3/imports/{importId}/cancel : Cancel an Active Import
  • GET https://api.hubapi.com/crm/v3/imports/{importId}/errors : Get Import Errors
Note (2026): HubSpot introduced date-based API versioning with the 2026-03 release. New integrations should use the date-versioned endpoint format (e.g. /crm/objects/2026-03/contacts) instead of /crm/v3/. Legacy v3 and v4 paths continue to work until their end-of-life date — check the HubSpot developer changelog for the deprecation timeline. Right now as shared /v4/ endpoints would work till March 2027

CRM Object Schemas

  • GET https://api.hubapi.com/crm-object-schemas/v3/schemas : Get All CRM Object Schemas
  • DELETE https://api.hubapi.com/crm-object-schemas/v3/schemas/ : Delete a Schema
  • PATCH https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType} : Update Object Schema
  • POST https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}/associations : Create an Association Between Object Types
  • DELETE https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier} : Remove an Association from a Schema
  • DELETE https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}/purge : Delete CRM Object Schema

Exports

  • POST https://api.hubapi.com/crm/v3/exports/export/async : Start an Export of CRM Data
  • GET https://api.hubapi.com/crm/v3/exports/export/async/tasks/{taskId}/status : Get Export Task Status

Calling Extensions

  • POST https://api.hubapi.com/crm/v3/extensions/calling/recordings/ready : Mark Recording as Ready for Transcription
  • POST https://api.hubapi.com/crm/v3/extensions/calling/{appId}/settings : Configure a Calling Extension
  • PATCH https://api.hubapi.com/crm/v3/extensions/calling/{appId}/settings/recording : Update Calling App's Recording Settings

Cards

  • GET https://api.hubapi.com/crm/v3/extensions/cards-dev/sample-response : Get Sample Card Detail Response
  • GET https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId} : Get All Cards for a Given App
  • DELETE https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}/{cardId} : Delete Card Definition

Video Conferencing

  • DELETE https://api.hubapi.com/crm/v3/extensions/videoconferencing/settings/{appId} : Delete Video Conference Application Settings

Lists

  • POST https://api.hubapi.com/crm/v3/lists/ : Create List
  • GET https://api.hubapi.com/crm/v3/lists/folders : Retrieve Folder with Child Nodes
  • PUT https://api.hubapi.com/crm/v3/lists/folders/move-list : Move List to Folder
  • DELETE https://api.hubapi.com/crm/v3/lists/folders/{folderId} : Delete CRM Folder
  • PUT https://api.hubapi.com/crm/v3/lists/folders/{folderId}/move/{newParentFolderId} : Move a Folder in CRM
  • PUT https://api.hubapi.com/crm/v3/lists/folders/{folderId}/rename : Rename a Folder in CRM
  • GET https://api.hubapi.com/crm/v3/lists/idmapping : Translate Legacy List Id to Modern List Id
  • GET https://api.hubapi.com/crm/v3/lists/object-type-id/{objectTypeId}/name/{listName} : Fetch List by Name
  • GET https://api.hubapi.com/crm/v3/lists/records/{objectTypeId}/{recordId}/memberships : Get Lists Record is Member Of
  • POST https://api.hubapi.com/crm/v3/lists/search : Search Lists by Name or Page Through All Lists
  • GET https://api.hubapi.com/crm/v3/lists/{listId} : Fetch List by ID
  • DELETE https://api.hubapi.com/crm/v3/lists/{listId}/memberships : Delete All Records from a List
  • PUT https://api.hubapi.com/crm/v3/lists/{listId}/memberships/add : Add Records to a List
  • PUT https://api.hubapi.com/crm/v3/lists/{listId}/memberships/add-and-remove : Add and/or Remove Records from a List
  • PUT https://api.hubapi.com/crm/v3/lists/{listId}/memberships/add-from/{sourceListId} : Add All Records from a Source List to a Destination List
  • GET https://api.hubapi.com/crm/v3/lists/{listId}/memberships/join-order : Fetch List Memberships Ordered by Added to List Date
  • PUT https://api.hubapi.com/crm/v3/lists/{listId}/memberships/remove : Remove Records from a List
  • PUT https://api.hubapi.com/crm/v3/lists/{listId}/restore : Restore a Deleted List
  • PUT https://api.hubapi.com/crm/v3/lists/{listId}/update-list-filters : Update List Filter Definition
  • PUT https://api.hubapi.com/crm/v3/lists/{listId}/update-list-name : Update List Name

CRM Objects

  • GET https://api.hubapi.com/crm/v3/objects/calls : Read a Page of Calls
  • POST https://api.hubapi.com/crm/v3/objects/calls/batch/archive : Archive a Batch of Calls by ID
  • POST https://api.hubapi.com/crm/v3/objects/calls/batch/create : Create a Batch of Calls
  • POST https://api.hubapi.com/crm/v3/objects/calls/batch/read : Read a Batch of Calls by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/calls/batch/update : Update a Batch of Calls by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/calls/batch/upsert : Create or Update a Batch of Calls by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/calls/search : Search Calls in CRM
  • PATCH https://api.hubapi.com/crm/v3/objects/calls/{callId} : Partial Update of CRM Call Object
  • GET https://api.hubapi.com/crm/v3/objects/carts : Read a Page of Carts
  • POST https://api.hubapi.com/crm/v3/objects/carts/batch/archive : Archive a Batch of Carts by ID
  • POST https://api.hubapi.com/crm/v3/objects/carts/batch/create : Create a Batch of Carts
  • POST https://api.hubapi.com/crm/v3/objects/carts/batch/read : Read a Batch of Carts by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/carts/batch/update : Update a Batch of Carts by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/carts/batch/upsert : Create or Update a Batch of Carts by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/carts/search : Search Carts in CRM
  • DELETE https://api.hubapi.com/crm/v3/objects/carts/{cartId} : Delete Cart Object
  • GET https://api.hubapi.com/crm/v3/objects/commerce_payments : List Commerce Payments
  • POST https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/read : Read a Batch of Commerce Payments by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/commerce_payments/search : Search Commerce Payments
  • GET https://api.hubapi.com/crm/v3/objects/commerce_payments/{commercePaymentId} : Get Commerce Payment Details
  • POST https://api.hubapi.com/crm/v3/objects/communications : Create a Communication
  • POST https://api.hubapi.com/crm/v3/objects/communications/batch/archive : Archive a Batch of Communications by ID
  • POST https://api.hubapi.com/crm/v3/objects/communications/batch/create : Create a Batch of Communications
  • POST https://api.hubapi.com/crm/v3/objects/communications/batch/read : Read a Batch of Communications by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/communications/batch/update : Update a Batch of Communications by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/communications/batch/upsert : Create or Update a Batch of Communications by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/communications/search : Search Communications in CRM
  • PATCH https://api.hubapi.com/crm/v3/objects/communications/{communicationId} : Partial Update of Communication Object
  • POST https://api.hubapi.com/crm/v3/objects/companies : Create a Company
  • POST https://api.hubapi.com/crm/v3/objects/companies/batch/archive : Archive a Batch of Companies by ID
  • POST https://api.hubapi.com/crm/v3/objects/companies/batch/create : Create a Batch of Companies
  • POST https://api.hubapi.com/crm/v3/objects/companies/batch/read : Read a Batch of Companies by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/companies/batch/update : Update a Batch of Companies by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/companies/batch/upsert : Create or Update a Batch of Companies by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/companies/merge : Merge Two Companies with Same Type
  • POST https://api.hubapi.com/crm/v3/objects/companies/search : Search Companies in CRM
  • DELETE https://api.hubapi.com/crm/v3/objects/companies/{companyId} : Delete a Company Object
  • POST https://api.hubapi.com/crm/v3/objects/contacts : Create a Contact in HubSpot CRM
  • POST https://api.hubapi.com/crm/v3/objects/contacts/batch/archive : Archive a Batch of Contacts by ID
  • POST https://api.hubapi.com/crm/v3/objects/contacts/batch/create : Create a Batch of Contacts
  • POST https://api.hubapi.com/crm/v3/objects/contacts/batch/read : Read a Batch of Contacts by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/contacts/batch/update : Update a Batch of Contacts by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/contacts/batch/upsert : Create or Update a Batch of Contacts by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/contacts/gdpr-delete : GDPR Delete Contact
  • POST https://api.hubapi.com/crm/v3/objects/contacts/merge : Merge Two Contacts with Same Type
  • POST https://api.hubapi.com/crm/v3/objects/contacts/search : Search Contacts in CRM
  • DELETE https://api.hubapi.com/crm/v3/objects/contacts/{contactId} : Delete Contact by ID
  • GET https://api.hubapi.com/crm/v3/objects/deals : Read a Page of Deals
  • POST https://api.hubapi.com/crm/v3/objects/deals/batch/archive : Archive a Batch of Deals by ID
  • POST https://api.hubapi.com/crm/v3/objects/deals/batch/create : Create a Batch of Deals
  • POST https://api.hubapi.com/crm/v3/objects/deals/batch/read : Read a Batch of Deals by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/deals/batch/update : Update a Batch of Deals by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/deals/batch/upsert : Create or Update a Batch of Deals by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/deals/merge : Merge Two Deals with Same Type
  • POST https://api.hubapi.com/crm/v3/objects/deals/search : Search Deals in CRM
  • POST https://api.hubapi.com/crm/v3/objects/deals/splits/batch/read : Read a Batch of Deal Split Objects by Deal Object Internal ID
  • POST https://api.hubapi.com/crm/v3/objects/deals/splits/batch/upsert : Create or Replace Deal Splits for Deals
  • DELETE https://api.hubapi.com/crm/v3/objects/deals/{dealId} : Delete a Deal Object
  • POST https://api.hubapi.com/crm/v3/objects/discounts : Create a Discount
  • POST https://api.hubapi.com/crm/v3/objects/discounts/batch/archive : Archive a Batch of Discounts by ID
  • POST https://api.hubapi.com/crm/v3/objects/discounts/batch/create : Create a Batch of Discounts
  • POST https://api.hubapi.com/crm/v3/objects/discounts/batch/read : Read a Batch of Discounts by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/discounts/batch/update : Update a Batch of Discounts by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/discounts/batch/upsert : Create or Update a Batch of Discounts by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/discounts/search : Search Discounts in CRM
  • PATCH https://api.hubapi.com/crm/v3/objects/discounts/{discountId} : Partial Update of Discount Object
  • GET https://api.hubapi.com/crm/v3/objects/emails : Read a Page of Emails
  • POST https://api.hubapi.com/crm/v3/objects/emails/batch/archive : Archive a Batch of Emails by ID
  • POST https://api.hubapi.com/crm/v3/objects/emails/batch/create : Create a Batch of Emails
  • POST https://api.hubapi.com/crm/v3/objects/emails/batch/read : Read a Batch of Emails by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/emails/batch/update : Update a Batch of Emails by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/emails/batch/upsert : Create or Update a Batch of Emails by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/emails/search : Search Emails in CRM
  • GET https://api.hubapi.com/crm/v3/objects/emails/{emailId} : Get Email Object Details
  • GET https://api.hubapi.com/crm/v3/objects/feedback_submissions : Get Feedback Submissions
  • POST https://api.hubapi.com/crm/v3/objects/feedback_submissions/batch/read : Read a Batch of Feedback Submissions by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/feedback_submissions/search : Search Feedback Submissions
  • GET https://api.hubapi.com/crm/v3/objects/feedback_submissions/{feedbackSubmissionId} : Get Feedback Submission Details
  • POST https://api.hubapi.com/crm/v3/objects/fees : Create a Fee with Given Properties
  • POST https://api.hubapi.com/crm/v3/objects/fees/batch/archive : Archive a Batch of Fees by ID
  • POST https://api.hubapi.com/crm/v3/objects/fees/batch/create : Create a Batch of Fees
  • POST https://api.hubapi.com/crm/v3/objects/fees/batch/read : Read a Batch of Fees by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/fees/batch/update : Update a Batch of Fees by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/fees/batch/upsert : Create or Update a Batch of Fees by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/fees/search : Search Fees in CRM
  • GET https://api.hubapi.com/crm/v3/objects/fees/{feeId} : Get Fee Object Details
  • GET https://api.hubapi.com/crm/v3/objects/goal_targets : Read a Page of Goal Targets
  • POST https://api.hubapi.com/crm/v3/objects/goal_targets/batch/read : Read a Batch of Goal Targets by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/goal_targets/search : Search Goal Targets
  • GET https://api.hubapi.com/crm/v3/objects/goal_targets/{goalTargetId} : Read Goal Target Object
  • GET https://api.hubapi.com/crm/v3/objects/invoices : Read a Page of Invoices
  • POST https://api.hubapi.com/crm/v3/objects/invoices/batch/read : Read a Batch of Invoices by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/invoices/search : Search Invoices in CRM
  • GET https://api.hubapi.com/crm/v3/objects/invoices/{invoiceId} : Get Invoice Details
  • POST https://api.hubapi.com/crm/v3/objects/leads : Create a Lead
  • POST https://api.hubapi.com/crm/v3/objects/leads/batch/archive : Archive a Batch of Leads by ID
  • POST https://api.hubapi.com/crm/v3/objects/leads/batch/create : Create a Batch of Leads
  • POST https://api.hubapi.com/crm/v3/objects/leads/batch/read : Read a Batch of Leads by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/leads/batch/update : Update a Batch of Leads by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/leads/batch/upsert : Create or Update a Batch of Leads by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/leads/search : Search Leads in CRM
  • DELETE https://api.hubapi.com/crm/v3/objects/leads/{leadsId} : Delete Lead Object
  • POST https://api.hubapi.com/crm/v3/objects/line_items : Create Line Item
  • POST https://api.hubapi.com/crm/v3/objects/line_items/batch/archive : Archive a Batch of Line Items by ID
  • POST https://api.hubapi.com/crm/v3/objects/line_items/batch/create : Create a Batch of Line Items
  • POST https://api.hubapi.com/crm/v3/objects/line_items/batch/read : Read a Batch of Line Items by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/line_items/batch/update : Update a Batch of Line Items by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/line_items/batch/upsert : Create or Update a Batch of Line Items by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/line_items/search : Search Line Items in CRM
  • PATCH https://api.hubapi.com/crm/v3/objects/line_items/{lineItemId} : Partial Update of Line Item Object
  • GET https://api.hubapi.com/crm/v3/objects/meetings : Read a Page of Meetings
  • POST https://api.hubapi.com/crm/v3/objects/meetings/batch/archive : Archive a Batch of Meetings by ID
  • POST https://api.hubapi.com/crm/v3/objects/meetings/batch/create : Create a Batch of Meetings
  • POST https://api.hubapi.com/crm/v3/objects/meetings/batch/read : Read a Batch of Meetings by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/meetings/batch/update : Update a Batch of Meetings by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/meetings/batch/upsert : Create or Update a Batch of Meetings by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/meetings/search : Search Meetings in CRM
  • DELETE https://api.hubapi.com/crm/v3/objects/meetings/{meetingId} : Archive Meeting Object
  • POST https://api.hubapi.com/crm/v3/objects/notes : Create a Note in HubSpot CRM
  • POST https://api.hubapi.com/crm/v3/objects/notes/batch/archive : Archive a Batch of Notes by ID
  • POST https://api.hubapi.com/crm/v3/objects/notes/batch/create : Create a Batch of Notes
  • POST https://api.hubapi.com/crm/v3/objects/notes/batch/read : Read a Batch of Notes by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/notes/batch/update : Update a Batch of Notes by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/notes/batch/upsert : Create or Update a Batch of Notes by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/notes/search : Search CRM Notes
  • PATCH https://api.hubapi.com/crm/v3/objects/notes/{noteId} : Partial Update of CRM Note Object
  • GET https://api.hubapi.com/crm/v3/objects/orders : Read a Page of Orders
  • POST https://api.hubapi.com/crm/v3/objects/orders/batch/archive : Archive a Batch of Orders by ID
  • POST https://api.hubapi.com/crm/v3/objects/orders/batch/create : Create a Batch of Orders
  • POST https://api.hubapi.com/crm/v3/objects/orders/batch/read : Read a Batch of Orders by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/orders/batch/update : Update a Batch of Orders by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/orders/batch/upsert : Create or Update a Batch of Orders by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/orders/search : Search Orders in CRM
  • GET https://api.hubapi.com/crm/v3/objects/orders/{orderId} : Read Order Object by ID
  • GET https://api.hubapi.com/crm/v3/objects/postal_mail : Read a Page of Postal Mail
  • POST https://api.hubapi.com/crm/v3/objects/postal_mail/batch/archive : Archive a Batch of Postal Mail by ID
  • POST https://api.hubapi.com/crm/v3/objects/postal_mail/batch/create : Create a Batch of Postal Mail
  • POST https://api.hubapi.com/crm/v3/objects/postal_mail/batch/read : Read a Batch of Postal Mail by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/postal_mail/batch/update : Update a Batch of Postal Mail by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/postal_mail/batch/upsert : Create or Update a Batch of Postal Mail by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/postal_mail/search : Search Postal Mail Objects in CRM
  • DELETE https://api.hubapi.com/crm/v3/objects/postal_mail/{postalMailId} : Delete Postal Mail Object
  • POST https://api.hubapi.com/crm/v3/objects/products : Create a Product
  • POST https://api.hubapi.com/crm/v3/objects/products/batch/archive : Archive a Batch of Products by ID
  • POST https://api.hubapi.com/crm/v3/objects/products/batch/create : Create a Batch of Products
  • POST https://api.hubapi.com/crm/v3/objects/products/batch/read : Read a Batch of Products by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/products/batch/update : Update a Batch of Products by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/products/batch/upsert : Create or Update a Batch of Products by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/products/search : Search Products in CRM
  • GET https://api.hubapi.com/crm/v3/objects/products/{productId} : Get Product Details by Product ID
  • GET https://api.hubapi.com/crm/v3/objects/quotes : Read a Page of Quotes
  • POST https://api.hubapi.com/crm/v3/objects/quotes/batch/archive : Archive a Batch of Quotes by ID
  • POST https://api.hubapi.com/crm/v3/objects/quotes/batch/create : Create a Batch of Quotes
  • POST https://api.hubapi.com/crm/v3/objects/quotes/batch/read : Read a Batch of Quotes by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/quotes/batch/update : Update a Batch of Quotes by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/quotes/batch/upsert : Create or Update a Batch of Quotes by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/quotes/search : Search Quotes in CRM
  • GET https://api.hubapi.com/crm/v3/objects/quotes/{quoteId} : Get Quote Details by Quote ID
  • GET https://api.hubapi.com/crm/v3/objects/subscriptions : Read a Page of Subscriptions
  • POST https://api.hubapi.com/crm/v3/objects/subscriptions/batch/read : Read a Batch of Subscriptions by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/subscriptions/search : Search Subscriptions in CRM
  • GET https://api.hubapi.com/crm/v3/objects/subscriptions/{subscriptionId} : Get Subscription Details
  • GET https://api.hubapi.com/crm/v3/objects/tasks : Read a Page of Tasks
  • POST https://api.hubapi.com/crm/v3/objects/tasks/batch/archive : Archive a Batch of Tasks by ID
  • POST https://api.hubapi.com/crm/v3/objects/tasks/batch/create : Create a Batch of Tasks
  • POST https://api.hubapi.com/crm/v3/objects/tasks/batch/read : Read a Batch of Tasks by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/tasks/batch/update : Update a Batch of Tasks by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/tasks/batch/upsert : Create or Update a Batch of Tasks by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/tasks/search : Search CRM Tasks
  • DELETE https://api.hubapi.com/crm/v3/objects/tasks/{taskId} : Delete Task Object
  • GET https://api.hubapi.com/crm/v3/objects/taxes : Read a Page of Taxes
  • POST https://api.hubapi.com/crm/v3/objects/taxes/batch/archive : Archive a Batch of Taxes by ID
  • POST https://api.hubapi.com/crm/v3/objects/taxes/batch/create : Create a Batch of Taxes
  • POST https://api.hubapi.com/crm/v3/objects/taxes/batch/read : Read a Batch of Taxes by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/taxes/batch/update : Update a Batch of Taxes by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/taxes/batch/upsert : Create or Update a Batch of Taxes by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/taxes/search : Search Taxes in CRM
  • DELETE https://api.hubapi.com/crm/v3/objects/taxes/{taxId} : Delete Tax Object
  • GET https://api.hubapi.com/crm/v3/objects/tickets : Read a Page of Tickets
  • POST https://api.hubapi.com/crm/v3/objects/tickets/batch/archive : Archive a Batch of Tickets by ID
  • POST https://api.hubapi.com/crm/v3/objects/tickets/batch/create : Create a Batch of Tickets
  • POST https://api.hubapi.com/crm/v3/objects/tickets/batch/read : Read a Batch of Tickets by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/tickets/batch/update : Update a Batch of Tickets by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/tickets/batch/upsert : Create or Update a Batch of Tickets by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/tickets/merge : Merge Two Tickets with Same Type
  • POST https://api.hubapi.com/crm/v3/objects/tickets/search : Search CRM Tickets
  • GET https://api.hubapi.com/crm/v3/objects/tickets/{ticketId} : Get Ticket Details by Ticket ID
  • GET https://api.hubapi.com/crm/v3/objects/{objectType} : Read a Page of CRM Objects
  • POST https://api.hubapi.com/crm/v3/objects/{objectType}/batch/archive : Archive a Batch of CRM Objects by ID
  • POST https://api.hubapi.com/crm/v3/objects/{objectType}/batch/create : Create a Batch of CRM Objects
  • POST https://api.hubapi.com/crm/v3/objects/{objectType}/batch/read : Read a Batch of CRM Objects by Internal ID or Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/{objectType}/batch/update : Update a Batch of CRM Objects
  • POST https://api.hubapi.com/crm/v3/objects/{objectType}/batch/upsert : Create or Update a Batch of CRM Objects by Unique Property Values
  • POST https://api.hubapi.com/crm/v3/objects/{objectType}/search : Search CRM Objects
  • PATCH https://api.hubapi.com/crm/v3/objects/{objectType}/{objectId} : Partial Update of CRM Object

CRM Owners

  • GET https://api.hubapi.com/crm/v3/owners/ : Get a Page of CRM Owners
  • GET https://api.hubapi.com/crm/v3/owners/{ownerId} : Read an Owner by Given ID or UserID

Pipelines

  • GET https://api.hubapi.com/crm/v3/pipelines/{objectType} : Retrieve All Pipelines for a Specified Object Type
  • PUT https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId} : Replace a Pipeline
  • GET https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/audit : Get Pipeline Audit
  • GET https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages : Get Pipeline Stages
  • DELETE https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId} : Delete a Pipeline Stage
  • GET https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}/audit : Get Audit of Pipeline Stage Changes

Properties

  • POST https://api.hubapi.com/crm/v3/properties/{objectType} : Create a Property for a Specified Object Type
  • POST https://api.hubapi.com/crm/v3/properties/{objectType}/batch/archive : Archive a Batch of Properties
  • POST https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create : Create a Batch of Properties
  • POST https://api.hubapi.com/crm/v3/properties/{objectType}/batch/read : Read a Batch of Properties
  • GET https://api.hubapi.com/crm/v3/properties/{objectType}/groups : Read All Property Groups for Specified Object Type
  • PATCH https://api.hubapi.com/crm/v3/properties/{objectType}/groups/{groupName} : Update a Property Group
  • DELETE https://api.hubapi.com/crm/v3/properties/{objectType}/{propertyName} : Archive a Property

Associations

  • GET https://api.hubapi.com/crm/v4/associations/definitions/configurations/all : Get All User Configurations
  • GET https://api.hubapi.com/crm/v4/associations/definitions/configurations/{fromObjectType}/{toObjectType} : Get User Configurations on Association Definitions
  • POST https://api.hubapi.com/crm/v4/associations/definitions/configurations/{fromObjectType}/{toObjectType}/batch/create : Batch Create User Configurations Between Two Object Types
  • POST https://api.hubapi.com/crm/v4/associations/definitions/configurations/{fromObjectType}/{toObjectType}/batch/purge : Batch Delete User Configurations Between Two Object Types
  • POST https://api.hubapi.com/crm/v4/associations/definitions/configurations/{fromObjectType}/{toObjectType}/batch/update : Batch Update User Configurations Between Two Object Types
  • POST https://api.hubapi.com/crm/v4/associations/usage/high-usage-report/{userId} : Generate High Usage Report for User
  • POST https://api.hubapi.com/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/associate/default : Create Default Associations
  • POST https://api.hubapi.com/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/labels/archive : Delete Specific Association Labels
  • POST https://api.hubapi.com/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/read : Batch Read Associations for CRM Objects
  • GET https://api.hubapi.com/crm/v4/associations/{fromObjectType}/{toObjectType}/labels : Get Association Types Between Object Types
  • DELETE https://api.hubapi.com/crm/v4/associations/{fromObjectType}/{toObjectType}/labels/{associationTypeId} : Delete Association Definition
  • PUT https://api.hubapi.com/crm/v4/objects/{fromObjectType}/{fromObjectId}/associations/default/{toObjectType}/{toObjectId} : Create Default Association Between Two Object Types
  • GET https://api.hubapi.com/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType} : List All Associations of an Object by Object Type
  • DELETE https://api.hubapi.com/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} : Delete Associations Between Two Records

Timeline Events

  • POST https://api.hubapi.com/integrators/timeline/v3/events : Create a Single Timeline Event
  • POST https://api.hubapi.com/integrators/timeline/v3/events/batch/create : Create Multiple Timeline Events
  • GET https://api.hubapi.com/integrators/timeline/v3/events/{eventTemplateId}/{eventId} : Get Event Details
  • GET https://api.hubapi.com/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/detail : Get Event Detail Template Rendered
  • GET https://api.hubapi.com/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/render : Render Event Template as HTML
  • POST https://api.hubapi.com/integrators/timeline/v3/{appId}/event-templates : Create Event Template for App
  • DELETE https://api.hubapi.com/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId} : Delete Event Template for App
  • POST https://api.hubapi.com/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens : Add Token to Event Template
  • DELETE https://api.hubapi.com/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens/{tokenName} : Remove Token from Event Template

HubSpot API FAQs

What is the HubSpot API?

The HubSpot API is a set of REST APIs that allow developers to read and write data in HubSpot's CRM, Marketing, Sales, and Service Hubs. Knit provides a unified CRM API that normalizes HubSpot's data models alongside Salesforce, Pipedrive, and other CRMs — so teams building multi-CRM integrations write once rather than implementing each CRM's API separately. Through the API you can create and update contacts, companies, deals, and tickets; trigger workflows; send emails; manage pipelines; and subscribe to real-time events via webhooks.

How do I get access to the HubSpot API?

  • The recommended way to access the HubSpot API is via a private app:
    • Go to Settings → Integrations → Private Apps in your HubSpot account
    • Create a private app and configure the OAuth scopes for the CRM objects your integration needs
    • Copy the generated access token and pass it as a Bearer token in your request headers: Authorization: Bearer YOUR_ACCESS_TOKEN
    • For integrations connecting to multiple HubSpot accounts, use a public app with OAuth 2.0 instead
    • Note: the legacy API key method is deprecated — private apps are the current standard
    • Knit handles HubSpot authentication on your behalf, so you connect once and skip the OAuth implementation entirely
  • Source: Private Apps | HubSpot Developers
  • What is the HubSpot API versioning change in 2026?

    • HubSpot introduced date-based API versioning with the 2026-03 release, replacing the previous numeric scheme (v1, v2, v3, v4):
      • New endpoint format: /api-name/2026-03/resource — for example, GET /crm/objects/2026-03/contacts
      • Each date version has an 18-month support window before end-of-life
      • New versions release on a fixed March/September cadence
      • Legacy /crm/v3/ and /crm/v4/ paths continue to work until their end-of-life date — no forced migration yet
      • For new integrations, use the date-versioned endpoints from the start
      • Knit updates its normalization layer when HubSpot releases new versions, so integrations built on Knit don't require code changes
    • Source: 2026-03 API Reference | HubSpot Developers

    How do I authenticate with the HubSpot API?

    • Answer: HubSpot offers multiple authentication methods for its API:some text
      • Private Apps: Generate a personal access token within your HubSpot account. This method is recommended for most integrations.
      • OAuth: Use OAuth 2.0 for applications that require user authorization.
      • API Key: HubSpot is deprecating API keys in favor of private apps. It's advisable to transition to using private apps for authentication.
    • Source: HubSpot API Authentication

    What are HubSpot API rate limits?

      • Answer: HubSpot enforces the following rate limits:
        • Private apps and OAuth apps: 100 requests per 10 seconds (per app per account)
        • Exceeding the limit returns a 429 Too Many Requests response — use the Retry-After header value to back off
        • For bulk operations, use HubSpot's batch API endpoints (batch create, batch update, batch read) to reduce call volume
        • Prefer webhooks over polling for real-time data to avoid unnecessary API calls
        • Knit manages rate limiting automatically when syncing CRM data, queuing and retrying requests within HubSpot's limits
      • Source: Usage Details & Limits | HubSpot Developers

    How can I retrieve all contacts using the HubSpot API?

    • Answer: To retrieve all contacts, use the CRM API's contacts endpoint:some text
      • Send a GET request to /crm/v3/objects/contacts.
      • Use pagination by including the after parameter to navigate through large sets of contacts.
      • You can also specify properties to include in the response using the properties parameter.
    • Source: HubSpot CRM API | Contacts

    Does HubSpot API support webhooks for real-time data updates?

    • Answer: Yes, HubSpot supports webhooks through its app subscriptions feature:
      • Subscribe to create, update, delete, and property change events for contacts, companies, deals, tickets, and other CRM objects
      • HubSpot sends an HTTP POST with a JSON payload to your configured endpoint when the subscribed event fires
      • Webhook subscriptions require a public app — they are not available on private apps
      • Verify incoming webhook payloads using the X-HubSpot-Signature header
      • Knit delivers normalized HubSpot webhook events alongside events from other connected CRMs, so you maintain one webhook listener across all platforms
    • Source: Webhooks | HubSpot Developers

    What is a HubSpot private app?

    • Answer: A HubSpot private app is the current recommended authentication method for single-account integrations, replacing the deprecated API key:
      • Created under Settings → Integrations → Private Apps
      • Generates a long-lived access token scoped to the CRM objects and permissions you select at creation time
      • No redirect URI or OAuth flow required — token is available immediately in the HubSpot UI
      • Available on all HubSpot plans including free
      • For integrations connecting to multiple HubSpot customer accounts, use a public app with OAuth 2.0 instead
      • Knit supports private app token connections for direct integrations, in addition to its standard OAuth flow
    • Source: Private Apps | HubSpot Developers

    Can I create custom objects in HubSpot via the API?

    • Answer: Yes, HubSpot's CRM API allows you to define and manage custom objects. This enables you to tailor HubSpot's data structure to fit your business needs.
    • Source: HubSpot CRM API | Custom Objects

    Get Started with Hubspot API Integration

    For quick and seamless integration with HubSpot API, Knit API offers a convenient solution. It’s AI powered integration platform allows you to build any HubSpot API Integration use case. By integrating with Knit just once, you can integrate with multiple other CRMs, HRIS, Accounting, and other systems in one go with a unified approach. Knit takes care of all the authentication, authorization, and ongoing integration maintenance. This approach not only saves time but also ensures a smooth and reliable connection to HubSpot API.‍

    To sign up for free, click here. To check the pricing, see our pricing page.

    #1 in Ease of Integrations

    Trusted by businesses to streamline and simplify integrations seamlessly with GetKnit.