Reference guide

HubSpot API rate limits and 429 errors

A practical reference for teams deciding how quickly an integration can call HubSpot, what a 429 response means, and where queues, backoff, and workflow throttling fit.

Fact-checked against official HubSpot sources · Last verified 17 August 2026

OAuth apps110 requests / 10 seconds / account
Private apps100–190 requests / 10 seconds
Limit responseHTTP 429 · RATE_LIMIT
Operational targetKeep error responses below 5%

Current HubSpot API limits

HubSpot applies burst and, for private apps, daily request limits. The exact allowance depends on the app type, HubSpot subscription, and any purchased API limit increase. CRM Search endpoints have separate limits and are excluded from the general OAuth burst figure.

Use these figures for planning, then confirm the connected account's current allowance in HubSpot's API usage screen before setting production queue rates.

App or account typeBurst limitPublished daily limit
Marketplace OAuth app using the latest limits110 requests per 10 seconds per installed accountNo general daily limit stated on the usage-guidelines page
Private app · Free or Starter100 requests per 10 seconds250,000 requests per day
Private app · Professional190 requests per 10 seconds625,000 in developer guidance; 650,000 in the product catalogue
Private app · Enterprise190 requests per 10 seconds1,000,000 requests per day
Private app with one API limit increase250 requests per 10 seconds1,000,000 requests per day

What a HubSpot 429 error means

HTTP 429 means the caller has crossed a rate limit. HubSpot identifies these responses with the RATE_LIMIT category and may include a policyName such as daily or ten-secondly-rolling. Read the response body and rate-limit headers rather than treating every 429 as the same failure.

A 429 should normally be retried, but not immediately in a tight loop. Honour Retry-After when it is present, pause the affected queue, and resume with exponential backoff plus jitter. Keep idempotency in mind so a retried write cannot create a duplicate or repeat a side effect.

  • Log the endpoint, account, app, policyName, correlation ID, and retry delay.
  • Queue requests per connected HubSpot account; one busy customer should not block every other account.
  • Reserve capacity for interactive or urgent work instead of running continuously at the published ceiling.
  • Alert on a rising 429 rate before the integration enters a long retry backlog.

HubSpot retries and your integration retries are different

HubSpot can retry certain workflow actions. Its error-handling documentation says custom code actions automatically retry 429 and 5xx responses for up to three days, beginning after one minute and reaching a maximum eight-hour gap. HubSpot's webhook workflow action also retries failed requests and honours Retry-After.

Those platform retries protect a HubSpot-triggered action. They do not replace rate limiting in a separate integration that calls the HubSpot API. The calling integration still needs its own per-account queue, backoff, concurrency control, and idempotent writes.

Choose the control based on traffic direction

For external integration → HubSpot API traffic, enforce the limit in the calling client or worker. For HubSpot workflow → external API traffic, place a pacing step before the sensitive workflow action. Daeda Throttle is designed for the second direction.

When several HubSpot workflows call the same provider, their traffic must share one combined queue. Separate delays or separate per-workflow limits can still exceed the provider's account-wide allowance when the workflows release together.

Official sources

Limits and platform behaviour can change. These primary sources were checked on 17 August 2026.

Frequently asked questions

It depends on app and account type. HubSpot's current guidance lists 110 requests per 10 seconds per installed account for Marketplace OAuth apps using the latest limits, while private apps range from 100 to 190 requests per 10 seconds before an API limit increase. CRM Search endpoints have separate limits.