Running a Search summary

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

The Search Summary route returns the size and shape of a market without returning any companies. You send the same query you would send to segmentation or supplier_discovery, and you get back how many companies match, where they are, how big they are, what they do, and who they sell to.

Run in Postman



The summary works two ways: as a read on a market, and as a step before pulling a list:

  • On its own, it answers how big a market is and what it looks like without returning any company data. How large the supplier base for a product is, how a segment splits across countries, company sizes, and industries, who those companies sell to: for market sizing, territory planning, or a feasibility check, the summary is the answer, and no list is needed. Because it never returns a company profile, it is a light way to quantify and explore a market on its own.
  • Used before pulling a list, the same call lets you refine a supplier discovery or segmentation query: size the set, spot any off-target results, and tighten the filters, then pull the list once the shape is right.

Typical scenarios

UserModuleTypical question
Sales and marketing opssegmentationHow many mid-size US manufacturers sell to hospitals, and in which states?
Procurement and sourcingsupplier_discoveryHow large is the supplier base for nitrile gloves, where is it, and how many are manufacturers rather than resellers?
Analysts and strategysegmentationHow big is this market and how is it split by country, size, and industry?
AI agentseitherSize the market, adjust filters, and only then pull the list the user asked for.

Request rules

  • Same request body as the Search Query request. See How to build a search query for composing the filter tree.
  • module is required. Allowed values: segmentation, supplier_discovery. Any other module, including company_lookup and company_verification, is rejected with 400: those start from companies you already have, so an aggregation over them describes no market.
  • The module defines the matched set. Segmentation and supplier discovery can match different companies for the same filters, so the summary is always computed for the module you send.
{
  "module": "segmentation",
  "query": {
    "and": [
      { "attribute": "company_business_model", "relation": "in", "value": ["Software-as-a-Service"] },
      { "attribute": "company_location", "relation": "in", "value": [{ "country": "DE" }, { "country": "AT" }, { "country": "CH" }], "strictness": 1 },
      { "attribute": "company_employee_count", "relation": "between", "value": [50, 500] },
      { "attribute": "company_estimated_revenue", "relation": "greater_than_or_equal", "value": 10000000 }
    ]
  }
}

Successful responses

A successful call returns 200 OK with a response in three parts: the true count, distributions (one value per company), and frequencies (several values per company).

{
  "total_count": 1842,
  "distributions": { "country": {…}, "region": {…}, "revenue": {…}, "naics_4": {…} },
  "frequencies":   { "business_model": {…}, "core_offerings": {…}, "target_markets": {…} }
}
DistributionsFrequencies
Fieldscountry, region, revenue, naics_4business_model, core_offerings, target_markets
Values per companyOneSeveral
A company is countedOnce, in exactly one barOnce per value it has, in several bars
Bars add up to total_countTop 10 + other: yes. Fixed buckets: at most the totalNo, they can add up to more
Remainder fieldother (top-10 fields only)more_values

Rules for every field

  • total_count is the true number of companies matching the query for the module.
  • All counts are company counts, computed over the full matched set.
  • Sorting: top lists are sorted by count, highest first; ties are broken alphabetically by code or label, so the same query always returns the same order. Fixed buckets keep their fixed order.
  • Entry keys: every entry has label and count. code is added only where a standard code exists: ISO 3166-1 for country, ISO 3166-2 for region, NAICS for industry.
  • The response shape is fixed. Every field is always present. A field is null only when it does not apply (region on a multi-country set) or when aggregations are withheld (small or empty sets; see Edge cases).

Distributions

Each company falls into at most one bar of a distribution. Top-10 fields (country, region, NAICS) add up exactly to total_count, because other holds everything outside the top 10, including companies whose value is not known. Fixed-bucket fields (revenue) have no other; companies without a value are left out, so their buckets can add up to less than the total.

Country

Where the matched companies are headquartered.

  • Based on: the company's HQ country.
  • Format: top = up to 10 entries {code, label, count}, plus other. code is ISO 3166-1 alpha-2; label is the English country name.
  • other: all remaining companies, including those with no known HQ country.
  • Always present. A single-country set returns one entry and other: 0.
"country": {
  "top": [
    { "code": "US", "label": "United States", "count": 610 },
    { "code": "DE", "label": "Germany",       "count": 188 }
  ],
  "other": 212
}

Region

Where the companies sit inside one country, for territory planning.

  • Based on: the company's HQ state or region.
  • When it is returned: only when every matched company has its HQ in the same country. Otherwise region is null, whether the single country comes from a filter or the query just happens to land in one country.
  • Format: top = up to 10 entries {code, label, count}, plus other. code is ISO 3166-2 (for example US-TX); label is the region name.
"region": {
  "top": [
    { "code": "US-TX", "label": "Texas",      "count": 214 },
    { "code": "US-CA", "label": "California", "count": 198 }
  ],
  "other": 668
}

Revenue

How big the companies are, by estimated annual revenue in USD.

  • Format: buckets = always the same 5 entries {label, count}, in the order below, including buckets with count: 0.
  • No other: companies without a revenue estimate are not counted.
labelRange (USD)
<$1Munder 1,000,000
$1M–10M1,000,000 to under 10,000,000
$10M–100M10,000,000 to under 100,000,000
$100M–1B100,000,000 to under 1,000,000,000
$1B+1,000,000,000 and above
"revenue": {
  "buckets": [
    { "label": "<$1M",      "count": 612 },
    { "label": "$1M–10M",   "count": 588 },
    { "label": "$10M–100M", "count": 301 },
    { "label": "$100M–1B",  "count": 92 },
    { "label": "$1B+",      "count": 21 }
  ]
}

NAICS (4-digit)

What industries the matched companies are in. This is the main way to spot off-target results: an unexpected industry in the top 10 usually means a filter is too broad.

  • Based on: the company's primary NAICS code, cut to its 4-digit industry group. Only the primary code counts, so each company appears once.
  • Why 4-digit: 6-digit codes split even small sets into many tiny bars; 2-digit codes are too coarse (most results would be "Manufacturing").
  • Format: top = up to 10 entries {code, label, count}, plus other. label is the official NAICS title of the 4-digit group.
"naics_4": {
  "top": [
    { "code": "3399", "label": "Other Miscellaneous Manufacturing", "count": 402 },
    { "code": "3152", "label": "Cut and Sew Apparel Manufacturing", "count": 288 }
  ],
  "other": 181
}

Frequencies

A frequency answers "how many of the matched companies have this value". A company with several values is counted in several bars, so the bars can add up to more than total_count. A company that is both Manufacturing and Business-to-Business counts in both bars.

Rules for every frequency

  • Format: top = up to 10 entries {label, count}, plus more_values.
  • Counted per company, not per mention. A company that lists the same value three times counts once.
  • No other. A company can have values inside and outside the top 10, so no single number describes "the rest" honestly.
  • more_values is the number of distinct values beyond the top 10. It is a count of values, not of companies.

Business model

How the matched companies make money and whom they sell to.

  • Based on: Veridion's business model taxonomy, 25 labels. A company can have several.
  • label is the taxonomy label exactly as written, which is also the exact value the filter accepts, so it can be passed straight into the company_business_model filter (for example not_in: ["Retail"] to drop retailers from a supplier search).
"business_model": {
  "top": [
    { "label": "Business-to-Business", "count": 1402 },
    { "label": "Manufacturing",        "count": 1288 }
  ],
  "more_values": 4
}

Core offerings

What the matched companies actually make or sell. This is the closest check that the query is catching the right companies: "work boot" in a glove search is a sign the query is too broad. Based on the company's core offerings (free text).

"core_offerings": {
  "top": [
    { "label": "industrial glove", "count": 612 },
    { "label": "safety glove",     "count": 498 }
  ],
  "more_values": 1286
}

Target markets

Who the matched companies sell to: the industries and customer types they serve. Most useful for segmentation. Based on the company's target markets (free text).

"target_markets": {
  "top": [
    { "label": "construction", "count": 688 },
    { "label": "healthcare",   "count": 541 }
  ],
  "more_values": 412
}

Edge cases

The response shape never changes; only the values do.

SituationWhat comes back
Fewer than 10 distinct values in a top-10 fieldAll values present; other: 0
Fewer than 10 distinct values in a frequencyAll values present; more_values: 0
Matched set spans several countriesregion: null; everything else as normal
Matched set below the minimum size (fewer than 10 companies)total_count only; distributions and frequencies are null
No matching companiestotal_count: 0; distributions and frequencies are null

Error responses

  • 400 Bad Request, where module is missing, or is not segmentation or supplier_discovery.
  • other standard HTTP error responses, detailed in the Response codes section.

Any error response follows a specific structure. Please see the Error response format section for more details.

Headers
string
required

Your individual OAuth Bearer token (e.g. Authorization: Bearer <your_access_token>).

Response

Language
LoadingLoading…
Response
Choose an example:
application/json