# Zoominfo APIs Documentation > An interactive platform offering comprehensive documentation for all ZoomInfo API endpoints. It features an API testing playground, real-time code examples, and detailed guides on authentication, rate limits, and usage best practices, designed to streamline integration and accelerate development. ## Guides - [Overview](https://docs.zoominfo.com/docs/overview.md) - [Standard App](https://docs.zoominfo.com/docs/standard-app.md) - [Partner App](https://docs.zoominfo.com/docs/partner-app.md) - [Authorization Code Flow (PKCE)](https://docs.zoominfo.com/docs/authorization-code-flow-pkce.md) - [Refresh Tokens Flow](https://docs.zoominfo.com/docs/refresh-tokens-flow.md) - [Client Credentials Flow](https://docs.zoominfo.com/docs/client-credentials-flow.md) - [API Conventions](https://docs.zoominfo.com/docs/api-conventions.md): Shared request, response, pagination, error, and identifier conventions for the ZoomInfo GTM API. - [Rate Limits](https://docs.zoominfo.com/docs/rate-limits.md): Learn how ZoomInfo API rate limits work and how to build integrations that handle them gracefully. - [Pagination, Batching and Bulk](https://docs.zoominfo.com/docs/pagination-batching-and-bulk.md): Pagination, Batching, and Bulk Workloads - [Status Codes and Errors](https://docs.zoominfo.com/docs/status-codes-and-errors.md) - [Webhook and Events](https://docs.zoominfo.com/docs/webhook-and-events.md): Stream ZoomInfo events to build responsive AI agents and automated workflows - [ZoomInfo OAuth Scopes](https://docs.zoominfo.com/docs/zoominfo-oauth-scopes.md): Full list of the OAuth 2.0 scopes that can be used to access different parts of the ZoomInfo API - [OpenAPI Specifications](https://docs.zoominfo.com/docs/openapi-specifications.md) - [Test API Access](https://docs.zoominfo.com/docs/test-api-access.md) - [Connect to ZoomInfo MCP](https://docs.zoominfo.com/docs/connect-to-zoominfo-mcp.md) - [Available MCP Tools](https://docs.zoominfo.com/docs/available-mcp-tools.md) - [ZoomInfo CLI](https://docs.zoominfo.com/docs/zoominfo-cli.md) - [Companies & Contacts](https://docs.zoominfo.com/docs/companies-contacts.md) - [Signals & Insights](https://docs.zoominfo.com/docs/signals-insights.md) - [Audiences](https://docs.zoominfo.com/docs/audiences.md) - [Find contacts using filters](https://docs.zoominfo.com/docs/find-contacts-using-filters.md) ## API Reference - [ZoomInfo API](https://docs.zoominfo.com/reference/api-overview.md) - [Authentication](https://docs.zoominfo.com/reference/oauth-authentication.md) - [OpenAPI Specification](https://docs.zoominfo.com/reference/openapi-specification.md) - [Data API Overview](https://docs.zoominfo.com/reference/data-api-overview.md) - [Search Contacts](https://docs.zoominfo.com/reference/searchinterface_searchcontact.md): Returns a list of Contacts from ZoomInfo's data that meet the specified search criteria. Input parameters may require specific values. You can use the [Lookup Data](ref:lookupinterface_lookup) endpoint to retrieve the list of possible values The Search Contacts API does not return emails, phone numbers, or any other data that can be used to engage with the contacts in your results, but the results do include hints for what data ZoomInfo has for a specific contact. To get the additional data for contacts, including emails or phone numbers, use the [Enrich Contact API](ref:enrichinterface_enrichcontact) With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), this endpoint does not consume any credits nor do contacts returned count towards record limits, but each request will increment against your request limits. - [Search Companies](https://docs.zoominfo.com/reference/searchinterface_searchcompany.md): Returns a list of Companies from ZoomInfo's data that meet the specified search criteria. Input parameters may require specific values. You can use the [Lookup Data](ref:lookupinterface_lookup) endpoint to retrieve the list of possible values The Search Companies API only returns basic information about the company: including name, limited location details, website, and few other basic data points. To get the additional data for companies in your results use the [Enrich Company API](ref:enrichinterface_enrichcompany) With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), this endpoint does not consume any credits nor do copmanies returned count towards record limits, but each request will increment against your request limits. - [Search Intent](https://docs.zoominfo.com/reference/searchinterface_searchintent.md): Returns a list of Intent Signals from ZoomInfo's data that meet the specified search criteria. It is required that every request include at least 1 and up to 50 intent topics in the request. Intent data is online behavior-based activity across the internet that links prospective buyers (companies) to a topic. Intent Signals are the way ZoomInfo tracks intent data and can be used to indicate recent content consumption for a specific topic by employees at a company. Key terminology for Intent Signals includes: * **Topic** - A business subject or technology area mapped to a curated collection of keywords and search terms. When companies research content containing these keywords, it generates intent signals that indicate their buying interest * **Signal Score** - Indicates the level of a company's interest in a topic based on how recent content consumption compares to an historical baseline * **Audience Strength** - Indicates the size of the group at the company that is conducting the research Use Search Intent to find Intent Signals across all ZoomInfo companies. To find Intent Signals for a specific company, use the [Enrich Intent](ref:enrichinterface_enrichintent) endpoint. Input parameters may require specific values. You can use the [Lookup Data](ref:lookupinterface_lookup) endpoint to retrieve the list of possible values. With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), this endpoint does not consume any credits, but each Intent Signal returned in the results is counted as a Record and a successful response will count as a Request credit. - [Search News](https://docs.zoominfo.com/reference/searchinterface_searchnews.md): Returns a list of News articles from ZoomInfo's data that meet the specified search criteria. All inputs are optional, but at least one input must be set to get a successful response. Input parameters may require specific values. You can use the [Lookup Data](ref:lookupinterface_lookup) endpoint to retrieve the list of possible values. Use Search News to find News articles across all ZoomInfo companies, if you want to get News articles for a specific ZoomInfo company, use the [Enrich News](ref:enrichinterface_enrichnews) endpoint. With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), this endpoint does not consume any Credits. Each News article returned in the results does count towards the customer's Record Limit and a successful response will count towards the Request Limit (e.g. for a response that returns 10 news articles, 10 Records will be counted and 1 Request will be counted) - [Search Scoops](https://docs.zoominfo.com/reference/searchinterface_searchscoop.md): Returns a list of Scoops from ZoomInfo's data that meet the specified search criteria. Scoops are real-time business intelligence signals that provide timely insights into significant events and changes occurring at companies. These actionable data points help sales and marketing teams identify opportunities and engage prospects at the right moment. Input parameters may require specific values. You can use the [Lookup Data](ref:lookupinterface_lookup) endpoint to retrieve the list of possible values. Use Search Scoops to find Scoops across all ZoomInfo companies, if you want to get Scoops for a specific ZoomInfo company, use the [Enrich Scoops](ref:enrichinterface_enrichscoop) endpoint. With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), this endpoint does not consume any Credits. Each Scoop returned in the results does count towards the customer's Record Limit and a successful response will count towards the Request Limit (e.g. for a response that returns 10 Scoops, 10 Records will be counted and 1 Request will be counted) - [Enrich Contacts](https://docs.zoominfo.com/reference/enrichinterface_enrichcontact.md): Enrich Contacts can be used to retrieve detailed information about up to 25 individual contact records. Best practice is to first use the [Search Contacts](ref:searchinterface_searchcontact) to identify the records you want to enrich, and then use the Contact IDs as the input to specify the correct records. If your workflow does not support a two stage retrieval using both Search and Enrich endpoints, you can query the Contact Enrich Endpoint with more extensive input information and our system will provide the best match available to the input. The more details you provide the more likely we are to provide the correct match. Once you have indicated which records you want to enrich, you must then select which fields you want to return for the records using the `outputFields` list. For more details about all of the available output fields you can select, please use the [Lookup Enrich](ref:lookupenrichinterface_lookupenrich) endpoint (`filter[entity]=contact` and `filter[fieldType]=output`). This will provide a description of each available field, as well as whether or not your account has access to this field. If you do not have access to a field that you need, please contact your ZoomInfo Account Manager for purchasing options. You can also use the `requiredFields` list to indicate which fields must be available for output in order to return a record. For example, if you include `jobTitle` in `requiredFields` we will not return a contact for which we do not have a job title recorded, even if it is a perfect match for the input criteria you provided. Each record returned by this endpoint will charge a credit from your account, unless that record is already under management (see [Credit Usage and Limits Guide](doc:credit-usage-and-limits) for more details). If we fail to find the record and return “No match” or if we return an error code a credit will not be charged. - [Enrich Companies](https://docs.zoominfo.com/reference/enrichinterface_enrichcompany.md): The Enrich Companies endpoint can be used to retrieve detailed information about up to 25 individual company records. Best practice is to first use [Search Companies](ref:searchinterface_searchcompany) to identify the records you want to enrich, and then use the Company IDs as the input to specify the correct records. If your workflow does not support a two stage retrieval using both Search and Enrich endpoints, you can query the Company Enrich endpoint with more extensive input information and our system will provide the best match available to the input. The more details you provide the more likely we are to provide the correct match. Once you have indicated which records you want to enrich, you must then select which fields you want to return for the records using the `outputFields` list. For more details about all of the available output fields you can select, please use the [Lookup Enrich](ref:lookupenrichinterface_lookupenrich) endpoint (`filter[entity]=company` and `filter[fieldType]=output`). This will provide a description of each available field, as well as whether or not your account has access to this field. If you do not have access to a field that you need, please contact your ZoomInfo Account Manager for purchasing options. Each record returned by this endpoint will charge a credit from your account, unless that record is already under management (see [Credit Usage and Limits Guide](doc:credit-usage-and-limits) for more details). If we fail to find the record and return “No match” or if we return an error code a credit will not be charged. - [Enrich Corporate Hierarchy](https://docs.zoominfo.com/reference/enrichinterface_enrichcorporatehierarchy.md): Enrich the corporate hierarchy structure of up to 25 individual company records. Based on the provided inputs, ZoomInfo will find the Company that best matches in provided inputs and return the full corporate hierarchy structure for the matched Company. Corporate hierarchy structure includes the `familyTree` which starts at the top-level parent company for the matched Company, and lists all Subsidiaries, Acquisitions, Former Names (if a company within the hierarchy has officially changed names previously). The `familyTree` also lists all known Locations for each company within the hierarchy. If no match can be made from the provided input values, then a `NoMatch` record is returned. Additionally, if the company that was matched **IS NOT** the company at the top of the hierarchy structure, the `parentage` can be provided in the response. This lists the all of the parent companies for the matched company all the way to the top-level (ultimate parent) company. The desired `outputFields` must be provided for each request. For more details about all of the available output fields you can select, please use the [Lookup Enrich](ref:lookupenrichinterface_lookupenrich) endpoint (`filter[entity]=corporate-hierarchy` and `filter[fieldType]=output`). This will provide a description of each available field, as well as whether or not your account has access to this field. If you do not have access to a field that you need, please contact your ZoomInfo Account Manager for purchasing options. Each record returned by this endpoint will charge a credit from your account, unless that record is already under management (see [Credit Usage and Limits Guide](doc:credit-usage-and-limits) for more details). If we fail to find the record and return `NoMatch` or if we return an error code a credit will not be charged. - [Enrich Intent](https://docs.zoominfo.com/reference/enrichinterface_enrichintent.md): Fetch Intent Signals for a company, enriching that company's details with relevant buyer intent data. It is required for each request to provide at least one of the parameters identifying the company to enrich (`companyId`, `companyName`, or `companyWebsite`) and at least 1 and up to 50 Intent Topics must be provided in the `topic` parameter. All other parameters are optional. Intent data is online behavior-based activity across the internet that links prospective buyers (companies) to a topic. Intent Signals are the way ZoomInfo tracks intent data and can be used to indicate recent content consumption for a specific topic by employees at a company. Key terminology for Intent Signals includes: * **Topic** - A business subject or technology area mapped to a curated collection of keywords and search terms. When companies research content containing these keywords, it generates intent signals that indicate their buying interest * **Signal Score** - Indicates the level of a company's interest in a topic based on how recent content consumption compares to an historical baseline * **Audience Strength** - Indicates the size of the group at the company that is conducting the research Use Enrich Intent to find Intent Signals for a single company. To search Intent Signals across all of the companies in the ZoomInfo database use [Search Intent](ref:searchinterface_searchintent) Input parameters may require specific values. You can use the [Lookup Data](ref:lookupinterface_lookup) endpoint to retrieve the list of possible values. With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), this endpoint will charge a single credit for the company that is enriched, and each Intent Signal returned in the results is counted as a Record and a successful response will count as a Request credit. - [Enrich News](https://docs.zoominfo.com/reference/enrichinterface_enrichnews.md): Enrich the specified company with relevant News articles. A company identifier must be provided (companyId, companyName, companyWebsite); all other criteria are optional. Input parameters may require specific values. You can use the [Lookup Data](ref:lookupinterface_lookup) endpoint to retrieve the list of possible values. Use Enrich News to find News articles for a specific ZoomInfo company. To find News articles across the entire database of ZoomInfo Companies, use the [Search News](ref:searchinterface_searchnews) endpoint. With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), a credit will be counted for the enriched company. Each News article returned in the results does count towards the customer's Record limit and a successful response will count towards the Request limit. For example, a successful response that returns 10 news articles, 1 credit will be charged if applicable, 10 Records will be counted, and 1 Request will be counted. - [Enrich Org Charts](https://docs.zoominfo.com/reference/enrichinterface_enrichorgchart.md): Enrich the specified Company by providing Org Chart information. For each request, a ZoomInfo Company identifier and at least one ZoomInfo Department identifier are required. This endpoint then returns ZoomInfo contacts for that company in the requested department. Org Chart data displays employees organized by seniority level, enabling you to understand the structural composition of an organization. Org Chart data can be used to identify decision makers, analyze team composition, track organizational changes, and target contacts by seniority. Input parameters may require specific values. You can use the [Lookup Data](ref:lookupinterface_lookup) endpoint to retrieve the list of possible values. With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), a credit will be counted for the enriched company, when applicable. Regardless of the number of ZoomInfo Contacts returned, a single Record will be charged per successful request. Additionally, a Request limit will be charged for each successful request. - [Enrich Scoops](https://docs.zoominfo.com/reference/enrichinterface_enrichscoop.md): Enrich the specified company with relevant Scoops. A company identifier must be provided (companyId, companyName, companyWebsite); all other criteria are optional. Input parameters may require specific values. You can use the [Lookup Data](ref:lookupinterface_lookup) endpoint to retrieve the list of possible values. Use Enrich Scoops to find Scoops for a specific ZoomInfo company. To find Scoops across the entire database of ZoomInfo Companies, use the [Search Scoops](ref:searchinterface_searchscoop) endpoint. With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), a credit will be counted for the enriched company. Each Scoop returned in the results does count towards the customer's Record limit and a successful response will count towards the Request limit. For example, a successful response that returns 10 Scoops, 1 credit will be charged if applicable, 10 Records will be counted, and 1 Request will be counted. - [Enrich Technologies](https://docs.zoominfo.com/reference/enrichinterface_enrichtechnology.md): Return a list of technologies from ZoomInfo's company data that match to the provided company. Technologies data provides a list of technologies that ZoomInfo has identified the matched company is using. These technologies are identified through analyzing company websites, analyzing job postings, company and partnership announcements, data partnerships, ai models, and many other methods. With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), this endpoint will charge a single credit for the company that is enriched, and the company is also counted as a Record. Each successful response will count as a Request credit. - [Enrich Hashtags](https://docs.zoominfo.com/reference/enrichinterface_enrichhashtag.md): Return a list of hashtags from ZoomInfo's company data that match to the provided company. Hashtags are predefined categorical labels that classify companies based on specific business characteristics, technologies, or attributes. They function as structured metadata tags that enable precise filtering and segmentation of companies in the ZoomInfo database. With reference to ZoomInfo's [Credit Usage and Limits](doc:credit-usage-and-limits), this endpoint will charge a single credit for the company that is enriched, and the company is also counted as a Record. Each successful response will count as a Request credit. - [Lookup Data](https://docs.zoominfo.com/reference/lookupinterface_lookup.md): Returns lookup data. - [Lookup Search Fields](https://docs.zoominfo.com/reference/lookupsearchinterface_lookupsearch.md): Returns lookup search fields based on entity and field type filters. - [Lookup Enrich Fields](https://docs.zoominfo.com/reference/lookupenrichinterface_lookupenrich.md): Returns lookup enrich fields based on entity and field type filters. - [Usage Data](https://docs.zoominfo.com/reference/userinterface_userusage.md): Returns current user's API usage and limits. - [Get Account Summary](https://docs.zoominfo.com/reference/accountsummaryinterface_getaccountsummary.md): Retrieve the account summary for a specific company. - [Ask Account Summary Question](https://docs.zoominfo.com/reference/accountsummaryinterface_askaccountsummaryquestion.md): Ask a question about the account summary of a specific company. - [Get insights by type](https://docs.zoominfo.com/reference/insightsinterface_getcompanyinsightsbytype.md): Retrieve sales intelligence signals for up to 50 companies, filtered by signal type. Signals include funding events, leadership changes, intent spikes, hiring anomalies, and more. # Insights API - Introduction The **Insights API** provides programmatic access to ZoomInfo's curated intelligence layer — actionable data about customer activity that matters most to your business. **Insights** are automatically filtered for relevance, recency, and context based on your team's specific focus areas. This means you receive high-priority updates like decision-maker job changes at target accounts, intent spikes in your buying groups, or website visits from key personas — without the noise of every global data point. ## Why Use Insights? **Insights** enable two critical workflows for modern go-to-market teams: - **Revenue Operations**: Orchestrate automated workflows based on meaningful account changes. For example, route leads when employment changes bring a known champion to a target account, send alerts when intent signals spike for your product category, or update CRM records when funding announcements or new projects signal budget availability. - **Sales Teams**: Prioritize accounts based on key buying signals, and reach out in real time. Focus on accounts where specific decision-makers have visited your website, where intent data shows they're actively researching competitors, or where employment changes indicate new leadership in key buying roles — all without sifting through irrelevant updates. ## Data Sources **Insights** are powered by multiple data sources, including: - **ZoomInfo Data**: Intent signals, WebSights visitor intelligence, organizational changes, and business news from public sources - **First-Party Data**: CRM activity, meeting intelligence, and email engagement from your systems - **Partner Signals**: Buyer intent and product research activity from G2, TrustRadius, and other platforms ## Available Insight Types For a complete list of available Insights and their filtering criteria, see the [ZoomInfo Signals Glossary](https://eng7e.seismic.com/i/7PLUSSIGNTOIgJwEd0YNcFquYltStcWzmeup___own6jqymt85zpqZZ9Ml9dbioKdxvA1oAnox7K5rO5cIjVfG5FnDjPSyasqgaogzeKTK___iPLUSSIGNQTfCOy3CcvhCmqnpK9yYiDadIILi). ## Common Use Cases The Insights API empowers you to surface and act on customer intelligence in any application or workflow that makes sense for your business: - **Account Prioritization & Routing**: Orchestrate scoring, segmentation, and assignment workflows that connect insights across systems to route accounts to the right sellers at the right time - **Workflow Automation**: Trigger external systems like email platforms, notification tools, or data warehouses when specific insight types occur - **Real-Time Alerting**: Create custom notification rules based on your team's unique prioritization logic - **Custom Dashboards**: Build executive views of high-priority account activity across your entire portfolio - [Find Similar Companies](https://docs.zoominfo.com/reference/companylookalikesinterface_companylookalikes.md): Company Lookalikes can be used to retrieve a ranked list of companies that are similar to a given reference company. The similar companies are identified using a machine learning model that analyzes industry, revenue range, employee count, and other firmographic signals. These lookalike companies can be used to power prospecting, territory planning, or market expansion workflows where one wants to quickly find companies that "look like" a successful or high-priority account. **IMPORTANT: Either `filter[companyId]` or `filter[companyName]` MUST be provided. Omitting both will result in a 422 error.** To find Company Lookalikes, select the `companyId`, which identifies the company you want to use as the basis for finding lookalikes. If you are not able to provide the `companyId`, you can provide only the `companyName` instead, the service will attempt to resolve the best matching company and then return lookalike companies based on that company. The more precise the company name is (for example, use the full company name with correct spelling and full legal name), the more likely the service is able to track down the company ID and use it to find lookalikes. Optionally, you can narrow the results using the following boolean filters. When set to true, each filter restricts lookalikes to companies that share the corresponding attribute with the reference company: - `filter[sameRevenueRange]`: same revenue range - `filter[sameCountry]`: same country - `filter[sameIndustry]`: same industry - `filter[sameEmployeeRange]`: same employee count range Behind the scenes, the model uses a semantic vector representation of the reference company's data to efficiently find similar companies in the ZoomInfo database. The endpoint returns up to 100 lookalike companies, ordered from the most similar company to the least similar company (descending order by similarity score `attributes.score`). To control the number of results returned, use the `page[size]` parameter with any integer value between 1 and 100. Each result includes the company name, similarity score, rank, and key firmographic attributes such as industry, revenue range, employee range, and country. - [Get Contact Recommendations](https://docs.zoominfo.com/reference/contactrecommendationsinterface_getcontactrecommendations.md): Contact Recommendations can be used to retrieve a ranked list of people at a target company who are most relevant for a given sales motion (use case), such as prospecting, deal acceleration, or renewal and growth. The recommendations are derived from past user interactions and account activity, and are ranked by a machine learning model. These recommendations can be used to build targeted call lists, prioritize outreach, or guide sellers toward the right stakeholders within an account. To find Contact Recommendations select the appropriate `useCaseType` (for example, PROSPECTING or DEAL_ACCELERATION) and the target company (`filter[ziCompanyId]`). These inputs tell the model which sales motion you are running and which account you want to focus on, so that it can surface the most relevant personas based on historical past user interactions or engagements. Behind the scenes, the model leverages data such as the user's past contact views, exports, and copies for the PROSPECTING motion, or contacts from a user's CRM related to closed won deals for the DEAL_ACCELERATION motion. The model uses this data to infer which types of people are most likely to drive success for the selected motion. It then finds similar contacts at the target company and scores them using a combination of similarity and propensity signals. The endpoint returns up to 100 recommended contacts, ordered from most to least relevant. To control the number of recommendations returned, use the `page[size]` parameter with any integer value between 1 and 100. Each recommendation contains additional metadata (`meta`) that describes the reference person used to form the recommendation. Each recommendation includes the general similarity score (`score`), a re-ranking score (`reRankingScore`) which uses several propensity signals (such as contact similarity, contact quality, title boosting, etc.) to refine relevancy. Returns `-1.0` when the ML reranking model did not run. Explainability metadata (`meta`) describes why this person was recommended (for example, the reference person and source of the interaction). - [Get Contact Lookalikes](https://docs.zoominfo.com/reference/contactlookalikesinterface_getcontactlookalikes.md): Contact Lookalikes can be used to retrieve a ranked list of people who are most similar to a given reference person. The recommendations are generated by a machine learning model that compares the reference person's profile to other contacts. The profile includes person characteristics such as title, seniority, department, as well as company characteristics such as industry and company size. These lookalike contacts can be used to identify additional stakeholders, expand buyer networks, or build targeted prospecting lists based on known high-priority contacts. To find Contact Lookalikes, select the `referencePersonId`, which identifies the person whose profile you want to use as the basis for finding lookalikes. You can optionally provide a `targetCompanyId` to constrain the search to a specific company. If `targetCompanyId` is not provided, the model will search for similar contacts across all companies in the Zoominfo database. Behind the scenes, the model uses a semantic vector representation of the reference person's profile to efficiently find similar contact profiles in the ZoomInfo database. It then applies a re-ranking algorithm to the set of similar contacts found, in order to boost relevance in the final return list. The endpoint returns up to 100 lookalike contacts ordered from the most similar contact to the least similar contact (descending order by similarity score `attributes.score`). To control the number of lookalikes returned, use the `page[size]` parameter with any integer value between 1 and 100. Each lookalike contact contains additional metadata (`meta`) that describes the reference person used as the basis of the lookalike. - [List Customer Buyer Personas](https://docs.zoominfo.com/reference/customerbuyerpersonainterface_listcustomerbuyerpersonas.md): Returns the list of Customer Buyer Personas configured for the authenticated customer. A Buyer Persona represents a profile of a key decision-maker or influencer that a company's sales and marketing teams target. Personas capture attributes such as the buyer's role, objectives, priorities, and the motivations that influence purchasing decisions. Personas help organizations align their go-to-market strategy by defining who the ideal buyers are, what problems they care about, and how they should be engaged. Buyer Personas can be connected to products or services with the people most likely to purchase them. If you do not know the ID of the record you need, call [List Customer Buyer Personas](ref:customerbuyerpersonainterface_listcustomerbuyerpersonas) to browse the full set. Common use cases - Retrieve all configured buyer personas - Discover persona IDs for use in other API operations - Load persona data for downstream integrations or automation - [Upsert Customer Buyer Persona](https://docs.zoominfo.com/reference/customerbuyerpersonainterface_upsertcustomerbuyerpersona.md): Creates or updates a Customer Buyer Persona. This endpoint performs an upsert operation: If an `id` is included in the request body, the existing persona is updated. Only the fields provided in the request are modified (partial update). If an `id` is not included, a new persona is created. When creating a new persona, `name` is the only required attribute. All other attributes are optional. A Buyer Persona represents a type of buyer that the customer's sales and marketing teams target. Each persona captures key details about the buyer's responsibilities, motivations, and priorities, helping teams tailor messaging and engagement strategies. Buyer Personas can be associated with specific products or services with relevant buyers. Common use cases - Create new buyer personas for targeting and messaging - Update persona characteristics or engagement insights - Link personas to products or services for GTM alignment - [Get Customer Buyer Persona](https://docs.zoominfo.com/reference/customerbuyerpersonainterface_getcustomerbuyerpersona.md): Retrieves a single Customer Buyer Persona by its unique identifier. A Buyer Persona represents a profile of a decision-maker or stakeholder that the customer's sales and marketing teams target. Each persona captures insights into who the ideal buyers are, what motivates them, and how to effectively engage them during the sales process. If the specified buyerPersonaId does not exist, the endpoint returns **404 Not Found**. If you do not know the ID of the record you need, call [List Customer Buyer Personas](ref:customerbuyerpersonainterface_listcustomerbuyerpersonas) to browse the full set. This endpoint is typically used to retrieve the full configuration of a specific persona before updating or referencing it in downstream workflows. Common use cases - Retrieve detailed information about a specific persona - Load persona data before updating the record - Use persona context in integrations or automation workflows - [Delete Customer Buyer Persona](https://docs.zoominfo.com/reference/customerbuyerpersonainterface_deletecustomerbuyerpersona.md): Permanently deletes a Customer Buyer Persona identified by `buyerPersonaId`. Deleting a persona removes the associated buyer profile from the system and from any go-to-market configuration that references it. This is a hard delete operation. Once deleted, the persona cannot be recovered. If the specified buyerPersonaId does not exist, the endpoint returns **404 Not Found**. If you want to hide a persona without permanently removing it, use the [Archive Customer Buyer Persona](ref:customerbuyerpersonainterface_archivecustomerbuyerpersona) endpoint instead. Common use cases - Remove outdated or incorrect personas - Clean up duplicate persona records - Reset persona configuration before recreating it - [Archive Buyer Persona](https://docs.zoominfo.com/reference/customerbuyerpersonainterface_archivecustomerbuyerpersona.md): Archives a Customer Buyer Persona. Archiving hides the persona from standard list responses while retaining the record for historical reference, audit compliance, and potential restoration. Archived personas remain stored in the system and continue to count toward customer limits. When a persona is archived, the system sets the metadata fields `archivedAt` and `archivedBy`. This action is reversible. The persona can be restored using the [Unarchive Customer Buyer Persona](ref:customerbuyerpersonainterface_unarchivecustomerbuyerpersona) endpoint. Common use cases - Temporarily retire a persona that is no longer actively targeted - Maintain historical records without permanently deleting them - Clean up active persona lists while preserving data - [Unarchive Buyer Persona](https://docs.zoominfo.com/reference/customerbuyerpersonainterface_unarchivecustomerbuyerpersona.md): Restores a previously archived Customer Buyer Persona. Unarchiving makes the persona visible again in standard list responses and allows it to be used again in GTM configuration and workflows. When a persona is restored, the metadata fields `archivedAt` and `archivedBy` are cleared. If the specified buyerPersonaId does not exist, the endpoint returns **404 Not Found**. Common use cases - Reactivate a previously archived persona - Restore a persona that is relevant again for targeting or messaging - Re-enable personas used in go-to-market strategies - [List Customer Competitors](https://docs.zoominfo.com/reference/customercompetitorsinterface_listcustomercompetitors.md): Returns the list of Customer Competitors configured for the authenticated customer. A Customer Competitor represents a company that competes with the customer's products or services in the market. Competitor records capture structured competitive intelligence that helps sales and marketing teams understand the competitive landscape and position their products effectively. Competitor profiles may include information such as competing products, win/loss analysis, displacement history, and reasons why deals are won or lost against a particular competitor. A competitor may optionally be linked to a ZoomInfo company record to enable additional enrichment and firmographic insights. If you do not know the ID of the record you need, call [List Customer Competitors](ref:customercompetitorsinterface_listcustomercompetitors) to browse the full set. Common use cases - Retrieve all competitors configured for competitive analysis - Discover competitor IDs for use in other API operations - Load competitor data for downstream integrations or automation - [Upsert Customer Competitor](https://docs.zoominfo.com/reference/customercompetitorsinterface_upsertcustomercompetitor.md): Creates or updates a Customer Competitor. This endpoint performs an upsert operation: If an `id` is included in the request body, the existing competitor record is updated. Only the attributes provided in the request are modified (partial update). If an `id` is not included, a new competitor record is created. When creating a new competitor, `name` is the only required attribute. All other attributes are optional. Competitor records store structured competitive intelligence including competing products, win/loss insights, displacement scenarios, and positioning details that help organizations understand how they perform against competitors in the market. Competitors can also be associated with Products and Services to capture which products directly compete with one another. Common use cases - Create competitor profiles for competitive intelligence - Update win/loss insights or competitive positioning - Link competitors to products or services in order to track product-level competition Use [List Customer Competitors](ref:customercompetitorsinterface_listcustomercompetitors) to find the `id` of a record you want to update or to check whether a competitor already exists. - [Get Customer Competitor by ID](https://docs.zoominfo.com/reference/customercompetitorsinterface_getcustomercompetitor.md): Retrieves a single Customer Competitor by its unique identifier. A Customer Competitor represents a company that competes with the customer's products or services. Competitor records capture structured competitive intelligence such as competing products, win/loss analysis, displacement scenarios, and reasons why deals are won or lost against that competitor. A competitor may optionally be linked to a ZoomInfo company record for additional enrichment. If the specified competitorId does not exist, the endpoint returns **404 Not Found**. If you do not know the ID of the record you need, call [List Customer Competitors](ref:customercompetitorsinterface_listcustomercompetitors) to browse the full set. Common use cases - Retrieve detailed information about a specific competitor - Load competitor data before updating the record - Use competitor intelligence in integrations or automation workflows - [Delete Customer Competitor](https://docs.zoominfo.com/reference/customercompetitorsinterface_deletecustomercompetitor.md): Permanently deletes a Customer Competitor identified by `competitorId`. Deleting a competitor removes the associated competitive intelligence from the system. This is a hard delete operation and cannot be undone. If the specified `competitorId` does not exist, the endpoint returns **404 Not Found**. If you want to hide a competitor without permanently removing it, use the [Archive Customer Competitor](ref:customercompetitorsinterface_archivecustomercompetitor) endpoint instead. Common use cases - Remove outdated competitor profiles - Clean up duplicate competitor records - Reset competitor data before recreating it - [Archive Customer Competitor](https://docs.zoominfo.com/reference/customercompetitorsinterface_archivecustomercompetitor.md): Archives a Customer Competitor. Archiving hides the competitor from standard list responses while retaining the record for historical reference and audit purposes. Archived competitors remain stored in the system and continue to count toward customer limits. When a competitor is archived, the metadata fields `archivedAt` and `archivedBy` are set. This action is reversible using the [Unarchive Customer Competitor](ref:customercompetitorsinterface_unarchivecustomercompetitor). Common use cases - Temporarily remove inactive competitors - Preserve historical competitive intelligence - Simplify active competitor lists while retaining records - [Unarchive Customer Competitor](https://docs.zoominfo.com/reference/customercompetitorsinterface_unarchivecustomercompetitor.md): Restores a previously archived Customer Competitor. Unarchiving makes the competitor visible again in standard list responses and allows it to be used again in competitive intelligence workflows. When a competitor is restored, the metadata fields `archivedAt` and `archivedBy` are cleared. If the specified `competitorId` does not exist, the endpoint returns **404 Not Found**. Common use cases - Reactivate competitors that are relevant again - Restore archived competitive intelligence records - Re-enable competitors for GTM analysis - [List Ideal Customer Profiles](https://docs.zoominfo.com/reference/customeridealcompanysegmentinterface_listidealcompanysegments.md): Returns a List of Ideal Customer Profile (ICPs) configured for the authenticated customer. An Ideal Customer Profile represents a target company profile that aligns with a company's go-to-market strategy. Each segment defines the types of organizations most likely to benefit from the company's products or services. Segments typically describe target companies using firmographic attributes such as industry, company size, revenue range, geography, and other qualification criteria. These segments help sales and marketing teams focus outreach on the companies most likely to convert. Ideal Customer Profile can be associated with products or services that are targeted toward the right types of companies. If you do not know the ID of the record you need, call [List Ideal Customer Profiles](ref:customeridealcompanysegmentinterface_listidealcompanysegments) to browse the full set. Common use cases - Retrieve all configured ICP segments - Discover segment IDs for use in other API operations - Sync ICP definitions with external GTM systems - [Upsert Ideal Customer Profile](https://docs.zoominfo.com/reference/customeridealcompanysegmentinterface_upsertidealcompanysegment.md): Creates or updates an Ideal Customer Profile. This endpoint performs an upsert operation: If an `id` is included in the request body, the existing segment is updated. Only the attributes provided in the request are modified (partial update). If an `id` is not included, a new segment is created. When creating a new segment, `name` is the only required attribute. All other attributes are optional. An Ideal Customer Profile defines the type of companies that best match the organization’s target market. Segments typically describe firms using firmographic attributes such as industry, company size, revenue range, geography, and other qualification criteria. Common use cases - Define new ICP segments for GTM targeting - Update firmographic filters used to identify target accounts - Align company targeting with products or services and personas - [Get an Ideal Customer Profile](https://docs.zoominfo.com/reference/customeridealcompanysegmentinterface_getidealcompanysegment.md): Retrieves a single Ideal Customer Profile by its unique identifier. An Ideal Customer Profile defines the profile of organizations that best match a company's target market. Segments typically describe companies using firmographic attributes such as industry, company size, revenue range, geography, and other qualification criteria. Segments may also include seed companies or structured search filters used for account matching. If the specified segmentId does not exist, the endpoint returns **404 Not Found**. If you do not know the ID of the record you need, call [List Ideal Customer Profiles](ref:customeridealcompanysegmentinterface_listidealcompanysegments) to browse the full set. Common use cases - Retrieve the full configuration of a specific ICP segment - Load segment details before updating the record - Use ICP definitions in integrations or automation workflows - [Delete Ideal Customer Profile](https://docs.zoominfo.com/reference/customeridealcompanysegmentinterface_deleteidealcompanysegment.md): Permanently deletes an Ideal Customer Profile identified by `segmentId`. Deleting a segment removes the associated target company profile from the system and from any go-to-market configuration that references it. This is a hard delete operation and cannot be undone. If the specified `segmentId` does not exist, the endpoint returns **404 Not Found**. If you want to hide a segment without permanently removing it, use the [Archive Ideal Customer Profile](ref:customeridealcompanysegmentinterface_archiveidealcompanysegment) endpoint instead. Use [Get Ideal Customer Profile](ref:customeridealcompanysegmentinterface_getidealcompanysegment) to verify the profile exists before deletion. Common use cases - Remove outdated or incorrect ICP definitions - Clean up duplicate segments - Reset segment configuration before recreating it - [Archive ICP](https://docs.zoominfo.com/reference/customeridealcompanysegmentinterface_archiveidealcompanysegment.md): Archives an Ideal Customer Profile. Archiving hides the segment from standard list responses while retaining the record for historical reference, audit purposes, and possible restoration. Archived segments remain stored in the system and continue to count toward customer limits. When a segment is archived, the system sets the metadata fields `archivedAt` and `archivedBy`. This action is reversible using the [Unarchive Ideal Customer Profile](ref:customeridealcompanysegmentinterface_unarchiveidealcompanysegment) endpoint. Common use cases - Temporarily retire an ICP definition - Maintain historical GTM configuration for audit purposes - Simplify active targeting segments without losing data - [Unarchive ICP](https://docs.zoominfo.com/reference/customeridealcompanysegmentinterface_unarchiveidealcompanysegment.md): Restores a previously archived Ideal Customer Profile. Unarchiving makes the segment visible again in standard list responses and allows it to be used again in GTM targeting and configuration workflows. When a segment is restored, the metadata fields `archivedAt` and `archivedBy` are cleared. If the specified `segmentId` does not exist, the endpoint returns **404 Not Found**. Common use cases - Reactivate previously archived ICP segments - Restore segments that are relevant again for targeting - Re-enable segments used in GTM configuration - [Get Customer Settings](https://docs.zoominfo.com/reference/customersettingsinterface_getcustomersettings.md): Retrieves the customer settings for the authenticated customer. Customer Settings represent the core company-level configuration. This includes foundational information such as the company name, description, elevator pitch, and strategic go-to-market priorities. This information provides the baseline context that AI agents use to generate recommendations, messaging, targeting insights, and account prioritization. This resource is a singleton per customer, meaning each customer can have only one Customer Settings record. If no configuration has been created yet, the endpoint will return **404 Not Found**. Use [Post Customer Settings](ref:customersettingsinterface_upsertcustomersettings) to create or update the settings. Common use cases - Retrieve the current company context powering GTM AI features - Verify whether company configuration has been initialized - Load existing company overview information for editing or synchronization - [Upsert Customer Settings](https://docs.zoominfo.com/reference/customersettingsinterface_upsertcustomersettings.md): Creates or updates the Customer Settings for the authenticated customer. Customer Settings store the Company Overview configuration including the company name, description, elevator pitch, and strategic go-to-market priorities. This endpoint performs an upsert operation: If a Customer Settings record does not exist, it will be created. If a record already exists, only the fields included in the request will be updated. Each customer can have only one Customer Settings record. All attributes in the request body are optional, but at least one attribute must be provided. Requests with no attributes will return a **400 Bad Request**. Updates are applied as a partial update, meaning only the fields included in the request will be modified. All other fields remain unchanged. Common use cases - Initialize company configuration during setup - Update company overview information - Modify strategic priorities used by AI recommendations Use [Get Customer Settings](ref:customersettingsinterface_getcustomersettings) to retrieve the current settings before updating, or [Delete Customer Settings](ref:customersettingsinterface_deletecustomersettings) to remove them. - [Delete Customer Settings](https://docs.zoominfo.com/reference/customersettingsinterface_deletecustomersettings.md): Permanently deletes the Customer Settings record for the authenticated customer. Customer Settings store the customers Company Overview configuration. Deleting this record removes that configuration from the system. This resource is a singleton per customer, meaning each customer can have only one Customer Settings record. If no Customer Settings record exists, the endpoint returns **404 Not Found**. This is a hard delete operation. Once deleted, the record is removed from the backend and must be recreated using [Upsert Customer Settings](ref:customersettingsinterface_upsertcustomersettings) if needed. Common use cases - Remove an existing company overview configuration - Reset customer-level company settings before recreating them - Clean up configuration that is no longer valid Use [Get Customer Settings](ref:customersettingsinterface_getcustomersettings) to verify settings exist before deletion, or [Upsert Customer Settings](ref:customersettingsinterface_upsertcustomersettings) to recreate them if needed. - [List Products or Services](https://docs.zoominfo.com/reference/organizationofferingsinterface_listorganizationofferings.md): Returns the complete list of Products or Services configured for the authenticated customer. An Product or Service represents a product, service, or solution provided by your company and forms the foundation of your go-to-market configuration. Products or Services capture key context such as the product's value proposition, the pain points it addresses, proof points, target buyer personas, and ideal customer profiles. Products or Services serve as the central linking object across GTM configuration, connecting Buyer Personas, Ideal Customer Profiles (ICPs), and Competitors to ensure alignment between targeting, messaging, and competitive positioning. If you do not know the ID of the record you need, call [List Products or Services](ref:organizationofferingsinterface_listorganizationofferings) to browse the full set. Use this endpoint to browse all products or services or retrieve product or service IDs that can be used with other endpoints. Common use cases - Retrieve all configured products or services - Discover offering IDs for use in other API operations - Load offering data for downstream GTM automation or AI workflows - [Upsert Product or Service](https://docs.zoominfo.com/reference/organizationofferingsinterface_upsertorganizationoffering.md): Creates or updates a Product or Service for the authenticated customer. A Product or Service represents a product, service, or solution provided by your company. Products or Services form the foundation of your go-to-market configuration and capture key context such as the product's value proposition, the pain points it addresses, proof points, target buyer personas, and the ideal customer profiles it serves. This endpoint performs an upsert operation: If an `id` is included in the request body, the existing product or service is updated. Only the attributes provided in the request are modified (partial update). If an `id` is not provided, a new product or service is created. When creating a new product or service, name is the only required field. All other attributes are optional. A Product or Service acts as a central linking object across GTM configuration. Buyer Personas, Ideal Customer Profiles (ICPs), and Competitors can all be associated with a Product or Service to align targeting, messaging, and competitive positioning. Common use cases - Create a new product or service - Update positioning, messaging, or targeting attributes for an existing product or service - Link products or services to buyer personas, ICPs, or competitors - [Get Product or Service](https://docs.zoominfo.com/reference/organizationofferingsinterface_getorganizationoffering.md): Retrieves a single product or service by ID. A product or service represents a discrete product or service provided by your company and forms the foundation of your go-to-market configuration. Each product or service record captures the strategic context of a product: how it is positioned in the market, whom it targets, what pain points it addresses, and the value proposition it delivers. Returns **404 Not Found** if the product or service does not exist. If you do not know the ID of the record you need, call [List Products or Services](ref:organizationofferingsinterface_listorganizationofferings) to browse the full set. This endpoint is typically used when retrieving the full details of a specific product or service for viewing, editing, or integration with external systems. Common use cases - Retrieve the full configuration of a specific product or service - Load product or service details before updating the record - Fetch product or service context for downstream workflows or integrations - [Delete Product or Service](https://docs.zoominfo.com/reference/organizationofferingsinterface_deleteorganizationoffering.md): Permanently deletes a Product or Service identified by `offeringId`. A Product or Service represents a product, service, or solution provided by your company and serves as a core component of your go-to-market configuration. Deleting a Product or Service removes the associated strategic context used for positioning, targeting, and competitive analysis. This is a hard delete operation. Once deleted, the Product or Service is permanently removed from the system and cannot be recovered. If the specified offeringId does not exist, the endpoint returns **404 Not Found**. If you want to hide a Product or Service without permanently removing it, use the [Archive Product or Service](ref:organizationofferingsinterface_archiveorganizationoffering) endpoint instead. Use [Get Product or Service](ref:organizationofferingsinterface_getorganizationoffering) to verify the Product or Service exists before deletion, or [Upsert Product or Service](ref:organizationofferingsinterface_upsertorganizationoffering) to recreate it afterward if needed. Common use cases - Permanently remove an obsolete product or service - Clean up incorrect or duplicate product or service records - Reset a product or service before recreating it with updated configuration - [Archive Product or Service](https://docs.zoominfo.com/reference/organizationofferingsinterface_archiveorganizationoffering.md): Archives an Product or Service identified by `offeringId`. Archiving hides the product or service from standard list responses while retaining the record for historical reference, audit purposes, and potential restoration. The archived record remains stored in the system and continues to count toward customer limits. When a product or service is archived, the system sets the metadata fields `archivedAt` and `archivedBy`. This operation is reversible. An archived product or service can be restored using the [Unarchive Product or Service](ref:organizationofferingsinterface_unarchiveorganizationoffering) endpoint. Common use cases - Temporarily remove a product or service that is no longer actively sold - Hide deprecated products or services while retaining historical configuration - Maintain audit history without permanently deleting records - [Unarchive Product or Service](https://docs.zoominfo.com/reference/organizationofferingsinterface_unarchiveorganizationoffering.md): Restores a previously archived Product or Service. Unarchiving makes the product or service visible again in standard list responses and reactivates it for use across GTM configuration workflows. When a product or service is unarchived, the metadata fields `archivedAt` and `archivedBy` are cleared. If the specified `offeringId` does not exist, the endpoint returns **404 Not Found**. Common use cases - Restore a previously archived product or service - Reactivate products or services that have returned to market - Re-enable products or services used in GTM configuration - [Create New Folder](https://docs.zoominfo.com/reference/folders_createfolder.md): Creates a new folder for organizing audiences in GTM Studio. Folders group related audiences together, making it easier to navigate and manage large collections — for example, grouping by campaign, region, or team. Specify `name` and optionally set `starred` to `true` to mark the folder for quick access. The folder is created empty; audiences are assigned to it via the Create Audience or Update Audience endpoints using `folderId`. Returns `201 Created` with the full folder resource including the system-assigned `folderId` and creation metadata. Returns `400` if required fields are missing or invalid. - [List Folders](https://docs.zoominfo.com/reference/folders_listfolders.md): Retrieves a paginated list of all folders, with optional filtering and sorting. Use this endpoint to browse the folder structure or to find a `folderId` before creating or moving an audience. Filter by `createdById`, `updatedById`, `searchText` (partial name match), or date ranges (`createdAfter`, `createdBefore`, `updatedAfter`, `updatedBefore`). Use `sort` to order results by `name`, `createdAt`, `updatedAt`, `audienceCount`, or `recentlyViewed`; prefix with `-` for descending order (default: `-updatedAt`). Use `page[number]` and `page[size]` (default `25`, max `100`) to paginate. Returns `200` with a paginated array of folder resources including `audiences` (list of audience IDs in each folder) and navigation links. Returns `400` if filter or sort parameters are invalid. - [Get Specific Folder](https://docs.zoominfo.com/reference/folders_getfolderbyid.md): Retrieves the full state of a single folder by its `folderId`. Returns all folder attributes — name, starred status, description, notes, creation and update timestamps, and the list of `audienceId` values contained in the folder. Use this endpoint to inspect a folder's contents before operating on its audiences, or to verify folder state after an update. Returns `200` with the folder resource. Returns `404` if no folder matches the provided `folderId`. - [Update Folder](https://docs.zoominfo.com/reference/folders_updatefolder.md): Updates one or more attributes of an existing folder without requiring a full replacement. Supported fields: `name`, `starred`, `description`, and `notes`. Only fields present in the request body are modified; all other attributes remain unchanged. Use this endpoint to rename a folder, star or unstar it, or update its description and notes. Returns `200` with the updated folder resource. Returns `404` if no folder matches the provided `folderId`. - [Delete Specific Folder](https://docs.zoominfo.com/reference/folders_deletefolder.md): Permanently deletes a folder from GTM Studio. Deleting a folder removes the audiences it contained as well. This action is irreversible. Returns `204 No Content` on success. Returns `404` if no folder matches the provided `folderId`. - [Create New Audience](https://docs.zoominfo.com/reference/audiences_createaudience.md): Create a new Go-to-Marketing (GTM) Studio audience. An audience is a collection of contacts or companies that can be organized, filtered, and managed for marketing and sales purposes. You can use audiences to build and maintain business-critical datasets or enrich customer lists from trade shows and conferences. You can define the audience name, audience type (`CONTACT` or `COMPANY`), and the source of the audience. Currently, only `CUSTOM` audience sources are supported meaning the audience has no linked source dataset. Requests to create audiences can optionally include definitions for columns to be added to the audience. If no column definitions are provided, the audience will be created without any columns, and columns may be added in the future using the [Create New Columns](ref:columns_addcolumns) endpoint. Folders can be used to organize and group similar audiences or audiences that will be used for similar purposes. Folders can be created using the [Create New Folder](ref:folders_createfolder) endpoint, and the id can be provided in the `folderId` field to create the audience within that folder. You can use the [List Folders](ref:folders_listfolders) endpoint to get a list of existing folders to place the audience into. If a `folderId` is not provided, the audience creation process will create a new folder with the same name as the audience. When `autoMatchCriteria` is `true`, the system uses AI to automatically infer match criteria mappings for columns — for example, mapping an "Email" column to `CONTACT_EMAIL`. Returns `201 Created` with the audience resource. Returns `400` if required fields are missing or `type` is invalid. - [List Audiences](https://docs.zoominfo.com/reference/audiences_listaudiences.md): Retrieves a paginated list of all audiences, with optional filtering and sorting. Use this endpoint to browse audiences or to find an `audienceId` before operating on rows, columns, or enrichment. Filter by `type` (`CONTACT` or `COMPANY`) and `searchText` (case-insensitive contains match on audience name). Use `sort` to order results by `name`, `createdAt`, `updatedAt`, or `recordCount`; prefix with `-` for descending order (default: `-updatedAt`). Use `page[number]` and `page[size]` (default `25`, max `100`) to paginate. Returns `200` with a paginated array of audience resources and navigation links. Returns `400` if filter or sort parameters are invalid. - [Fetch Audience](https://docs.zoominfo.com/reference/audiences_getaudience.md): Retrieves the full state of a single audience by its `audienceId`. Returns all audience attributes — name, type, source origin, current `recordCount`, folder location, creation and update timestamps, and the complete column structure with all column properties. Use this endpoint to check audience configuration before writing rows or before running enrichment. Returns `200` with the audience resource. Returns `404` if no audience matches the provided `audienceId`. - [Delete Audience](https://docs.zoominfo.com/reference/audiences_deleteaudience.md): Permanently deletes an audience and all associated data — rows, column definitions, and enrichment history. This action is irreversible; the audience and all its data cannot be recovered after deletion. Use this endpoint only when retiring an audience entirely; to remove specific records, use the Delete Rows endpoint instead. Returns `204 No Content` on success. Returns `404` if no audience matches the provided `audienceId`. - [Update Audience](https://docs.zoominfo.com/reference/audiences_patchaudience.md): Updates one or more metadata attributes of an existing audience without requiring a full replacement. Supported fields: `name`, `folderId`, `description`, and `notes`. Only fields present in the request body are modified; all other attributes remain unchanged. Use this endpoint to rename an audience, move it to a different folder, or update its description or notes. Returns `200` with the updated audience resource. Returns `400` if the request body is malformed or contains unsupported fields. Returns `404` if no audience matches the provided `audienceId`. - [Get Audience Filter Metadata](https://docs.zoominfo.com/reference/audiences_getaudiencefiltermetadata.md): Returns the available filter operators for each column in the specified audience. Use this endpoint before building a filter-based row query to discover which operators — such as `EQUALS`, `CONTAINS`, `NOT_EQUALS` are supported for each column. The response includes per-operator configuration: whether multiple values are supported (`isMultipleSupported`), the maximum number of allowed values (`valueCountLimit`), and the minimum character requirement per value for string-based operators (`minCharLimit`). Use this metadata to validate filter inputs client-side before sending a List Rows request. Returns `200` with a list of `FilterMetadata` objects keyed by `columnId`. Returns `404` if no audience matches the provided `audienceId`. - [Upsert Column Match Criteria](https://docs.zoominfo.com/reference/audiences_upsertmatchcriteria.md): Upserts match criteria for the audience's designated match column (the column used for enrichment matching). Match criteria define how audience column values are mapped to ZoomInfo attributes (for example, mapping an "Email" column to `CONTACT_EMAIL`) for enrichment resolution. If a request body is provided, the supplied match criteria are applied directly — each entry maps an audience `columnId` to a ZoomInfo attribute field. If the request body is omitted or `matchCriteria` is not provided, the system attempts to auto-map match criteria using AI. If the match column does not exist, it will be created automatically. Existing match criteria on the audience's match column are replaced by the new values. Returns `200` with the updated match column resource. Returns `400` if a `columnId` does not exist in the audience or a `mappedTo` value is invalid. Returns `404` if no audience matches the provided `audienceId`. - [Enrich Audience](https://docs.zoominfo.com/reference/audiences_enrichaudience.md): Initiates an asynchronous enrichment job that appends ZoomInfo intelligence data to rows in the specified audience. The request body must include a `scope` field specifying the enrichment target: - `AUDIENCE`: Enriches all rows in the audience. The `rows` and `columns` fields are optional. - `ROW`: Enriches specific rows by `rowId`. The `rows` field is required and must contain at least one element. The `columns` field is optional. This operation is asynchronous. Returns `202 Accepted` with an `EnrichJob` resource containing the job id. Poll the [Get Async Job Status](ref:jobs_getAsyncJobStatus) endpoint at `GET /v1/audiences/{audienceId}/jobs/{jobId}` using that job id to monitor progress and detect `SUCCEEDED`, `PARTIALLY_SUCCEEDED`, or `FAILED` terminal states. Returns `202 Accepted` on successful job creation. Returns `204 No Content` if no rows match the provided scope. Returns `400` for malformed requests, missing required fields, or invalid scope combinations. Returns `402` if enrichment cannot be processed for the account. Returns `404` if no audience matches the provided `audienceId`. - [Get Job Status](https://docs.zoominfo.com/reference/audiences_getjobstatus.md): Returns the current status and progress of any previously initiated asynchronous job for an audience. Covers all job types: `AUDIENCE_CREATE`, `AUDIENCE_ENRICH`, and `ROW_UPSERT`. Provide the `audienceId` and `jobId` returned by the originating operation. The response includes the job status — one of `SCHEDULED` (queued), `RUNNING` (actively processing), `SUCCEEDED` (finished successfully), `PARTIALLY_SUCCEEDED` (completed with some failures), `FAILED` (terminated with errors), or `CANCELLED` — and a `percentProgress` value. Returns `200` with the job status resource. Returns `404` if the `audienceId` or `jobId` does not exist. - [Create New Columns](https://docs.zoominfo.com/reference/columns_addcolumns.md): Adds one or more columns to an existing audience in a single bulk operation. Columns define the data fields available for each row in the audience; each column has a `name`, a `dataType` (e.g., `TEXT`, `INTEGER`, `EMAIL`, `DATE`, `BOOLEAN`), and behavior flags (`isFrozen`, `isHidden`). Supported column types: - `CUSTOM` (`columnType: CUSTOM`) - Static user-provided values - `FORMULA` (`columnType: FORMULA`) - Values generated from a formula prompt - `AI` (`columnType: AI`) - AI-generated values with optional `tool` and `dataDependencies` context - `ZOOMINFO_MATCH` (`columnType: ZOOMINFO_MATCH`) - Enrichment-driven values (configure via Upsert Column Match Criteria endpoint) Returns `201 Created` with the full array of created column resources including system-assigned `columnId` values and read-only flags. Returns `400` if required fields are missing or `dataType` is invalid. Returns `404` if no audience matches the provided `audienceId`. - [Get Column Data Dependencies](https://docs.zoominfo.com/reference/columns_getsupporteddatadependencies.md): Returns the available data dependencies for AI-powered columns so clients can build valid prompts and grounding context before creating the column. This endpoint solves data dependency discovery for AI workflows by listing which audience columns and knowledge sources can be used as context for the selected AI column type. Use this to discover valid context sources, validate that selected context is supported, and choose relevant data dependencies that improve AI-generated output quality. Response entries include data dependency identifiers, display names, data types, and whether the source comes from an audience column (`COLUMN`) or from a knowledge source (`KNOWLEDGE_BASE`). Returns `200 OK` with the list of supported data dependencies for the requested `tool`. Returns `400` if `tool` is invalid or not supported for data dependency discovery. Returns `404` if no audience matches the provided `audienceId`. - [Update Column](https://docs.zoominfo.com/reference/columns_patchcolumn.md): Updates a specific column's definition within an audience. Supported fields: `name`, `isFrozen`, and `isHidden`. Only fields present in the request body are modified. Use this endpoint to rename a column or toggle its display state. Returns `200` with the updated column resource. Returns `400` if the update is invalid or the column is not editable (`isEditable: false`). Returns `404` if the `audienceId` or `columnId` does not exist. - [Delete Column](https://docs.zoominfo.com/reference/columns_deletecolumn.md): Permanently removes a specific column from an audience, including all cell values stored in that column across every row. Only columns where `isDeletable` is `true` can be removed using this endpoint; attempting to delete a non-deletable column returns `400`. This action is irreversible — all data in the deleted column cannot be recovered. Returns `204 No Content` on successful deletion. Returns `400` if the column is not deletable. Returns `404` if the `audienceId` or `columnId` does not exist. - [Get Row by ID](https://docs.zoominfo.com/reference/rows_getrowbyid.md): Retrieves a single row from an audience by its `rowId`. Returns the full row record including all cell values and their `CellState` — `RESULT` (value present), `BLANK` (no value set), `LOADING` (enrichment in progress), `ERROR` (enrichment failed for this cell), or `NO_RESULT` (enrichment completed but returned no match). To limit the response to specific columns, pass one or more `columnId` values in the `columns` query parameter; if omitted, all columns are returned. Use this endpoint to inspect individual records, verify enrichment results, or retrieve a row before an update operation. Returns `200` with the row resource. Returns `404` if the `audienceId` or `rowId` does not exist. - [List Rows](https://docs.zoominfo.com/reference/rows_listrows.md): Retrieves rows from an audience with support for filtering, sorting, and pagination. Rows are individual contact or company records; each row contains cells keyed by `columnId`, where each cell reports its `value` and a `CellState` — `RESULT` (value present), `BLANK` (no value set), `LOADING` (enrichment in progress), `ERROR` (enrichment failed for this cell), or `NO_RESULT` (enrichment returned no match). Provide a flat `filters` array in the request body to narrow results by column values and conditions. Use `page[number]` and `page[size]` (default `25`, max `100`) to paginate through results. Use the `sort` query parameter with a `columnId` value and a `-` prefix for descending order. Use the `columns` query parameter to limit which columns are returned per row. Returns `200` with a paginated array of rows and navigation links. Returns `400` if filter criteria are malformed or column references are invalid. - [Bulk Upsert Rows](https://docs.zoominfo.com/reference/rows_upsertrows.md): Creates and/or updates multiple rows in an audience in a single bulk operation. Each entry in the request body includes cell values keyed by `columnId`. Including a `rowId` updates that existing row; omitting `rowId` creates a new row. Both creates and updates can be combined freely in the same request. By default, `runEnrichment` is `false` — enrichment does not run automatically; set it to `true` to trigger enrichment on affected rows after the upsert. To limit enrichment to specific columns, provide `columnId` values in the `columns` query parameter; if omitted, all enrichable columns are processed. Returns `200` with `data[]` row resources — each entry includes `id`, `type`, and `attributes.values` with full cell details (`columnId`, `value`, `state`, and `errorDetails` when applicable). Returns `400` if the request body is malformed or `columnId` references are invalid. - [Delete Rows](https://docs.zoominfo.com/reference/rows_deleterows.md): Permanently removes multiple rows from an audience in a single bulk operation. Provide an array of `rowId` values in the request body. All row data and associated cell values are deleted and cannot be recovered. Use this endpoint to clean audiences of outdated, duplicate, or irrelevant records. To delete the entire audience, use the Delete Audience endpoint instead. This operation is asynchronous. Returns `202 Accepted` with a `jobId`. Poll the [Get Async Job Status](ref:jobs_getAsyncJobStatus) endpoint at `GET /v1/audiences/{audienceId}/jobs/{jobId}` using that `jobId` to confirm all rows have been removed. Returns `400` if the request body is malformed or `rowId` values are invalid. - [Creates a new audience](https://docs.zoominfo.com/reference/audienceinterface_createaudience.md): Creates a new audience. - [Lists all audiences](https://docs.zoominfo.com/reference/audienceinterface_getaudiences.md): Lists all audiences. - [Gets existing audience by ID](https://docs.zoominfo.com/reference/audienceinterface_getaudience.md): Gets an existing audience. - [Updates audience by ID](https://docs.zoominfo.com/reference/audienceinterface_updateaudience.md): Updates an existing audience. - [Deletes audience by ID](https://docs.zoominfo.com/reference/audienceinterface_deleteaudience.md): Deletes an existing audience. - [Creates new audience upload](https://docs.zoominfo.com/reference/audienceinterface_uploadaudience.md): Create a new audience segment upload. - [Gets audience upload status](https://docs.zoominfo.com/reference/audienceinterface_getaudienceupload.md): Gets the upload status for an existing audience. - [Upsert Content Interactions](https://docs.zoominfo.com/reference/engagementscontroller_upsertcontentinteractions.md): Create or update content interaction engagement records - [Get content interaction](https://docs.zoominfo.com/reference/engagementscontroller_getcontentinteractionengagement.md): Retrieve a specific content interaction engagement by ID - [Delete content interaction](https://docs.zoominfo.com/reference/engagementscontroller_deletecontentinteractionengagement.md): Delete a content interaction engagement record - [List Pulses](https://docs.zoominfo.com/reference/pulsescontroller_listpulses.md): Returns the authenticated user's active pulses as a lightweight collection optimized for consumption by large language models (LLMs). Each entry includes a plain-text summary of the rendered content, priority, category, typed identity references for associated companies and contacts, and an optional `context` explanation. Designed for AI / agent consumption. Dismissed, saved, and expired pulses are excluded. ## Ordering Results are returned in stable descending order of `meta.createdAt`, then by `priority` (`HIGH` first, then `MEDIUM`, then `LOW`), then by `id` ascending as a tiebreaker. The ordering is consistent across pages so pagination is safe under concurrent inserts. ## Recipes - [Authorization Code Flow with PKCE](https://docs.zoominfo.com/recipes/codeverifier-with-pcke.md)