For Agents
Create, retrieve, update, search, and archive HubSpot CRM Quotes — the proposal documents that hold pricing and line items — including efficient batch operations against /crm/v3/objects/quotes.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Quotes, 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 Quotes API.
Create a new quote tied to a deal with POST /crm/v3/objects/quotes
Retrieve a quote and its custom properties via GET /crm/v3/objects/quotes/{quoteId}
Update quote properties such as expiration date or status with PATCH /crm/v3/objects/quotes/{quoteId}
GET STARTED
Use for: I need to create a HubSpot quote for a $10,000 deal with three line items, Retrieve the quote attached to deal 12345, Search for all draft quotes that expire in the next 7 days, Update the status of a quote to PUBLISHED
Not supported: Does not handle invoice billing, payment collection, or e-signature workflows — use for managing CRM Quote records and their associations only.
The HubSpot CRM Quotes API lets sales teams and integrations programmatically create, read, update, archive, and search Quote records — the documents that capture proposed pricing, terms, and line items presented to a buyer. Each quote is a CRM object that can be associated with deals, contacts, companies, line items, and signatures, and supports custom properties just like other HubSpot CRM objects. The API exposes single-record CRUD, batch create, batch read, batch update, batch upsert, batch archive, and a search endpoint with filtering and sorting.
Search quotes by status, owner, or amount via POST /crm/v3/objects/quotes/search
Create or update many quotes at once with POST /crm/v3/objects/quotes/batch/upsert
Archive a quote that is no longer needed with DELETE /crm/v3/objects/quotes/{quoteId}
Read a batch of quotes in one call using POST /crm/v3/objects/quotes/batch/read
Patterns agents use Quotes API for, with concrete tasks.
★ Automated Quote Generation From Closed-Won Pipeline
When a deal reaches a quote-ready stage in the HubSpot pipeline, an automation creates a Quote record with the right line items, expiration date, terms, and signer fields, then associates it with the deal and primary contact. The Quotes API exposes batch create so quarter-end pushes can generate dozens of quotes in one call. Typical creation time per quote is under a second through the API versus a few minutes per quote in the HubSpot UI.
Call POST /crm/v3/objects/quotes/batch/create with quote inputs containing hs_title, hs_expiration_date, deal association, and line item associations for each closed-won deal.
Quote Status Reporting and Reminders
Sales operations needs visibility into draft, pending, and signed quotes across the team, plus automated nudges for quotes nearing expiration. Using POST /crm/v3/objects/quotes/search with filters on hs_status and hs_expiration_date, an integration produces a daily report and triggers reminder emails for quotes expiring within 3 days. The search endpoint supports paging and sorting, so even pipelines with thousands of quotes can be reviewed efficiently.
Call POST /crm/v3/objects/quotes/search with a filter on hs_status equal to 'PENDING_BUYER_ACTION' and hs_expiration_date within 3 days, then return the matching quote list.
CPQ Sync With External Pricing Engine
Companies that maintain pricing logic in an external CPQ tool need to push the resulting quote into HubSpot so the deal record reflects the proposal. A scheduled job pulls priced quotes from the CPQ system and uses POST /crm/v3/objects/quotes/batch/upsert keyed by an external ID property to create new quotes or update existing ones. This avoids duplicates and keeps HubSpot the system of record for sales-facing quote status.
Call POST /crm/v3/objects/quotes/batch/upsert with idProperty set to an external_quote_id custom property and inputs containing the latest pricing fields for each external quote.
AI Agent Quote Lookup and Update
An AI sales assistant agent answers reps' questions like 'what's the latest quote for Acme?' and updates fields when asked. Through Jentic the agent searches for quote operations, loads the search and patch schemas, and executes a search by associated company, then a PATCH on the returned quoteId to change status or expiration. Jentic stores the OAuth token in its vault so the agent never sees the secret.
Search Jentic for 'find hubspot quote for company', load the search operation, query by associated companyId, then PATCH the returned quoteId to extend hs_expiration_date by 14 days.
11 endpoints — the hubspot crm quotes api lets sales teams and integrations programmatically create, read, update, archive, and search quote records — the documents that capture proposed pricing, terms, and line items presented to a buyer.
METHOD
PATH
DESCRIPTION
/crm/v3/objects/quotes
Create a quote
/crm/v3/objects/quotes/{quoteId}
Read a quote by ID
/crm/v3/objects/quotes/{quoteId}
Update a quote
/crm/v3/objects/quotes/{quoteId}
Archive a quote
/crm/v3/objects/quotes/search
Search quotes with filters and sorting
/crm/v3/objects/quotes/batch/create
Create many quotes in one call
/crm/v3/objects/quotes/batch/upsert
Upsert quotes by unique property values
/crm/v3/objects/quotes
Create a quote
/crm/v3/objects/quotes/{quoteId}
Read a quote by ID
/crm/v3/objects/quotes/{quoteId}
Update a quote
/crm/v3/objects/quotes/{quoteId}
Archive a quote
/crm/v3/objects/quotes/search
Search quotes with filters and sorting
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 scoped execution tokens — the raw secret never enters agent context or logs.
Intent-based discovery
Agents search Jentic with intents like 'create a hubspot quote' and Jentic returns the matching Quotes operations with typed input schemas, so the agent can call the right endpoint without browsing HubSpot's docs.
Time to first call
Direct HubSpot Quotes integration with OAuth, batch handling, and error retries: 2-3 days. Through Jentic: under 30 minutes — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Quotes API through Jentic.
What authentication does the HubSpot Quotes API use?
It supports OAuth 2.0 (recommended for public apps) and HubSpot private app access tokens passed as a Bearer token in the Authorization header. Through Jentic the token is stored encrypted in the vault and injected at execution time so the agent never holds the raw secret.
Can I associate line items with a quote through the Quotes API?
Yes. Quotes are CRM objects that support associations, so you create the line items via the Line Items API and pass association inputs when calling POST /crm/v3/objects/quotes or POST /crm/v3/objects/quotes/batch/create. You can also associate quotes with deals, contacts, and companies in the same call.
What are the rate limits for the HubSpot Quotes API?
HubSpot enforces 100 requests per 10 seconds for OAuth apps and 190 per 10 seconds for private apps on Enterprise tiers, plus daily quotas. Use the batch endpoints (batch/read, batch/create, batch/upsert) to stay well under these limits when working with many quotes.
How do I find a quote attached to a specific deal through Jentic?
Search Jentic for 'find hubspot quote by deal', load the POST /crm/v3/objects/quotes/search operation, and execute it with a filter on associations.deal equal to your dealId. Jentic returns typed quote records you can then PATCH or read.
Can I create a quote and its line items in a single API call?
You create line items separately via the Line Items API, but you can pass their IDs as associations on POST /crm/v3/objects/quotes so they are linked to the quote at creation time. To do everything in one logical step, use a batch flow that creates line items first, then creates the quote with their IDs.
Does archiving a quote with DELETE /crm/v3/objects/quotes/{quoteId} delete it permanently?
No. Archive is a soft delete — the quote is removed from default lists and search results but can be restored within HubSpot's retention window. To permanently remove records you must use HubSpot's GDPR delete process, not the standard archive endpoint.
/crm/v3/objects/quotes/batch/create
Create many quotes in one call
/crm/v3/objects/quotes/batch/upsert
Upsert quotes by unique property values