specification: API Commons Rate Limits specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/RateLimits provider: ZoomInfo providerId: zoominfo generated: '2026-08-13' method: searched source: https://docs.zoominfo.com/docs/rate-limits.md docs: https://docs.zoominfo.com/docs/rate-limits.md created: '2026-05-04' modified: '2026-08-13' supersedes: >- The 2026-05-04 bulk-sweep scaffold that previously occupied this file. Every value below is now read from ZoomInfo's own published rate-limit documentation (updated 2026-07-24) and the legacy Enterprise API documenter description; nothing here is a default. description: >- Published rate and usage limits for the ZoomInfo GTM API and the legacy Enterprise API, including the response headers an agent must read at runtime and the status code returned on exhaustion. limit_count: 6 algorithm: type: sliding-window-counter note: >- Per-hour and per-day windows use a sliding window counter that carries a decaying contribution from the previous window, so quota does not reset abruptly at a boundary. Per-second is enforced strictly: requests from the previous second count fully against the current second. windows_evaluated_simultaneously: 3 rejected_requests_consume_quota: false limits: - id: gtm-builder surface: ZoomInfo GTM API package: Builder scope: per-account limits: - {window: 1s, limit: 5} - {window: 1h, limit: 10800} - {window: 24h, limit: 129600} - id: gtm-standard surface: ZoomInfo GTM API package: Standard scope: per-account limits: - {window: 1s, limit: 25} - {window: 1h, limit: 54000} - {window: 24h, limit: 648000} - id: gtm-scaling surface: ZoomInfo GTM API package: Scaling scope: per-account limits: - {window: 1s, limit: 35} - {window: 1h, limit: 75600} - {window: 24h, limit: 907200} - id: legacy-authenticate surface: Legacy Enterprise API scope: per-endpoint endpoint: POST /authenticate limits: - {window: 1s, limit: 1} source: https://api-docs.zoominfo.com - id: legacy-standard surface: Legacy Enterprise API scope: per-account applies_to: [Standard APIs, WebSights API, Compliance API] limits: - {window: 1s, limit: 25} - {window: 1m, limit: 1500} source: https://api-docs.zoominfo.com - id: legacy-scaling surface: Legacy Enterprise API scope: per-account applies_to: [Bulk API, Monitoring/Webhooks API] limits: - {window: 1s, limit: 33} - {window: 1m, limit: 2000} source: https://api-docs.zoominfo.com response_headers: always: - {header: X-RateLimit-Limit-Second, description: Configured per-second limit} - {header: X-RateLimit-Remaining-Second, description: Requests remaining in the current second} - {header: X-RateLimit-Limit-Hour, description: Configured per-hour limit} - {header: X-RateLimit-Remaining-Hour, description: Requests remaining in the current hour window} - {header: X-RateLimit-Limit-Day, description: Configured per-day limit} - {header: X-RateLimit-Remaining-Day, description: Requests remaining in the current day window} - {header: X-RateLimit-Limit, description: Per-second limit, deprecated, removal 2027-01-01, replacement X-RateLimit-Limit-Second, deprecated: true} - {header: X-RateLimit-Remaining, description: Remaining in the current second, deprecated, removal 2027-01-01, replacement X-RateLimit-Remaining-Second, deprecated: true} on_429_only: - {header: Retry-After, description: Seconds to wait before retrying} - {header: X-RateLimit-Rejected-Bucket, description: 'Which window caused the rejection: second, hour or day'} - {header: X-RateLimit-Reset, description: Unix epoch seconds at which the breached window resets} sentinel: value: -1 meaning: >- A -1 in any X-RateLimit-Remaining-* header means the quota service was temporarily unavailable. The request was allowed through but quota state is unknown. Not an error condition. exhaustion: status_code: 429 error_code: ZI0004 message: You have exceeded the rate limit for this resource. Please try again later. retry_strategy: second: Short exponential backoff (1-5 seconds) hour: Pause and resume after Retry-After seconds day: Pause and resume after Retry-After seconds note: >- Retry-After may be hundreds or thousands of seconds when an hourly or daily quota is exhausted; a fixed 1-second retry loop will not succeed. usage_quotas: surface: Legacy Enterprise API note: >- In addition to rate limits, the legacy API meters contract-term request, record and unique-ID quotas and reports them on every response except /authenticate and the lookup endpoints. Trackable via the Usage Lookup endpoint. headers: - X-Usage-Record-Limit-Limit - X-Usage-Record-Limit-Remaining - X-Usage-Request-Limit-Limit - X-Usage-Request-Limit-Remaining - X-Usage-Unique-Id-Limit-Limit - X-Usage-Unique-Id-Limit-Remaining - X-Usage-Websights-Api-Record-Limit-Limit - X-Usage-Websights-Api-Record-Limit-Remaining - X-Usage-Websights-Api-Request-Limit-Limit - X-Usage-Websights-Api-Request-Limit-Remaining usage_endpoint_current: GET /data/v1/users/usage (UserInterface_userUsage) usage_endpoint_legacy: GET /lookup/usage limit_increase: process: Contact the ZoomInfo account team or helpmenow@zoominfo.com with your Tenant ID and the desired per-second value. effective_within: 24 hours