VX Agents

OpenAPI Marketplace · CRM & Sales

HubSpot CRM Deals

v1.0.0 · 6 endpoints · 0 connections · shared by vx.ai

Track the sales pipeline in HubSpot CRM: search deals by stage, owner, amount or close date, read deals with their associated contacts and companies, and create or update deals. Curated from HubSpot's official OpenAPI specification.

Connect this API to an AI agent Browse all specs

What you can do with HubSpot CRM Deals via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
POST /crm/v3/objects/0-3/search searchDeals Search deals by stage, owner, amount, close date or any property
GET /crm/v3/objects/0-3 listDeals List deals page by page
POST /crm/v3/objects/0-3 createDeal Create a deal
GET /crm/v3/objects/0-3/{dealId} getDeal Get one deal with its properties and associations
PATCH /crm/v3/objects/0-3/{dealId} updateDeal Update a deal, e.g. move it to another stage
POST /crm/v3/objects/0-3/batch/read batchReadDeals Get several deals by id at once

Authentication

PrivateAppToken

Bearer token — sent as Authorization: Bearer <token>

HubSpot private app access token sent as Authorization: Bearer <token>.

How to get a credential

  1. In HubSpot, open Settings > Integrations > Private Apps (Super Admin required).
  2. Click Create a private app and name it (e.g. VX Agents).
  3. On the Scopes tab, add crm.objects.deals.read and crm.objects.deals.write.
  4. Click Create app, then copy the access token (starts with pat-).

Permissions used

Scope Operations
crm.objects.deals.read searchDeals, listDeals, getDeal, batchReadDeals
crm.objects.deals.write createDeal, updateDeal

Common errors

  • 401 Unauthorized: the token is wrong, rotated or missing the Bearer prefix. Copy it again from the private app.
  • 403 Forbidden: the private app is missing a scope above (MISSING_SCOPES). Add it and use the updated token.
  • 400 Bad Request: unknown property, or a dealstage that does not belong to the deal's pipeline. Use internal stage ids.
  • 429 Too Many Requests: rate limit hit (per 10 seconds and daily); wait and retry.

Store the token as a VX Agents credential (Bearer token); never paste it into chat.

Usage guide

Setup

  • Add a HubSpot private app token (scopes crm.objects.deals.read and crm.objects.deals.write) as the Bearer credential.
  • Pin the pipeline and stage ids you use (Settings > Objects > Deals > Pipelines; the default pipeline is default, stages have internal ids like appointmentscheduled, closedwon). Pin properties too, e.g. dealname,amount,dealstage,pipeline,closedate,hubspot_owner_id.

Review the pipeline

  1. searchDeals with filterGroups, e.g. open deals closing this month: [{"filters":[{"propertyName":"dealstage","operator":"NOT_IN","values":["closedwon","closedlost"]},{"propertyName":"closedate","operator":"LTE","value":"2026-10-31T23:59:59Z"}]}], plus the properties you need.
  2. getDeal with associations=contacts,companies to see who the deal is with.
  3. batchReadDeals for up to 100 deal ids at once; listDeals to page through everything (limit max 100, after from paging.next.after).

Create or move a deal

  1. Search first so you don't create a duplicate.
  2. Show the user the deal name, amount, stage and close date and get confirmation.
  3. createDeal with properties (dealname, pipeline, dealstage required in practice; amount, closedate, hubspot_owner_id optional). To link a contact, add associations: [{"to":{"id":"<contactId>"},"types":[{"associationCategory":"HUBSPOT_DEFINED","associationTypeId":3}]}] (use 5 for a company).
  4. To move a deal or change its value, confirm, then updateDeal with only the changed properties (e.g. {"dealstage":"closedwon"}).

Good to know

  • Creating or changing deals edits customer data: always confirm createDeal and updateDeal first.
  • Use internal property names and stage ids, not labels. A dealstage must belong to the deal's pipeline.
  • amount is a string number in the account currency; closedate is ISO 8601 or Unix milliseconds.
  • searchDeals returns up to 200 per page and at most 10,000 results; results can lag a few seconds behind writes.
  • Filters in one group are AND, groups are OR.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “HubSpot CRM Deals” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs