Skip to main content
HubSpot

Overview

PropertyValue
Slughubspot
AuthOAuth 2.0 + PKCE
API versionv3
SandboxYes
Rate limit100 req/min, 10 req/sec

Supported resources

ResourceListGetCreateUpdateDelete
Contact
Lead
Deal
Meeting
Owner

Connect setup

HubSpot uses OAuth 2.0 with PKCE. You need a Public app created under Legacy apps in the HubSpot developer portal.
1

Create a HubSpot Public app

Go to HubSpot Developer PortalAppsLegacy appsCreate app. Select Public app. Under Auth, copy the Client ID and Client Secret.
2

Add the redirect URL

In your app’s Auth settings, add the following URL to the Redirect URLs list:
http://localhost:5001/api/v1/auth/callback
3

Configure required scopes

Enable the following scopes on your app:
  • crm.objects.contacts.read
  • crm.objects.contacts.write
  • crm.objects.deals.read
  • crm.objects.deals.write
  • crm.objects.leads.read
  • crm.objects.leads.write
  • crm.objects.owners.read
  • crm.objects.companies.read
4

Connect via the widget

When your end user opens the Connect widget, they will enter the Client ID and Client Secret, then be redirected to HubSpot to authorize the connection.

Usage

# List contacts from HubSpot
curl "http://localhost:5001/api/v1/contact?provider=hubspot&endUserId=user-123" \
  -H "Authorization: Bearer sk_live_your_key"

# Create a deal
curl -X POST "http://localhost:5001/api/v1/deal?provider=hubspot&endUserId=user-123" \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Acme Corp", "amount": 5000, "stage": "appointmentscheduled" }'

Notes

  • HubSpot deals and meetings include enriched contact and company associations automatically.
  • Owner names and emails are resolved via a secondary lookup on crm.objects.owners.
  • Use environment: "sandbox" in your connect token to route requests to the HubSpot sandbox account.