Company products

The Company products (company_products) filter enables you to discover companies based on the products and / or services they offer.

📘

Note

The API is designed to discover companies that provide a specific product or service. The response will include information about a single product or service, that best matches your search criteria, with the purpose of showcasing the company capabilities.

If your use-case requires exploring the full list of products or services offered by the company, we have a separate solution that can support this scenario. Please contact your dedicated sales representative for more information.

📘

Note

Products and services provided by companies are extracted using ML models and algorithms developed in-house by Veridion.


Veridion Supplier Universe

The API searches a subset of the entire Veridion company universe. We call this segment the Veridion Supplier Universe.

The Veridion Supplier Universe includes B2B manufacturers, distributors, software and service providers from around the world. We have created this universe by using Machine Learning models developed internally with the purpose of understanding what the company does.

👍

Tip

The Veridion Supplier Universe now includes B2B software providers, enabling you to search and source vendors across a wide range of categories — including marketing automation tools, procurement platforms, HR tools and more.

Software suppliers include:

  1. SaaS vendors across industries (e.g., legal, finance, agriculture, education, HR).
  2. Consulting/SaaS hybrid companies - meaning firms that offer both software platforms and consulting/professional services (implementation, customization, strategy, etc.).
  3. Cloud platform & infrastructure providers (e.g., AWS, Azure, Snowflake) offering hosting, data warehousing, IaaS, or PaaS. [Read more about Software Providers]

For this particular scenario, the company's website is our primary source of information and the most relevant one. Our approach involves directly accessing the primary source and extracting the exact product and service information shared by the company.

Companies adopt various methods for organizing information about their products and services on their websites:

  • They follow an online store pattern, grouping product pages under categories and presenting them hierarchically.
  • They display all their products on a single page.
  • Some companies choose an unstructured approach, mentioning products and services on their homepage or on the 'About Us' page.

We are able to isolate the specific pages on a company's website that feature their products or services, regardless of the format in which the information is presented.

📖

Product / Service pages

A product / service page is any page on a company's website that includes a mention about the offered product or service.

Such pages can be dedicated product pages, organized in a hierarchy (e.g. shopify-like structure), but also the Homepage or About-Us page of the website, for smaller companies.

Products / Services search sources

The filtering process searches across multiple Veridion data points related to both products or services, and companies.

We isolate the product or service name, descriptive content, and granular product attributes—such as material, form, color, applicability, industries served, and supplier capabilities—along with any relevant HTML metadata from the source page.

These are combined with selected company-level attributes, including Veridion business tags and descriptions, to form the searchable data set used by the API.

📖

A full list of available product attributes can be found here .


Search modes

Product Identifier match

Use this search mode when you already know a product’s code and want to find companies that sell that exact item (most often distributors).

A product identifier is any industry or vendor code that uniquely names a physical product. Common examples include SKU, CAS, NDC, UPC/EAN, GTIN, NSN, UDI, and MPN/Part Number. You’re not limited to these - pass any identifier string and we’ll attempt an exact match against all identifier fields indexed in the Veridion product database.

📘

Note

Product identifier search applies only to physical products/goods. Using it for services or software will return zero results.

📖

How we search

  1. When you enter a product code, our system first looks for an exact match in dedicated fields like MPN or SKU. Broader Search Second: If no exact match is found, the system automatically expands its search to scan the entire product listing - including titles and descriptions - for your identifier.
  2. You can enter any product identifier in any format - we normalize spacing and most special characters (e.g., searching FRS-445/B also checks FRS445B).

To perform a product identifier match, set relation to match_identifier and pass one or more string identifiers as value. Optionally scope results to distributors only with supplier_types: ["distributor"].[Read more about Supplier Types]

For example, the following filter searches for distributors of TOSHIBA 74VHC-series logic IC SKUs: 74VHC163FT or 74VHC161FT:

{
    "attribute": "company_products",
    "relation": "match_identifier",
    "value": [
      "74VHC163FT",
      "74VHC161FT"
    ],
    "supplier_types": [
      "distributor"
    ]
}

SKUs and MPNs are typically most useful when you’re trying to find who sells a specific part number (distributors, resellers, catalog houses), not the original manufacturer.


Similarly, you can search for distributors that list Ethanol by its CAS Registry Number 64-17-5:

{
  "attribute": "company_products",
  "relation": "match_identifier",
  "value": [
    "64-17-5"
  ],
  "supplier_types": [
    "distributor"
  ]
}

Expression match

When using this search mode, the Company products filter value is modelled as an expression containing a set of instructions.

Syntax of an expression

  1. An expression must include exactly one match block (terms to be matched) (mandatory)
  2. An expression can include exactly one exclude block (terms to be excluded from the search) (optional)
  3. An expression can include exactly one main_topic block (user-defined topic) (optional)
  4. In turn, both match and exclude blocks consist of one or more operator and operands blocks:
    • The operator can only take two values: and and or
    • The operands can either be a list of search terms or a list of operator and operands blocks, allowing for nested queries and more complex search use cases.
📘

Note

When operands are grouped by an and rule, it indicates that every single operand is mandatory, meaning all of them must be matched for a response to be returned.

Conversely, with the or rule, any of the operands can be matched for a response to be returned.

For example, the filter below searches for companies that produce biopharmaceutical products, and do not engage in retail operations:

{
  "attribute": "company_products",
  "relation": "match_expression",
  "value": {
    "match": {
      "operator": "or",
      "operands": [
        "biopharma",
        "biopharmaceutical",
        "biopharmaceuticals"
      ]
    },
    "exclude": {
      "operator": "or",
      "operands": [
        "retail"
      ]
    }
  }
}

Search terms

A search term can be defined as:

  • a single word, like biopharma
  • an exact phrase, like biopharma solutions
📘

Note

Please keep in mind that exact phrases are searched exactly as they are provided in the input.

For example, given the exact phrase biopharma solutions, the API will identify a text passage like biopharma solutions & more.

However, Solutions for your biopharma business would not be recognized as a match. To enable this type of matching, please consult the Complex expressions section below.

Grouping search terms

The or operator allows you to specify alternatives to the terms within a group. This is important when you need to optimize for results volume, as different companies might refer to the same concept in a slightly different way. For example, some companies might mention biopharma , others might call it biopharmaceutical, or use the plural formbiopharmaceuticals.

👍

Tip

Adding variations to your search terms will also help increase the accuracy of the results.

Due to how the results Sorting Mechanism works, if multiple terms are matched for the same company, that company will be prioritized in the result list as being more relevant to your search.

The and operator is useful when you need to enforce the presence of multiple search terms or search groups.

For example, you need to identify companies that provide biopharmaceuticals, but produce vaccines in particular. You can create this search by specifying both biopharmaceuticals and vaccine search terms, wrapped in an and operator:

{
  "attribute": "company_products",
  "relation": "match_expression",
  "value": {
    "match": {
      "operator": "and",
      "operands": [
        "biopharmaceuticals",
        "vaccine"
      ]
    }
  }
}

Complex expressions

Complex expressions are useful when you need to cover a broader set of criteria for your search or define a more complex concept ( for which you would need to use sets of keywords instead of a single word).

The Veridion API empowers advanced searches that allow for combining terms to encompass product names (like "superalloys"), product specifications/characteristics (such as "sheet"), manufacturing processes (like "age hardening"), and company capabilities (such as "custom manufacturing" or "turnkey").

When appropriate, this criteria can be grouped using individual operands. For example, the following filter searches for "Companies that deliver superalloys as sheets, use the age hardening method in their manufacturing, and supply custom manufacturing services":

{
  "attribute": "company_products",
  "relation": "match_expression",
  "value": {
    "match": {
      "operator": "and",
      "operands": [
        {
          "operator": "or",
          "operands": [
            "superalloy",
            "superalloys",
            "super alloy",
            "super alloys"
          ]
        },
        {
          "operator": "or",
          "operands": [
            "sheet",
            "sheets"
          ]
        },
        {
          "operator": "or",
          "operands": [
            "age hardening"
          ]
        },
        {
          "operator": "or",
          "operands": [
            "custom",
            "turnkey",
            "OEM",
            "build to print"
          ]
        }
      ]
    }
  }
}


User-defined topics

The API supports an optional main_topic field that allows users to explicitly define the central topic of their query. This field helps the search system understand what you're really looking for and prioritize results that align closely with that intent.

📖

Main topic

Please refer to this section for more information on what main_topic is, how and when it should be used.

To define the central topic or intent of the query, you must specify main_topic as a list of keyword variations that describe the main thing you're looking for.

For example, the following filter specifies chocolate and confectionary fats as the main topic for the search:

{
  "attribute": "company_products",
  "relation": "match_expression",
  "value": {
    "main_topic": [
      "chocolate fats",
      "confectionery fats",
      "fats"
    ],
    "match": {
      "operator": "and",
      "operands": [
        {
          "operator": "or",
          "operands": [
            "cocoa butter",
            "chocolate fats",
            "vegetable oils",
            "fats",
            "lipid ingredients"
          ]
        },
        {
          "operator": "or",
          "operands": [
            "chocolate manufacturing",
            "confectionery",
            "food processing",
            "chocolate",
            "cookies"
          ]
        }
      ]
    }
  },
  "supplier_types": [
    "manufacturer"
  ]
}

Supplier types

📘

Note

By default, the Company products filter searches the entire Veridion Supplier Universe . This means that your results can include manufacturers, distributors, service and software providers at the same time.

You can use the supplier_types parameter to target your search by passing in one or more categories of product or service suppliers.

The currently accepted values for this parameter are: "manufacturer", "distributor", "service_provider" and "software_provider".

For example, if you are searching for "biopharmaceuticals manufacturers and distributors", you would input ["manufacturer", "distributor"] as the supplier_types:

{
  "attribute": "company_products",
  "relation": "match_expression",
  "value": {
    "match": {
      "operator": "or",
      "operands": [
        "biopharma",
        "biopharmaceutical",
        "biopharmaceuticals"
      ]
    }
  },
  "supplier_types": [
    "manufacturer",
    "distributor"
  ]
} 

If you're looking for B2B service providers, please make sure to specify service_provider in the supplier_types array. For example, the following filter will return all companies that provide B2B legal services:

{
  "attribute": "company_products",
  "relation": "match_expression",
  "value": {
    "match": {
      "operator": "or",
      "operands": [
        "Employment Law"
      ]
    }
  },
  "supplier_types": [
    "service_provider"
  ]
}

If you want to find B2B software providers, please make sure to specify software_provider in the supplier_types array.

📖

Software suppliers

Software suppliers include:

  1. SaaS vendors across industries (e.g., legal, finance, agriculture, education, HR).
  2. Consulting/SaaS hybrid companies - meaning firms that offer both software platforms and consulting/professional services (implementation, customization, strategy, etc.).
  3. Cloud platform & infrastructure providers (e.g., AWS, Azure, Snowflake) offering hosting, data warehousing, IaaS, or PaaS. [Read more about Software Providers]

For example, the following filter will return all B2B providers of "Fleet management software with IoT telematics and predictive maintenance for global logistics":

{
  "attribute": "company_products",
  "relation": "match_expression",
  "value": {
    "match": {
      "operator": "and",
      "operands": [
        {
          "operator": "or",
          "operands": [
            "fleet management", "fleet tracking", "fleet operations", "vehicle tracking", "vehicle management"
          ]
        },
        {
          "operator": "or",
          "operands": [
            "telematics", "IoT", "predictive maintenance", "health monitoring", "vehicle diagnostics"
          ]
        },
        {
          "operator": "or",
          "operands": [
            "global logistics", "logistics"
          ]
        }
      ]
    }
  },
  "supplier_types": [
    "software_provider"
  ]
}

Results ranking

The Veridion API uses a multi-layered ranking system to sort search results based on both query relevance and supplier quality. This ensures that the most contextually appropriate, and commercially viable results appear at the top.

1. Relevance-based matching

The first layer ranks results based on how well they match your query. This is native to the search engine Veridion uses to identify the matches and enhanced by custom relevance boosting we apply at search time.

How the search engine ranks matches

The search engine assigns a higher base score when:

  • More input terms appear in several important data points such as the product name, product description, company description, or business activity tags
  • Same input terms appear multiple times in the same data point. For example*,* if you search for "metal sheet", a result with a product description like “metal sheet,” “metal sheet processing,” and “metal sheet production” will rank higher than one that only mentions “metal sheet” once.

How Veridion boosts relevance further

On top of the base score, we apply additional boosts when matches occur in high-priority data points:

  • Matches in the product name or product description fields are given extra weight
  • These fields signal higher product relevance and help surface stronger results

For example, for a query like "palm oil” and “food industry”, a result that mentions “manufacturing of coconut and palm oil for the food and beverage industry” in the product description will be ranked higher.


2. Intent-based category alignment (via UNSPSC and topic metadata)

To enhance semantic alignment, we apply a second layer of scoring based on query intent and product category fit:

  • The system runs statistical analysis using the United Nations Standard Products and Services Code (UNSPSC) to infer the most likely product categories associated with the query.
  • Matches that align with these statistically inferred categories are boosted in the final ranking.
  • When available, explicit metadata (e.g., user-provided intent) is also used to clarify ambiguous queries.

This mechanism helps surface results that are not only textually relevant, but also structurally appropriate to the product domain being searched.


3. Supplier-level ranking signals

Once relevance and intent are established, we apply additional ranking signals based on the credibility and focus of the supplier:

  • Product portfolio alignment: Companies where the matched product is a core part of their offering — not just an incidental mention — are ranked higher.
  • Digital presence: A strong online presence (e.g., a well-maintained website, product-rich profile, and active domain) contributes positively to the supplier’s rank, as they are more likely to be reliable, market-active entities.
  • Company size: When competing matches are otherwise equal, we favor larger or more established companies, based on employee count, revenue, and operational presence.

Together, these layers produce a ranked result set that reflects textual relevance, user intent, and supplier strength.


⚠️ Restrictions

Please be aware of the following constraints when using the Company products filter in conjunction with other filters:

  • The company_products filter cannot be enclosed within an or wrapper.

This precaution is taken to prevent mixed result types. This means that queries related to products should return results containing product-related information, while non-product queries should not include product fields in their results.

  • The placement of the company_products filter must always be at the root level of the filters object, positioned directly under the first and rule.

This practice is instrumental in clarifying intent (e.g., "I'm seeking manufacturing companies") and mitigating any potential conflicts between filters.


📖

Reference

To view all available filter relations and accepted types, please check the Filter Relations section.