---
title: ZoomInfo API Integration on Truto
slug: zoominfo
category: Sales Intelligence
canonical: "https://truto.one/integrations/detail/zoominfo/"
---

# ZoomInfo API Integration on Truto



**Category:** Sales Intelligence  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 18 tools for ZoomInfo that AI agents can call directly.

- **list_all_zoom_info_contacts** — Search ZoomInfo contacts by criteria such as companyName, firstName, lastName or personId, sent in the JSON request body (data). Returns id, type and attributes (company, names, jobTitle, contactAccuracyScore, hasEmail-style hints); no emails or phone numbers. Up to 100 per page; paging stops at page 100.
- **zoom_info_contacts_enrich** — Enrich up to 25 ZoomInfo contacts per request using matchPersonInput (personId or name/company details) and outputFields. Returns: id, type, attributes, meta. NO_MATCH results incur no credit; every enriched record counts against the Record Limit. Required: data.
- **list_all_zoom_info_companies** — Search ZoomInfo companies by criteria such as companyName, metroRegion or industryCodes, sent in the JSON request body (data). Returns id, type and attributes with basic info only; use companies.enrich for full details. Up to 100 per page; paging stops at page 100.
- **zoom_info_companies_enrich** — Enrich up to 25 ZoomInfo company records per call, matching on companyId, companyWebsite, or other company attributes (ipAddress must be the sole input for a record). Returns per record: id, type, meta.matchStatus, and attributes carrying the requested outputFields such as name, website, revenue, and socialMediaUrls. Required: data.
- **list_all_zoom_info_lookup_values** — List the allowed values of one ZoomInfo lookup field, such as countries, industries or management levels. Returns: id, type, attributes. Required: field_name. Omitting field_name sends an invalid path and ZoomInfo returns an error.
- **list_all_zoom_info_search_fields** — List the ZoomInfo search fields available for an entity, filtered by entity and field type, with whether the account has access to each. Returns: id, type, attributes. Required: filter (filter[entity], filter[fieldType]).
- **list_all_zoom_info_enrich_fields** — List ZoomInfo enrich input or output fields for an entity, with whether the account has access to each. Returns: id, type, attributes. Required: filter (filter[entity], filter[fieldType]).
- **list_all_zoom_info_usage_limits** — Get the current user's ZoomInfo API usage and limits. Returns: id, type, attributes. Takes no parameters.
- **list_all_zoom_info_intents** — Search ZoomInfo Intent Signals across all companies that match the given search criteria. Returns: id, type, attributes. Required: data containing attributes.topics (1–50 intent topics per request). Needs api:data:intent enabled on the ZoomInfo OAuth app and in the package, else 403 (ZI0002/ZI0003). Intent SKU required. No credits consumed; each Intent Signal returned counts as a Record and a successful response counts as a Request credit.
- **zoom_info_intents_enrich** — Fetch Intent Signals for a single company in ZoomInfo, enriching it with buyer intent data. Returns intent records with type, id, and attributes including topic, signalScore, audienceStrength, signalDate, and recommendedContacts. Required: data. In data.attributes send topics (1-50) and at least one company identifier (companyId, companyName or companyWebsite). Needs api:data:intent enabled on the ZoomInfo OAuth app and in the package, else 403 (ZI0002/ZI0003). Intent SKU required. Charges a single credit for the enriched company (no credit if it is already under management); each Intent Signal returned counts as a Record, and each successful response counts as a Request. Results are paged (page.number, page.size); Truto does not auto-paginate enrich calls and returns only the data array. Request the next page.number until a page returns fewer than page.size records (REST /proxy callers can also add truto_response_format=raw to read meta.page.total, the total page count).
- **list_all_zoom_info_news** — Search ZoomInfo news articles by criteria such as categories and a publish-date range. Returns: id, type, attributes. At least one search criterion must be set. Required: data (with type and search attributes). Needs api:data:news enabled on the ZoomInfo OAuth app and in the package, else 403 (ZI0002/ZI0003). No credits consumed; each news article returned counts towards the Record Limit.
- **zoom_info_news_enrich** — Enrich a specified ZoomInfo company with relevant news articles. Returns news article records with id, type, and attributes including title, url, pageDate, and categories. Required: data. In data.attributes send companyId (ZoomInfo's text also names companyName and companyWebsite, but its request schema declares only companyId). Needs api:data:news enabled on the ZoomInfo OAuth app and in the package, else 403 (ZI0002/ZI0003). A credit is counted for the enriched company (not per article); each article returned counts towards the Record Limit. Results are paged (page.number, page.size); Truto does not auto-paginate enrich calls and returns only the data array. Request the next page.number until a page returns fewer than page.size records (REST /proxy callers can also add truto_response_format=raw to read meta.page.total, the total page count).
- **list_all_zoom_info_scoops** — Search ZoomInfo Scoops across all companies by criteria like scoopType, publishedStartDate, and updatedSinceCreation. Returns Scoop records (type, id, attributes) with company, description, originalPublishedDate, publishedDate, types, topics. Required: data (search criteria go in data.attributes). Sort defaults to -originalPublishedDate. Needs api:data:scoops enabled on the ZoomInfo OAuth app and in the package, else 403 (ZI0002/ZI0003). No credits consumed; each Scoop returned counts towards the Record Limit.
- **zoom_info_scoops_enrich** — Enrich a ZoomInfo company with relevant Scoops (news items). Returns Scoop records with type, id, and attributes including company, description, and published dates. Required: data. In data.attributes send one company identifier (companyId, companyName or companyWebsite). Needs api:data:scoops enabled on the ZoomInfo OAuth app and in the package, else 403 (ZI0002/ZI0003). A credit is counted for the enriched company (not per Scoop); each Scoop returned counts towards the Record Limit. Results are paged (page.number, page.size); Truto does not auto-paginate enrich calls and returns only the data array. Request the next page.number until a page returns fewer than page.size records (REST /proxy callers can also add truto_response_format=raw to read meta.page.total, the total page count).
- **zoom_info_corporate_hierarchies_enrich** — Enrich the corporate hierarchy of up to 25 ZoomInfo companies per request; the data envelope carries matchCompanyInput and outputFields (type CorporateHierarchyEnrich). Returns records with id, type, attributes (companyId, familyTree), meta (matchStatus, input); NoMatch when nothing matches. Required: data. Needs OAuth scope api:data:company. Each record returned charges a credit unless already under management; NoMatch or error responses are not charged.
- **zoom_info_org_charts_enrich** — Enrich a ZoomInfo company's org chart and return its contacts organized by department and seniority tier. Returns the org chart records including id, title, department, orgChartTier, and companyName. Required: data. In data.attributes send companyId and department (ZoomInfo requires at least one department). Needs OAuth scope api:data:contact. A credit is counted for the enriched company, when applicable. Counts one Record per successful request, regardless of how many contacts are returned. Results are paged (page.number, page.size); Truto does not auto-paginate enrich calls and returns only the data array. Request the next page.number until a page returns fewer than page.size records (REST /proxy callers can also add truto_response_format=raw to read meta.page.total, the total page count).
- **zoom_info_company_technologies_enrich** — Enrich Technologies for a matched ZoomInfo company, returning the list of technologies that company uses, identified from company websites, job postings, and data partnerships. Returns: id, type, attributes. Required: data (data.type and data.attributes). companyId in data.attributes is the only input, one company per request. Needs OAuth scope api:data:company. Charges a single credit for the enriched company.
- **zoom_info_company_hashtags_enrich** — Enrich a ZoomInfo company with its hashtags: predefined categorical labels that classify companies for filtering and segmentation. Returns matching hashtag records with id, type, and attributes (label, group, description, parentCategory, priority). Required: data (data.type and data.attributes). companyId in data.attributes is the only input, one company per request. Needs OAuth scope api:data:company. Charges a single credit for the enriched company (no credit if it is already under management).

## How it works

1. **Link your customer's ZoomInfo account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach ZoomInfo.** The Proxy API is a 1-to-1 mapping of the ZoomInfo API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate inbound lead enrichment and routing** — RevOps and lead routing platforms can enrich inbound leads with firmographic, contact, and technographic data from ZoomInfo to score and assign them to the right rep in real time, eliminating manual research and lead leakage.
- **Power signal-based outbound sequences** — Sales engagement platforms can listen to ZoomInfo intent signals and scoops (funding rounds, leadership changes) to automatically trigger targeted outreach the moment a target account enters a buying cycle.
- **Keep CRM and marketing records continuously fresh** — CRM and marketing automation tools can run scheduled jobs against ZoomInfo to refresh job titles, phone numbers, and company revenue, catching role changes and preventing database decay for their customers.
- **Build in-app prospecting experiences** — Sales tools can embed a native 'Find Prospects' workflow that lets users search ZoomInfo contacts and companies, then import them directly into sequences, lists, or campaigns without leaving the product.
- **Enable account-based targeting and org mapping** — ABM and enterprise sales platforms can use corporate hierarchies, org charts, and company hashtags to build precise target account lists and help AEs multithread deals across subsidiaries and departments.

## What you can build

- **Real-time form enrichment** — Call contact and company enrichment the moment a lead submits a form, replacing long form fields with a single email input while capturing full firmographic context.
- **Intent-triggered outreach workflows** — Poll intent topics on a schedule and automatically kick off outbound sequences when target accounts spike on buyer-intent signals above a defined score.
- **Competitive displacement campaigns** — Use technographic enrichment to identify accounts running a specific competitor's software and auto-enroll them into tailored switch campaigns.
- **Scoop-based deal alerts** — Surface funding events, hiring moves, and leadership changes from scoops as in-app notifications or Slack alerts tied to a user's target account list.
- **Enterprise org chart explorer** — Render ZoomInfo org charts and corporate hierarchies inside your app so AEs can map buying committees and navigate parent/subsidiary structures visually.
- **Scheduled CRM data hygiene jobs** — Run nightly bulk enrichment across stale contacts and companies to update titles, direct dials, and revenue, flagging records where the contact has moved on.

## FAQs

### How does authentication to ZoomInfo work through Truto?

Truto handles the ZoomInfo authentication flow and token lifecycle on behalf of your end users, so you don't need to manage credential storage, refresh logic, or per-tenant auth state in your own backend.

### Which ZoomInfo objects can I access via Truto today?

Truto exposes tools for contacts, companies, intents, news, scoops, corporate hierarchies, org charts, company technologies, and company hashtags, along with helper endpoints for lookup values, search fields, enrich fields, and usage limits.

### Can I both search for and enrich records?

Yes. List endpoints (e.g. list_all_zoom_info_contacts, list_all_zoom_info_companies, list_all_zoom_info_intents) let you search and discover records, while the matching enrich endpoints return full detailed profiles for a given identifier.

### How do I stay within ZoomInfo's API usage limits?

Truto exposes list_all_zoom_info_usage_limits so your application can programmatically check remaining quota per customer and throttle or queue enrichment jobs accordingly before hitting hard limits.

### How do I know which fields are available for search and enrichment?

Use list_all_zoom_info_search_fields and list_all_zoom_info_enrich_fields to dynamically discover supported fields, and list_all_zoom_info_lookup_values to fetch valid picklist values — useful for building dynamic filter UIs that stay in sync with ZoomInfo's schema.

### How fresh is the data returned from ZoomInfo?

Truto calls ZoomInfo's APIs in real time, so every enrich or list request returns the latest data ZoomInfo has on file — there's no intermediate cache sitting between your app and the source.

### Does my end user need their own ZoomInfo subscription?

Yes. ZoomInfo access is licensed per customer, so each of your end users connects their own ZoomInfo account through Truto's auth flow, and API usage is billed against their contract.
