---
updatedAt: 2026-08-24T13:16:46.000Z
agentTools:
  projectIndex: https://docs.gtm.ai/llms.txt
---

# Credit Usage and Limits

All ZoomInfo API endpoints are rate-limited at the gateway level.

## Rate Limits

| Tier                  |                  Limit |
| --------------------- | ---------------------: |
| Default               | 25 requests per second |
| Premium Limit Add-On  | 30 requests per second |
| Premium+ Limit Add-On | 35 requests per second |

Rate limits apply per tenant.  Rate-limit headers are not currently returned. Clients should treat 429 responses as retryable and use exponential backoff with jitter.

## Retry Behavior

Retry these responses:

| Status | Retry? | Guidance                                                     |
| ------ | ------ | ------------------------------------------------------------ |
| 429    | Yes    | Back off and retry after the `Retry-After` delay if provided |
| 500    | Yes    | Retry with exponential backoff                               |
| 504    | Yes    | Retry with a smaller request or reduced complexity           |
| 400    | No     | Fix request validation errors                                |
| 401    | No     | Refresh token or re-authenticate                             |
| 403    | No     | Check scopes, entitlements, and package access               |

## Example Retry Logic

```javascript
async function callWithRetry(fn, maxAttempts = 5) {
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
    const response = await fn();

    if (response.ok) return response;

    if (![429, 500, 504].includes(response.status)) {
      throw new Error(`Non-retryable status: ${response.status}`);
    }

    const retryAfter = response.headers.get("Retry-After");
    const delayMs = retryAfter
      ? Number(retryAfter) * 1000
      : Math.min(1000 * 2 ** attempt, 30000);

    await new Promise((resolve) => setTimeout(resolve, delayMs));
  }

  throw new Error("Max retry attempts exceeded");
}
```

## Credits

Customers purchase credits in bulk on an annual basis. Each time a record is enriched for the first time within a rolling 12-month period, one credit is consumed and the record is placed Under Management for one year from the initial enrichment date.

While a record is under management, it can be enriched again without consuming an additional credit. Each enrichment still counts against the customer's record limit.

## Credit Estimate by Operation

| Operation                 | Credit impact                             |
| ------------------------- | ----------------------------------------- |
| Lookup                    | Free                                      |
| Search Companies          | Free                                      |
| Search Contacts           | Free                                      |
| Find Similar Companies    | Free                                      |
| Find Similar Contacts     | Free                                      |
| Find Recommended Contacts | Free                                      |
| Enrich Companies          | 1 bulk data credit per new company record |
| Enrich Contacts           | 1 bulk data credit per new contact record |
| Enrich Intent             | Bulk data credits                         |
| Account Research          | AI action credits                         |
| Contact Research          | AI action credits                         |

## Cost Visibility for Agents

Agents should estimate worst-case credit usage before enrichment:

```text
Worst-case credits = number of records to enrich
Actual credits may be lower if records are already under management.
```

Example agent message:

> I found 80 matching contacts. Search was free. Enriching all 80 may consume up to 80 bulk data credits if none are already under management. I recommend enriching the top 25 first.

# Sibling pages

* [API Conventions](https://docs.gtm.ai/zoominfoenterprise/docs/api-conventions.md)
* [Rate Limits](https://docs.gtm.ai/zoominfoenterprise/docs/rate-limits.md)
* [Pagination, Batching and Bulk](https://docs.gtm.ai/zoominfoenterprise/docs/pagination-batching-and-bulk.md)
* [Status Codes and Errors](https://docs.gtm.ai/zoominfoenterprise/docs/status-codes-and-errors.md)
* [Webhook and Events](https://docs.gtm.ai/zoominfoenterprise/docs/webhook-and-events.md)
* [ZoomInfo OAuth Scopes](https://docs.gtm.ai/zoominfoenterprise/docs/zoominfo-oauth-scopes.md)
* [OpenAPI Specifications](https://docs.gtm.ai/zoominfoenterprise/docs/openapi-specifications.md)