Pagination, Batching and Bulk
Pagination, Batching, and Bulk Workloads
Page Description
How to page through search results, batch enrichment requests, and design production workloads within ZoomInfo API limits.
ZoomInfo search and enrichment workflows usually follow a two-step pattern:
- Use Search endpoints to discover matching records.
- Use Enrich endpoints to retrieve full detail for selected records.
This keeps applications efficient and prevents unnecessary credit usage.
Pagination
Search endpoints support pagination via query params supporting a page[number] and page[size]
Request shape:
curl --request POST \
--url 'https://api.zoominfo.com/gtm/data/v1/contacts/search?page[number]=4&page[size]=25' \
--header 'accept: application/vnd.api+json' \
--header 'content-type: application/vnd.api+json' \
--data '
{
"data": {
"attributes": {
"companyName": "ZoomInfo"
},
"type": "ContactSearch"
}
}Response shape:
{
"data": [
{
"attributes": {
"company": {
"id": 344589814,
"name": "ZoomInfo"
},
"contactAccuracyScore": 94,
"directPhoneDoNotCall": false,
"firstName": "Henry",
"jobTitle": "Chief Executive Officer & Board Member",
"lastName": "Schuck",
"lastUpdatedDate": "2024-10-21T14:05:00Z",
"middleName": "L.",
"mobilePhoneDoNotCall": false,
"validDate": "2024-11-14T22:29:00Z"
},
"id": "1260398587",
"type": "Contact"
},
{
"attributes": {
"company": {
"id": 344589814,
"name": "ZoomInfo"
},
"contactAccuracyScore": 95,
"directPhoneDoNotCall": false,
"firstName": "Filip",
"jobTitle": "Chief Technology Officer",
"lastName": "Popovic",
"lastUpdatedDate": "2025-04-04T18:13:00Z",
"mobilePhoneDoNotCall": false,
"validDate": "2024-11-14T22:29:00Z"
},
"id": "4191419698",
"type": "Contact"
},
...
],
"links": {
"first": "/data/v1/contacts/search?page[number]=1&page[size]=25",
"last": "/data/v1/contacts/search?page[number]=121&page[size]=25"
},
"meta": {
"page": {
"number": 4,
"total": 121
},
"totalResults": 3016
}
}Maximum page size: 100.
If you request a page above the maximum, the API returns a validation error.
Batch Enrichment
Use batch enrichment when you already know the records you want to retrieve.
Canonical limit:
| Endpoint | Max records per call | Credit behavior |
|---|---|---|
| Enrich Companies | 25 | 1 bulk credit per new company record |
| Enrich Contacts | 25 | 1 bulk credit per new contact record |
| Account Research | 1 account | AI action credits |
| Contact Research | 1 contact | AI action credits |
Batch Request Example
{
"data": {
"attributes": {
"matchCompanyInput": [
{
"companyId": 344589814
},
{
"companyId": 344589814
}
],
"outputFields": [
"id",
"ticker",
"name",
"website",
"socialMediaUrls",
"revenue",
"numberOfContactsInZoomInfo",
"country",
"continent",
"companyStatus",
"alexaRank",
"hashtags",
"certified",
"employeeRange",
"employeeRange",
"employeeGrowth",
"parentId",
"parentName",
"locationCount",
"foundedYear"
]
},
"type": "CompanyEnrich"
}
}Batch Response Example
{
"data": [
{
"attributes": {
"certified": true,
"companyStatus": "ALIVE",
"continent": "North America",
"country": "United States",
"employeeRange": "1,000 - 5,000",
"foundedYear": "2000",
"locationCount": 18,
"name": "ZoomInfo",
"numberOfContactsInZoomInfo": 4336,
"parentId": 0,
"revenue": 245188088,
"socialMediaUrls": [
{
"followerCount": "128080",
"type": "LINKED_IN",
"url": "http://www.linkedin.com/company/zoominfo"
},
{
"followerCount": "14413",
"type": "TWITTER",
"url": "http://www.twitter.com/zoominfo"
},
{
"type": "FACEBOOK",
"url": "http://www.facebook.com/109325735758217"
}
],
"ticker": "NASDAQ: GTM",
"website": "www.zoominfo.com"
},
"id": "344589814",
"meta": {
"input": {
"companyId": 344589814
},
"matchStatus": "FULL_MATCH"
},
"type": "Company"
},
{
"attributes": {
"certified": true,
"companyStatus": "ALIVE",
"continent": "North America",
"country": "United States",
"employeeRange": "50 -100",
"foundedYear": "2015",
"locationCount": 2,
"name": "Comparably",
"numberOfContactsInZoomInfo": 55,
"parentId": 344589814,
"parentName": "ZoomInfo Technologies LLC",
"revenue": 11615,
"socialMediaUrls": [
{
"followerCount": "19537",
"type": "TWITTER",
"url": "http://www.twitter.com/comparably"
},
{
"followerCount": "14413",
"type": "LINKED_IN",
"url": "http://www.linkedin.com/company/comparably"
},
{
"followerCount": "6436",
"type": "FACEBOOK",
"url": "http://www.facebook.com/comparably"
}
],
"website": "www.comparably.com"
},
"id": "344589814",
"meta": {
"input": {
"companyId": 344589814
},
"matchStatus": "FULL_MATCH"
},
"type": "Company"
}
]
}Production Workload Pattern
For a list-building agent:
- Run a narrow Search Companies query.
- Page through only the result set you need.
- Search Contacts against selected companies.
- Rank contacts before enrichment.
- Enrich only the records needed for activation.
- Cache enriched IDs for the Records Under Management window.
- Log credits consumed and records returned.
Agent Guidance
Agents should avoid enrichment loops. Search results often contain enough data for narrowing and ranking. Enrich only when the user needs export-ready fields such as email, phone, full profile, or detailed company metadata.
Recommended confirmation threshold:
This will enrich 25 contacts and may consume up to 25 bulk data credits if none are already under management. Continue?
Updated 1 day ago