The ZoomInfo Node SDK allows developers to interact with the ZoomInfo API. You can use this library to query the ZoomInfo database for relevant companies and contacts and enrich the data records in your Customer Relationship Management (CRM), Marketing Automation (MA), and other systems in your organization.
The easiest way to install zoominfo is using NPM. Run the command below from your project directory to install the library.
npm i git+https://github.com/ptaberg/zoominfo-node
Then in your code:
TypeScript:
import zoominfo from 'zoominfo-node';
JavaScript:
const zoominfo = require('zoominfo-node').default;
This library supports the following Authentication methods.
- Private Key Infrastructure (PKI)
- Username and Password
For both authentication methods a Java Web Token (JWT), that is valid for one hour is returned which is used to access the API
const zoom = await zoominfo.client({username: '<username>', password: 'password'});
const zoom = await zoominfo.client({
username: '<username>',
clientId: '<clientId>',
privateKey: '<privateKey>',
});
await zoom.refreshAccessToken();
Use Contact Search to retrieve contacts using valid query parameters.
await zoom.search.contactSearch
.getContactSearch({companyName: 'ZoomInfo'})
.then((res: IContactSearchResults) => console.log(res))
.catch((err: ZoomInfoException) => console.log(err));
Use this endpoint to enrich intent data for a company based on input values and return the desired output fields in the response.
await zoom.enrich.intentEnrich
.getIntentEnrich({companyId: '344589814'})
.then((res: IIntentEnrichResults) => console.log(res))
.catch((err: ZoomInfoException) => console.log(err));
The ZoomInfo API is a set of HTTPS endpoints you can use to programmatically retrieve and integrate ZoomInfo data into your existing technology stack and workflows. Responses are returned in JSON to support integration with common programming languages and development kits.
- Enterprise API
- The Enterprise API
supports searching for and enriching company and contact records.
- The Search API accepts various input criteria which are used to return Contacts, Companies, Scoops, News and Intent records.
- The Enrich API is used to retrieve ZoomInfo's full profile data by matching to known contacts or companies.
- The Lookup API includes a set of endpoints that return available inputs and outputs for corresponding Search or Enrich requests.
- The Enterprise API
supports searching for and enriching company and contact records.
- WebSights API
- The WebSights API identifies anonymous website traffic by resolving IP addresses to return company and ISP profiles and IP Geolocation details.
- Compliance API
- The Compliance API includes endpoints related to data privacy and opt-out compliance for contacts stored in the ZoomInfo database.
The ZoomInfo API uses rate and usage limiting tied to the account provisioned for API access. Your API account is provisioned with:
- Rate limits: A limit to the number of requests you can make within a given time period.
- For the Authentication endpoint, the limit is 1 request per second.
- For other endpoints, the limit is 1500 requests per minute.
- Request limits: An overall number of requests you can perform within the current API contract term.
- Record limits: The number of records you are entitled to retrieve within the current API contract term.
You can track usage status using the Usage Lookup endpoint.
The API will return standard classes of HTTP error status codes (4xx client and 5xx server codes) as well as 2xx success codes.
Code | Error Message |
---|---|
400 | Exceeded the max limit to enrich new Contacts or Companies |
400 | Missing outputFields parameter |
400 | No roles found for login |
400 | Page number (page) is not a number |
400 | Page number (page) requested is greater than the available results |
400 | Request body has malformed JSON |
400 | Results per page (rpp) is not a number |
400 | Results per page (rpp) is over max allowed value (100) |
400 | The parameter passed for sortBy is invalid |
400 | There are invalid fields in your request |
400 | There is insufficient information for this request |
400 | Total record pagination is over max allowed value (1000) |
401 | Authentication failed |
403 | There are fields that are not allowed under your subscription |
403 | You do not have access to the enrich endpoint |
403 | You do not have access to this endpoint |
403 | You have used up all of your allowed request limit |
403 | You have used up all of your allowed request limit for WebSights API |
403 | You have used up all of your allowed record limit |
403 | You have used up all of your allowed record limit for WebSights API |
403 | You do not have permission to access the ZoomInfo API |
429 | You have exceeded your API query rate limit. Please decrease the frequency of your API requests |
500 | An unexpected error has occurred. Please try again and if this continues to occur, please contact us and reference the error id provided above |
500 | Search failed. Please try again and if this continues to occur, please contact us and reference the error id provided above API |
For more examples on what you can do with the ZoomInfo Node SDK, see the examples folder or take a look at the documentation.
Bug fixes, docs, and library improvements are always welcome. Please refer to our Contributing Guide for detailed information on how you can contribute.
If you want to familiarize yourself with the project, you can start by forking the repository and cloning it in your local development environment. The project requires Node.js to be installed on your machine.
After cloning the repository, install the dependencies by running the following command in the directory of your cloned repository:
npm install
You can run the existing tests to see if everything is okay by executing:
npm test
This codebase is not endorsed, affiliated or associated with ZoomInfo Technologies Inc.