For Agents
Create, update, search, merge, and batch-manage HubSpot deal records to move opportunities through sales pipelines via /crm/v3/objects/deals.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Deals, 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 Deals API.
Create new deals with pipeline, stage, and amount properties via POST /crm/v3/objects/deals
Move deals to a new pipeline stage with PATCH /crm/v3/objects/deals/{dealId}
Search deals by amount, stage, owner, or close date through POST /crm/v3/objects/deals/search
GET STARTED
Use for: I need to create a new deal with $50,000 amount in the Enterprise pipeline, Move a deal to the Closed Won stage and set the close date, Search for all open deals over $10,000 owned by a specific rep, List all deals updated in the last 24 hours for a daily report
Not supported: Does not handle invoicing, payment collection, or commission calculation — use for managing deal records and pipeline stages inside HubSpot CRM only.
The HubSpot Deals API manages the deal records that drive HubSpot sales pipelines, exposing single and batch CRUD plus search across the standard /crm/v3/objects/deals surface. It supports pipeline stage transitions, deal property updates, deal merging, and association lookups so agents can move opportunities through pipelines programmatically. This is the primary API for any AI agent that needs to read, update, or report on revenue-stage data inside HubSpot.
Bulk-import or update up to 100 deals per call with the batch endpoints
Merge two duplicate deal records into one via POST /crm/v3/objects/deals/merge
Archive lost deals with DELETE /crm/v3/objects/deals/{dealId} while keeping audit history
Patterns agents use Deals API for, with concrete tasks.
★ Pipeline Stage Automation
Move deals between pipeline stages automatically when external events occur — for example, when a contract is signed in the e-signature tool, advance the deal to Closed Won and stamp the close date. The PATCH endpoint updates only the specified properties, so other fields like amount and owner remain untouched. Stage transitions trigger HubSpot's downstream workflows.
Patch deal 12345 with dealstage set to closedwon and closedate set to today's ISO timestamp via PATCH /crm/v3/objects/deals/12345.
Sales Forecasting Pull
Pull all open deals matching forecast criteria — typically pipeline equals 'default', dealstage not in closed states, and closedate within the current quarter — to feed a forecasting dashboard. The search endpoint accepts complex filterGroups, sorts by closedate or amount, and returns paginated results so a forecasting job can stream tens of thousands of deals.
Search HubSpot deals where pipeline equals default, dealstage NOT IN [closedwon, closedlost], and closedate is within the current quarter, returning deal id, amount, and owner.
Deduplicate Inbound Deals
Merge duplicate deal records that arrive from multiple inbound sources (web forms, partner referrals, BDR outreach) into a single record so the rep sees one opportunity. The merge endpoint preserves the primary deal's ID and history while consolidating activities and associations from the secondary deal. Use it after a search confirms two deals refer to the same opportunity.
Call POST /crm/v3/objects/deals/merge with primaryObjectId 1001 and objectIdToMerge 1002, then verify the merged deal returns a 200 with the primary ID.
Agent-Driven Deal Creation via Jentic
An AI sales assistant turns a meeting recap into a new HubSpot deal — with amount, stage, contact association, and owner — without the user touching the CRM. Through Jentic the agent searches for the create-deal operation, loads its input schema, and executes it with structured fields parsed from the call notes. Total integration takes under an hour vs. 2-3 days direct.
Use Jentic to search 'create a HubSpot deal', load the POST /crm/v3/objects/deals schema, and execute it with dealname, amount, dealstage, pipeline, and hubspot_owner_id from the parsed meeting recap.
12 endpoints — the hubspot deals api manages the deal records that drive hubspot sales pipelines, exposing single and batch crud plus search across the standard /crm/v3/objects/deals surface.
METHOD
PATH
DESCRIPTION
/crm/v3/objects/deals
List deals with pagination and property selection
/crm/v3/objects/deals
Create a new deal
/crm/v3/objects/deals/{dealId}
Retrieve a deal by ID
/crm/v3/objects/deals/{dealId}
Update specific properties on a deal
/crm/v3/objects/deals/batch/upsert
Batch-upsert deals by external ID
/crm/v3/objects/deals/search
Search deals by property filters
/crm/v3/objects/deals/merge
Merge two duplicate deals
/crm/v3/objects/deals
List deals with pagination and property selection
/crm/v3/objects/deals
Create a new deal
/crm/v3/objects/deals/{dealId}
Retrieve a deal by ID
/crm/v3/objects/deals/{dealId}
Update specific properties on a deal
/crm/v3/objects/deals/batch/upsert
Batch-upsert deals by external ID
Three things that make agents converge on Jentic-routed access.
Credential isolation
HubSpot OAuth tokens and private app keys are stored encrypted in the Jentic vault. Agents receive a scoped execution token — the raw HubSpot credential is injected at call time and never enters the agent's context.
Intent-based discovery
Agents search Jentic by intent (e.g., 'create a HubSpot deal') and Jentic returns the matching /crm/v3/objects/deals operation with its input schema, so the agent calls the right endpoint without parsing HubSpot docs.
Time to first call
Direct HubSpot integration: 2-3 days for OAuth scopes, pipeline stage mapping, and association chaining. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Deals API through Jentic.
What authentication does the HubSpot Deals API use?
The Deals API accepts OAuth 2.0 with the crm.objects.deals.read or .write scopes, plus legacy OAuth and HubSpot private app API keys via the private-app and private-app-legacy headers. Through Jentic the token is held in the MAXsystem vault and injected at execution so it never reaches the agent's context.
Can I move a deal between pipelines with this API?
Yes. Send a PATCH /crm/v3/objects/deals/{dealId} call with both the pipeline and dealstage properties set to a stage that exists in the target pipeline. Updating only dealstage without changing pipeline keeps the deal in its current pipeline.
What are the rate limits for the HubSpot Deals API?
Account-level limits apply — typically 100 requests per 10 seconds for OAuth apps and 190 per 10 seconds for private apps on paid tiers, plus a daily cap. Use POST /crm/v3/objects/deals/batch/upsert for high-volume writes since each batch counts as a single request.
How do I search HubSpot deals through Jentic?
Run jentic.search('search HubSpot deals'), load the schema for POST /crm/v3/objects/deals/search, and execute it with a filterGroups payload (for example, dealstage equals presentationscheduled and amount greater than 10000). Jentic returns results as structured JSON.
Can I merge two duplicate deals via the API?
Yes. POST /crm/v3/objects/deals/merge takes a primaryObjectId (the deal you want to keep) and objectIdToMerge (the duplicate). The merged record retains the primary ID along with consolidated activities and associations from the secondary deal.
Do I need separate calls to associate a deal with a contact?
Yes. The Deals API itself does not create associations. After creating the deal, call the CRM Associations API to link it to the contact, company, or line item — Jentic exposes that as a separate operation you can chain in the same workflow.
/crm/v3/objects/deals/search
Search deals by property filters
/crm/v3/objects/deals/merge
Merge two duplicate deals