| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
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.
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
| User | Module | Typical question |
|---|---|---|
| Sales and marketing ops | segmentation | How many mid-size US manufacturers sell to hospitals, and in which states? |
| Procurement and sourcing | supplier_discovery | How large is the supplier base for nitrile gloves, where is it, and how many are manufacturers rather than resellers? |
| Analysts and strategy | segmentation | How big is this market and how is it split by country, size, and industry? |
| AI agents | either | Size 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.
moduleis required. Allowed values:segmentation,supplier_discovery. Any other module, includingcompany_lookupandcompany_verification, is rejected with400: 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": {…} }
}| Distributions | Frequencies | |
|---|---|---|
| Fields | country, region, revenue, naics_4 | business_model, core_offerings, target_markets |
| Values per company | One | Several |
| A company is counted | Once, in exactly one bar | Once per value it has, in several bars |
Bars add up to total_count | Top 10 + other: yes. Fixed buckets: at most the total | No, they can add up to more |
| Remainder field | other (top-10 fields only) | more_values |
Rules for every field
total_countis the true number of companies matching the query for the module.- All counts are company counts, computed over the full matched set.
- Sorting:
toplists are sorted by count, highest first; ties are broken alphabetically bycodeorlabel, so the same query always returns the same order. Fixed buckets keep their fixed order. - Entry keys: every entry has
labelandcount.codeis 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
nullonly 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}, plusother.codeis ISO 3166-1 alpha-2;labelis 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
regionisnull, 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}, plusother.codeis ISO 3166-2 (for exampleUS-TX);labelis 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 withcount: 0. - No
other: companies without a revenue estimate are not counted.
label | Range (USD) |
|---|---|
<$1M | under 1,000,000 |
$1M–10M | 1,000,000 to under 10,000,000 |
$10M–100M | 10,000,000 to under 100,000,000 |
$100M–1B | 100,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}, plusother.labelis 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}, plusmore_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_valuesis 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.
labelis the taxonomy label exactly as written, which is also the exact value the filter accepts, so it can be passed straight into thecompany_business_modelfilter (for examplenot_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.
| Situation | What comes back |
|---|---|
| Fewer than 10 distinct values in a top-10 field | All values present; other: 0 |
| Fewer than 10 distinct values in a frequency | All values present; more_values: 0 |
| Matched set spans several countries | region: 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 companies | total_count: 0; distributions and frequencies are null |
Error responses
400 Bad Request, wheremoduleis missing, or is notsegmentationorsupplier_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.

