### ZoomInfo API Overview Source: https://api-docs.zoominfo.com/index This section provides an overview of the ZoomInfo API, detailing its structure, available APIs (Enterprise, WebSights, Compliance), and the purpose of each. It highlights how the API can be used to integrate ZoomInfo's B2B data into various systems. ```APIDOC ZoomInfo API: Purpose: Integrate ZoomInfo's B2B data (companies, contacts, etc.) into CRM, MA, and other systems. Data Format: Responses are returned in JSON. API Categories: Enterprise API: - Search API: Retrieves lists of Contacts, Companies, Scoops, News, and Intent records based on input criteria. - Enrich API: Retrieves full ZoomInfo profile data by matching known contacts or companies. - Lookup API: Provides available inputs and outputs for Search or Enrich requests. - Usage API: Checks current API usage and limits. Scaling APIs: - Webhooks API: Configures webhook subscriptions for automated record updates based on events. - Bulk API: Enables bulk search and retrieval of Company and Contact datasets via asynchronous batch processes. WebSights API: - Identifies anonymous website traffic by resolving IP addresses to company and ISP profiles, and IP Geolocation details. Compliance API: - Endpoints related to data privacy and opt-out compliance for contacts. ``` -------------------------------- ### ZoomInfo API Authentication Source: https://api-docs.zoominfo.com/index Provides information on authenticating with the ZoomInfo API using username and password to obtain a JWT. It also mentions the availability of client libraries for Java, Python, and NodeJS on GitHub. ```APIDOC Authentication Endpoint: Use to manually supply username and password. Returns a JWT valid for one hour. Supported Libraries: - Java - Python - NodeJS Available on GitHub. ``` -------------------------------- ### ZoomInfo API Authentication Libraries Source: https://api-docs.zoominfo.com/index ZoomInfo provides supported Public Key Infrastructure (PKI) authentication libraries for Java, Python, and NodeJS to help generate JSON Web Tokens (JWT) for API access. These libraries facilitate secure authentication by using a Client ID and Private Key pair. ```Java import com.zoominfo.api.auth.AuthClient; // ... String clientId = "YOUR_CLIENT_ID"; String privateKey = "YOUR_PRIVATE_KEY"; AuthClient authClient = new AuthClient(clientId, privateKey); String jwt = authClient.generateToken(); System.out.println("Generated JWT: " + jwt); ``` ```Python from zoominfo_api_auth import AuthClient client_id = "YOUR_CLIENT_ID" private_key = "YOUR_PRIVATE_KEY" auth_client = AuthClient(client_id, private_key) jwt_token = auth_client.generate_token() print(f"Generated JWT: {jwt_token}") ``` ```NodeJS const { AuthClient } = require('zoominfo-api-auth'); const clientId = 'YOUR_CLIENT_ID'; const privateKey = 'YOUR_PRIVATE_KEY'; const authClient = new AuthClient(clientId, privateKey); authClient.generateToken().then(jwtToken => { console.log(`Generated JWT: ${jwtToken}`); }); ``` -------------------------------- ### ZoomInfo API Rate and Usage Limits Source: https://api-docs.zoominfo.com/index Details the rate and usage limits for the ZoomInfo API, including request limits per second, per minute, and overall contract term limits for requests and records. It also covers specific limits for Scaling APIs and WebSights API. ```APIDOC Rate Limits: - Authentication endpoint: 1 request per second. - Standard APIs, WebSights API, Compliance API: 25 requests per second (1500 requests per minute). - Scaling APIs: 33 requests per second (2000 requests per minute). Usage Limits: - Request limits: Overall number of requests within the API contract term. - Record limits: Number of records entitled to retrieve within the API contract term. Tracking Usage: - Usage Lookup endpoint. - Response headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, 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). ``` -------------------------------- ### ZoomInfo API Common Errors Source: https://api-docs.zoominfo.com/index This section details common error codes and messages returned by the ZoomInfo API, along with recommended actions to resolve them. Errors range from bad requests (400) due to missing parameters or malformed JSON, to authentication failures (401), permission issues (403), rate limiting (429), and unexpected server errors (500). Each entry includes the HTTP status code, the error message, and a suggested user action. ```APIDOC Code | Error message | Action ---|---|--- 400 | Exceeded the max limit to enrich new Contacts or Companies | See the rate and usage limiting data in the response header. Refer to "Rate and usage limiting" for details. 400 | Missing outputFields parameter | Some requests (specifically the Enrich API) require at least one `outputfields` parameter to be specified 400 | No roles found for login | Contact your ZoomInfo sales representative. 400 | Page number (page) is not a number | Ensure that the value conforms to the correct data type (integer) 400 | Page number (page) requested is greater than the available results | Input a page number that falls within the results per page (rpp) and total results 400 | Request body has malformed JSON | Check the request JSON for proper syntax 400 | Results per page (rpp) is not a number | Ensure that the value conforms to the correct data type (integer) 400 | Results per page (rpp) is over max allowed value (100) | The number of returned objects exceeds the maximum allowed value of 100 400 | The parameter passed for sortBy is invalid | Results can only be sorted on specific fields. See the endpoint field descriptions for valid sortBy options. 400 | There are invalid fields in your request | Check field names used in the request 400 | There is insufficient information for this request | Check your request syntax and ensure it meets specifications described for the endpoint 400 | Total record pagination is over max allowed value (1000) | The number of returned objects exceeds the maximum allowed value of 100 401 | Authentication failed | Ensure you are using valid credentials or token 403 | There are fields that are not allowed under your subscription | Check your subscription details. Contact your ZoomInfo sales representative. 403 | You do not have access to the enrich endpoint | You are not provisioned to access this endpoint. Contact your ZoomInfo sales representative. 403 | You do not have access to the search endpoint | You are not provisioned to access this endpoint. Contact your ZoomInfo sales representative. 403 | You do not have access to this endpoint | You are not provisioned to access this endpoint. Contact your ZoomInfo sales representative. 403 | You have used up all of your allowed request limit | See the rate and usage limiting data in the response header. Refer to "Rate and usage limiting" for details. 403 | You have used up all of your allowed request limit for WebSights API | See the rate and usage limiting data in the response header. Refer to "Rate and usage limiting" for details. 403 | You have used up all of your allowed record limit | See the rate and usage limiting data in the response header. Refer to "Rate and usage limiting" for details. 403 | You have used up all of your allowed record limit for WebSights API | See the rate and usage limiting data in the response header. Refer to "Rate and usage limiting" for details. 403 | You do not have permission to access the ZoomInfo API | Confirm that your access credentials are valid 429 | You have exceeded your API query rate limit. Please decrease the frequency of your API requests | See the rate and usage limiting data in the response header. Refer to "Rate and usage limiting" for details. 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 | The request could be too large in scope, too long to return, or experiencing a system or network issue. Contact support. 500 | Search failed. Please try again and if this continues to occur, please contact us and reference the error id provided above | The request could be too large in scope, too long to return, or experiencing a system or network issue. Contact support. ``` -------------------------------- ### ZoomInfo API Error Handling Source: https://api-docs.zoominfo.com/index Explains the HTTP status codes returned by the ZoomInfo API for error conditions and success. It covers standard 4xx client errors, 5xx server errors, and 2xx success codes. ```APIDOC HTTP Status Codes: - 2xx: Success codes. - 4xx: Client error codes. - 5xx: Server error codes. ``` -------------------------------- ### ZoomInfo API Unique Request IDs Source: https://api-docs.zoominfo.com/index This section explains the purpose of the `X-Request-Id` header, which is included in every response from the ZoomInfo API. This unique identifier is crucial for troubleshooting specific requests and should be provided to ZoomInfo support when reporting issues. ```APIDOC Unique request IDs To assist with troubleshooting issues with a specific request, a unique ID called `X-Request-Id` is included in the response header of each request. ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.