Skip to content

Open-source NodeJS SDK for querying ZoomInfo data

License

Notifications You must be signed in to change notification settings

CS3-Marketing/zoominfo-node-sdk

Repository files navigation

ZoomInfo

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.

Installation

The easiest way to install zoominfo is using NPM. Run the command below from your project directory to install the library.

npm install zoominfo-node

Then in your code:

TypeScript:

import zoominfo from 'zoominfo-node';

JavaScript:

const zoominfo = require('zoominfo-node').default;

Authentication Methods

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

Username and Password

const zoom = await zoominfo.client({username: '<username>', password: 'password'});

Private Key Infrastructure (PKI)

const zoom = await zoominfo.client({
  username: '<username>',
  clientId: '<clientId>',
  privateKey: '<privateKey>',
});

Refreshing Access Token

await zoom.refreshAccessToken();

Sample Usage

Contact Search

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));

Intent Enrich

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));

API Structure

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.
  • 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.

Rate and Usage Limiting

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.

Error Handling and Troubleshooting

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

Examples & Documentation

For more examples on what you can do with the ZoomInfo Node SDK, see the examples folder or take a look at the documentation.

Contributing

Bug fixes, docs, and library improvements are always welcome. Please refer to our Contributing Guide for detailed information on how you can contribute.

Getting Started

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

Disclaimer

This codebase is not endorsed, affiliated or associated with ZoomInfo Technologies Inc.

About

Open-source NodeJS SDK for querying ZoomInfo data

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages