For Agents
Create, read, and remove associations between any pair of HubSpot CRM objects, including labelled and default associations. Useful for agents wiring records together as part of CRM automation.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the CRM Associations, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with CRM Associations API.
Create a single association between two CRM objects
Create or remove associations in batches across object pairs
List all associated records of one object type from another
Apply or archive specific association labels in batch
GET STARTED
Use for: Associate a HubSpot contact with a deal, Find all deals associated with a given company, Batch-create associations between contacts and a marketing list of deals, Remove a specific association label between two CRM objects
Not supported: Does not define new association types, mutate the underlying CRM records, or manage CRM properties — use for creating and removing links between existing CRM records only.
The HubSpot CRM Associations v4 API manages links between CRM objects — for example connecting a contact to a deal, a deal to a company, or any object pair allowed by the portal's association schema. It supports single and batch create, read, archive, and label operations, plus default association shortcuts and a high-usage report endpoint. This is the right surface for any workflow that mutates or reads relationships between standard or custom CRM objects.
Create a default association without specifying a label
Run a high-usage report against association quotas for a user
Archive an association by object IDs
Patterns agents use CRM Associations API for, with concrete tasks.
★ Wiring Imported Records Together
After importing contacts, deals, and companies in bulk, run a batch association pass to connect each deal to its primary contact and parent company. The v4 batch create endpoint accepts pairs of object IDs across a from-type and to-type, suitable for high-volume migration workflows.
POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/create with deal-to-company pairs after a migration import completes.
Relationship Audit
Audit which contacts are associated with which deals to surface stale or missing associations. The v4 batch read endpoint returns associations for a list of source IDs in one call, suitable for pulling associations into a data warehouse for analysis.
POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/read with a list of deal IDs and toObjectType=contact.
Custom Label Maintenance
Apply specific association labels — for example `Primary Contact` or `Decision Maker` — across many record pairs at once, and remove them as relationships change. The v4 API has dedicated batch endpoints for label create and label archive on top of the basic association.
POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/labels/archive with object pairs whose labels should be removed.
Agent-Driven Relationship Mutations
Let an AI ops agent maintain HubSpot associations as part of a wider CRM hygiene workflow through Jentic. The agent invokes association operations by intent without writing HubSpot client code, and the credential never enters the agent's reasoning context.
Use Jentic search 'associate a HubSpot contact with a deal', load the PUT /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} schema, and execute with the contact and deal IDs.
10 endpoints — the hubspot crm associations v4 api manages links between crm objects — for example connecting a contact to a deal, a deal to a company, or any object pair allowed by the portal's association schema.
METHOD
PATH
DESCRIPTION
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}
Create an association between two records
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}
Delete an association
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}
List associations from one object to a target type
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/create
Batch create associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/read
Batch read associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/archive
Batch archive associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/labels/archive
Batch remove specific labels
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}
Create an association between two records
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}
Delete an association
/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}
List associations from one object to a target type
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/create
Batch create associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/read
Batch read associations
Three things that make agents converge on Jentic-routed access.
Credential isolation
HubSpot OAuth and private app tokens for the Associations API are stored encrypted in the Jentic vault. The agent receives only a scoped execution token; the raw HubSpot credential never enters its prompt context.
Intent-based discovery
Agents search Jentic with intents like 'associate a contact with a deal' or 'list deals on a company' and Jentic returns the right v4 association operation with its input schema, ready to call.
Time to first call
Direct integration including OAuth and v4 association nuances typically takes 1-2 days. Through Jentic: under 30 minutes.
Alternatives and complements available in the Jentic catalogue.
Specific to using CRM Associations API through Jentic.
What authentication does the HubSpot CRM Associations API use?
OAuth 2.0 authorization code flow or a private app token in either the `private-app` or `private-app-legacy` header. Through Jentic the credential is held encrypted in the vault and the agent only ever receives a scoped execution token.
Can I associate a contact with a deal in one call?
Yes. PUT /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} creates an association in a single request, and the v4 batch create endpoint covers higher-volume scenarios.
What are the rate limits for the Associations API?
Standard HubSpot CRM API limits apply — about 100 requests per 10 seconds per OAuth app and daily caps on most paid tiers. Use the v4 batch endpoints to keep request volume low when wiring large datasets together.
How do I batch-link records through Jentic?
Search Jentic for `batch associate HubSpot records`, load the schema for POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/create, and execute with the object pair list. Install with `pip install jentic` and authenticate using `JENTIC_AGENT_API_KEY`.
Does this API expose association labels as well as raw links?
Yes. The v4 API has dedicated label endpoints — POST /crm/v4/associations/{fromObjectType}/{toObjectType}/batch/labels/archive and the batch label create endpoint — plus default-association helpers at PUT /crm/v4/objects/.../associations/default/.
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/archive
Batch archive associations
/crm/v4/associations/{fromObjectType}/{toObjectType}/batch/labels/archive
Batch remove specific labels