Skip to main content
CRM and marketing automation API for reading and writing contacts, companies, and deals. Best for workflows that need to sync customer records from other systems, create contacts from form submissions, or pull pipeline data into reports. Unlike Salesforce, HubSpot APIs are self-serve and free-tier-accessible, so they fit lightweight automation without enterprise contracts. 10 example endpoints available through Lava’s AI Gateway. See the HubSpot API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
This is a catch-all provider — any valid URL under https://api.hubapi.com is supported. Any HubSpot API endpoint. Common paths: /crm/v3/objects/contacts, /crm/v3/objects/companies, /crm/v3/objects/deals. Construct URL as https://api.hubapi.com/{path}. See https://developers.hubspot.com/docs/api-reference for full reference. The endpoints below are curated examples.

Endpoints

List contacts. Supports limit, after (pagination cursor), properties, associations.

GET https://api.hubapi.com/crm/v3/objects/contacts?limit=100&properties=email,firstname,lastname — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/contacts?limit=100&properties=email,firstname,lastname', { method: 'GET' });

Retrieve a single contact by ID.

GET https://api.hubapi.com/crm/v3/objects/contacts/{contact_id}?properties=email,firstname,lastname — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/contacts/{contact_id}?properties=email,firstname,lastname', { method: 'GET' });

Create a new contact record.

POST https://api.hubapi.com/crm/v3/objects/contacts — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/contacts', {
  body: {
"properties": {
  "email": "ada@example.com",
  "firstname": "Ada",
  "lastname": "Lovelace"
}
},
});

Update an existing contact. Only properties in the request body are modified.

PATCH https://api.hubapi.com/crm/v3/objects/contacts/{contact_id} — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/contacts/{contact_id}', { method: 'PATCH', body: {"properties":{"lifecyclestage":"customer"}} });

Search contacts with filter groups. Use for email lookups, recent activity, or custom property matching.

POST https://api.hubapi.com/crm/v3/objects/contacts/search — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/contacts/search', {
  body: {
"filterGroups": [
  {
    "filters": [
      {
        "propertyName": "email",
        "operator": "EQ",
        "value": "ada@example.com"
      }
    ]
  }
]
},
});

List companies with pagination and property selection.

GET https://api.hubapi.com/crm/v3/objects/companies?limit=100&properties=name,domain,industry — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/companies?limit=100&properties=name,domain,industry', { method: 'GET' });

List deals in the pipeline.

GET https://api.hubapi.com/crm/v3/objects/deals?limit=100&properties=dealname,amount,dealstage,closedate — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/deals?limit=100&properties=dealname,amount,dealstage,closedate', { method: 'GET' });

Create a new deal in a specified pipeline and stage.

POST https://api.hubapi.com/crm/v3/objects/deals — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/deals', {
  body: {
"properties": {
  "dealname": "Example Deal",
  "amount": "5000",
  "dealstage": "qualifiedtobuy",
  "pipeline": "default"
}
},
});

Archive (soft-delete) a contact by ID. HubSpot retains the record for 90 days in case of recovery.

DELETE https://api.hubapi.com/crm/v3/objects/contacts/{contact_id} — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/contacts/{contact_id}', { method: 'DELETE' });

Create or replace an association between two CRM objects (e.g. contact ↔ company).

PUT https://api.hubapi.com/crm/v3/objects/contacts/{contact_id}/associations/companies/{company_id}/{association_type_id} — Free
const data = await lava.gateway('https://api.hubapi.com/crm/v3/objects/contacts/{contact_id}/associations/companies/{company_id}/{association_type_id}', { method: 'PUT' });

Next Steps

All Providers

Browse all supported AI providers

Forward Proxy

Learn how to construct proxy URLs and authenticate requests