HubSpot API limits by plan and app type

See the HubSpot API limits for your account: burst, daily, search and batch caps from HubSpot's docs, beside any tool you look up.

HubSpot: 1 of 76 APIs

  • HubSpotHubSpot API (all public APIs; general limits)Public OAuth apps distributed through the HubSpot Marketplace: 110 requests per 10 seconds for each account that installs the app. This limit excludes the CRM Search API, and the API Limit Increase add-on does not raise it. Private (privately distributed) apps, counted per app: Free and Starter 100 requests per 10 seconds; Professional 190 per 10 seconds; Enterprise 190 per 10 seconds; any tier with the API Limit Increase add-on 250 per 10 seconds. CRM Search API: 5 requests per second per account.
    Daily or monthly allowance
    Private apps share one daily limit per account: Free and Starter 250,000 requests per day; Professional 625,000; Enterprise 1,000,000. Each API Limit Increase adds 1,000,000 per day on top of the base subscription, with a maximum of two increases. The daily limit resets at midnight in the account's time zone. The page gives no daily figure for public OAuth apps.
    Bulk and batch
    Batch endpoints: 100 records per request (for example, batch update contacts). CRM search: up to 200 records per page and 10,000 results per query; a query body can hold up to 3,000 characters, with up to 5 filterGroups of up to 6 filters each and 18 filters in total. Custom event completions batch endpoint: batches of 500.
    Plans with API access
    Every tier. The private-app rate-limit table lists Free, Starter, Professional and Enterprise (any Hub).
    When you hit the limit
    HTTP 429 on every call after the limit is exceeded. The JSON body includes status, message, errorType RATE_LIMIT, correlationId, policyName (DAILY or SECONDLY) and requestId. Error responses should stay under 5% of total daily requests, which Marketplace certification requires.
    Limit headers
    X-HubSpot-RateLimit-Daily, X-HubSpot-RateLimit-Daily-Remaining, X-HubSpot-RateLimit-Interval-Milliseconds, X-HubSpot-RateLimit-Max, X-HubSpot-RateLimit-Remaining (the two Daily headers are not sent on OAuth-authorized requests. X-HubSpot-RateLimit-Secondly and X-HubSpot-RateLimit-Secondly-Remaining are deprecated. Search endpoints send none of these headers.)

    Source: developers.hubspot.com (opens in a new tab), developers.hubspot.com: search the crm (opens in a new tab), developers.hubspot.com: contacts guide (opens in a new tab)

Photo of Utku Zihnioglu

By

ยท CEO & co-founder

Updated Nov 11, 2026

Shorter page: the tool first, the answer in a few lines.

HubSpot API limits come in two layers: a short burst limit and a daily limit, and both depend on how your app is distributed and on the account's subscription tier. A private app gets a burst limit of its own and shares the daily limit with every other private app in the account. A public app installed from the HubSpot Marketplace gets a burst limit in each account that installs it, and HubSpot publishes no daily figure for it.

The numbers above come from HubSpot's API usage guidelines, each with the day we last checked it.

How to read HubSpot's limits

Start with your app type. A private app's limits grow with the tier, and the API Limit Increase add-on raises them again. The add-on never raises a Marketplace app's limit.

Then read search on its own. CRM search has a separate, much lower per-second limit for the whole account and sends no rate-limit headers, so a sync that finds records by search stalls there long before the general limit.

The batch endpoints count one call per batch. A sync that batches its writes spends a fraction of the calls a record-by-record sync spends.

How to stay under the limit

Batch every write you can. Read the records changed since your last run from the list endpoints, and keep search for lookups a person is waiting on.

Slow down before a 429, not after it. When one arrives, wait for the window to pass: retrying at once only spends calls the next window needs.

What to do next

If HubSpot is one end of a pipeline, look up the tool on the other end too and plan around the tighter limit. HubSpot counts a call as a call, while Pipedrive and Zoho CRM charge each endpoint a different weight.

In Oneprofile, HubSpot connects as a source or a destination, and each export can be held to a rate you set in requests per minute. HubSpot's own answer is honoured whatever you set.

HubSpot API limits: questions

Is the HubSpot daily limit per app or per account?

Per account. The burst limit applies to each private app on its own, while the daily limit is shared by every private app in the same HubSpot account, so a second integration eats into the first one's day.

When does the HubSpot daily API limit reset?

At midnight in the time zone set on the HubSpot account, not in UTC. If your team works in another zone, schedule large daily jobs from the account's midnight, not your own.

What does HubSpot return when you hit the limit?

A 429 on every call until the window passes. The body's policyName says whether it was the daily or the per-second limit. HubSpot also asks that error responses stay a small share of a day's requests.

How do I see how much of the HubSpot limit is left?

Read the X-HubSpot-RateLimit headers on each response: the remaining calls in the current window and, for private apps, the daily ones. OAuth requests carry no daily headers, and search responses carry none.

About this article

Photo of Utku Zihnioglu

Utku Zihnioglu

CEO & co-founder

Serial entrepreneur who built infrastructure companies handling billions of requests. Now leads engineering at Oneprofile, which finds the people worth talking to, researches each one, and follows up until they reply.

Drafted with AI from our product docs and code. Utku Zihnioglu answers for what it says.

Sync HubSpot without hitting its limits

Connect HubSpot to Oneprofile and set a per-minute rate for every export.

Free plan: 200 credits a month, 3 integrations, no card

Sync HubSpot without hitting its limits

Connect HubSpot to Oneprofile and set a per-minute rate for every export.

Free plan: 200 credits a month, 3 integrations, no card