How the Search API works

The Search API turns a question about companies into the set of companies that answers it, across Veridion's global company data. You build that question from a set of predefined filters and run it through the module that fits your intent; Search returns the matching companies, a total count, and a cursor to page through them.

📘

Same query, same result

A given set of filters returns the same companies in the same order every time, aside from scheduled data refreshes. Ranking is rule-based and no language model runs at query time, so results are reproducible: you can cache them, diff them between runs, or depend on them in an automated pipeline.

Common use cases

Identify the right company. Resolve an exact website or veridion_id to the single company behind it, pin the intended company when a name is shared across countries, or turn a messy, misspelled name into the canonical company and its veridion_id.

Verify and screen a company at onboarding. Confirm that a company you can precisely identify is who it claims to be, and check its firmographic, location, and keyword claims in one call; relevant for underwriting, KYB, and third-party risk checks.

Size a market and build target lists. Count and list the companies that match a firmographic profile — by industry, geography, size, and business model — to size a market (TAM/SAM) or build an ICP target list.

Find and qualify suppliers of a product. Find the companies that make or supply what you need, then narrow by location, size, and certifications to a shortlist — and exclude suppliers you already work with.

One engine, four modules

There is a single search engine underneath. You reach it through four intent-named modules — one for each of the use cases above, each built around the question a buyer is asking:

  • company_lookup — which company is this? Resolve a name or identifier to one company.
  • company_verification — is this the company, and do these claims hold? Confirm an identified company and check claims.
  • segmentation — how big is this market, and who's in it? Size and list a population by profile.
  • supplier_discovery — who makes or supplies X? Find suppliers of a product or service.

Every request names exactly one module. A module is an entry gate onto the shared engine: it names your intent and constrains which filters and relations are legal for that intent. If you're not sure which module fits your question, start with Choosing a module.

Modules use filters

You tell a module what you're looking for with filters.

What a filter is

A filter is a single condition on a company — an attribute, a relation, and a value — for example "industry is 541512", "estimated revenue is at least 5,000,000", or "products match plastic cups". A module takes one or more filters and returns the companies that satisfy them.

Filters match extracted data, not raw fields

A filter runs against the datapoints Veridion extracts and maintains for each company, not against a single raw field. Some filters check one datapoint e.g. a company's founding year. Others draw on several at once: a product filter weighs product names, descriptions, business tags, and website content together to decide whether a company really offers what you're looking for.

Every module has a required anchor

Each module requires an anchor filter suited to its intent — a product for supplier discovery, an identity for lookup and verification, at least one profile filter for segmentation — and accepts or rejects the rest accordingly. How to build a search query covers how to combine filters into complex queries, and Filters & relations documents every filter and the relations it accepts.

How results are ordered

Results are ranked in two layers:

  1. Relevance to your query. The first and most important layer is how well each company matches what you asked for — in particular the text and product criteria. The most relevant companies come first.
  2. Substance, as a tie-breaker. When companies are similarly relevant, Search favors larger companies and those with a stronger digital presence, so the most substantial matches surface toward the top.

This ranking is deterministic: the same query produces the same order every time. Where a query has no text to rank on (a segmentation built purely from firmographic filters, for instance) results come back in a stable, deterministic sort rather than a relevance order.

📘

Searching vs. matching

Search discovers and verifies companies by criteria. If you already have one specific company and need the single canonical record resolved from messy input and fully enriched, that's the Match & Enrich API, not Search — company_lookup returns candidates to choose from, while Match & Enrich returns the one resolved company.