InTouch Hub · Blue Isle Software

ZoomInfo

Enrich and search company and contact data via the ZoomInfo Enterprise (Enrich/Search) API.

zoominfoenrichmentsalesprospecting

ZoomInfo

Enrich and search company and contact data via the ZoomInfo Enterprise API (the data intelligence API at https://api.zoominfo.com).

The tool authenticates with your ZoomInfo API username + password to obtain a JSON Web Token (JWT, valid for one hour), then calls the chosen Enrich or Search endpoint with Authorization: Bearer <jwt>. Standard library only — no third-party Python packages.

Grounded in the official ZoomInfo API docs (https://api-docs.zoominfo.com/) and the ZoomInfo Enterprise API Getting Started guide.

Operations

operation endpoint purpose
enrich_company POST /enrich/company Return the full ZoomInfo profile for a known company. Match on companyId, companyName, and/or companyWebsiteUrl. Costs one credit per matched record.
enrich_person POST /enrich/person Return the full ZoomInfo profile for a known person. Match on personId, emailAddress, or firstName+lastName+companyName. Costs one credit per matched record.
company_search POST /search/company Criteria-based company search (does not consume credits — it shows which records exist). Filter on companyName / companyWebsiteUrl.
contact_search POST /search/person Criteria-based contact search. Filter on emailAddress / companyName.

Typical flow: search first to confirm a record exists and grab its id, then enrich that id to redeem the full record.

Inputs

name required notes
apiKey yes ZoomInfo API username (the user granted API Access).
password yes ZoomInfo API password for that username.
operation yes One of the four operations above.
companyId enrich_company Strongest company match key.
companyName varies Company name (enrich/search, both company and person enrich).
companyWebsiteUrl varies Company domain, e.g. zoominfo.com.
personId enrich_person Strongest person match key.
emailAddress varies Person email (enrich_person / contact_search).
firstName, lastName enrich_person Used with companyName when no id/email.
outputFields optional Comma-separated profile fields to return on enrich (e.g. id,firstName,lastName,email,jobTitle).
rpp, page optional Search paging — records per page (max 25) and page number.

apiKey / credential setup

  1. A ZoomInfo admin enables API access for the user: Admin Portal > User Management > Users > (select user) > enable API Access > Save.
  2. Use that user's username as apiKey and their password as password.
  3. The tool POSTs them to /authenticate; ZoomInfo returns a jwt valid for one hour, which the tool uses for the data call. The authenticate endpoint is limited to 1 request/second; other endpoints allow ~1500 requests/minute.

ZoomInfo also offers PKI (Client ID + private key) authentication for long-running, library-based JWT generation. This tool uses the simpler username/password flow so it works with a single credential pair and no private-key file.

Examples

Enrich a company by domain, asking for specific fields:

operation         = enrich_company
companyWebsiteUrl = zoominfo.com
outputFields      = id,name,website,employeeCount,revenue

Enrich a person by email:

operation    = enrich_person
emailAddress = [email protected]

Search for contacts at a company:

operation   = contact_search
companyName = Acme Corporation
rpp         = 25
page        = 1

Output

On an authentication failure or transport error the tool prints {"error": "..."} and exits non-zero so the calling job step is marked FAILED. Non-2xx responses from the data endpoints are returned (not raised) so you can inspect ZoomInfo's error body in result / status.