Filter relations

Every filter in a query is an attribute, a relation, and a value. This page covers what each relation means, the value it takes, and which filters accept it.

{ "attribute": "company_naics_code", "relation": "in", "value": ["332710"] }

The relation decides how your value is compared against the company's data, and it determines the shape the value must take. This page is the reference for every relation. For how filters combine into a query, see How to build a search query; for what each attribute means, see its filter page.

Membership relations

Match a value against a set. Both take an array, even for a single value (["X"]).

  • in: the company's value is one of the values you provide. Example: "value": ["332710"]. For company_location, the array holds location objects rather than strings: "value": [{ "country": "DE" }].
  • not_in: the company's value is none of the values you provide. Same value shape as in. On the identity filters company_website and veridion_id, not_in is accepted only in supplier_discovery, where it excludes specific companies from the results.

Numeric relations

For company_employee_count, company_estimated_revenue, and company_year_founded.

  • between: within an inclusive range. Value is a two-number tuple: "value": [50, 500].
  • greater_than, greater_than_or_equal, less_than, less_than_or_equal: compare against a single number: "value": 4000000.
  • Null-tolerant variants (between_or_null, greater_than_or_null, less_than_or_null): behave like between, greater_than, and less_than, but also keep companies that have no value for the attribute. Each takes the same value shape as its base relation (a tuple for between_or_null, a single number for the others). Use them when a missing datapoint shouldn't exclude a company.

Text relations

  • matches: fuzzy match on company_name. Value is a single string: "value": "Siemens". Accepted only in company_lookup.

  • match_expression: structured text match, for company_keywords and company_products. Value is a JSON object: a match block with an operator (and or or) and operands, which can nest, plus an optional exclude block.

    "value": { "match": { "operator": "or", "operands": ["green hydrogen", "electrolyzer"] } }
  • match_identifier: exact product-code match, for company_products only. Value is an array of codes: "value": ["64-17-5"].

Spatial relation

  • within: proximity match on company_location. Value is a JSON object with an address, a radius, and a unit:

    "value": { "address": "Rheinufer, Ludwigshafen am Rhein, Germany", "radius": 25, "unit": "km" }

Which relations each filter accepts

FilterAccepted relationsNotes
veridion_idin, not_inVeridion's primary key. in is an identity anchor; not_in only in supplier_discovery.
company_namein, matchesmatches (fuzzy, single value) only in company_lookup. No not_in.
company_websitein, not_innot_in only in supplier_discovery.
company_locationin, not_in, withinValues are location objects ({ country, region?, city? }). Accepts strictness (see below).
company_postcodein, not_inNo within.
company_typeinValues: Public, Private.
company_industryin, not_in
company_categoryin, not_in
company_naics_codein, not_in2022 NAICS; 2, 4, or 6-digit codes.
company_business_modelin, not_inControlled 25-value taxonomy.
company_target_marketsin, not_inFree-form target-market values (no fixed taxonomy).
company_employee_countbetween, greater_than, greater_than_or_equal, less_than, less_than_or_equalAlso the null-tolerant between_or_null, greater_than_or_null, less_than_or_null (keep companies with no value).
company_estimated_revenuesame as employee count
company_year_foundedsame as employee countAn exact year is between [Y, Y].
company_keywordsmatch_expression
company_productsmatch_expression, match_identifierThe two are mutually exclusive in one filter. Accepts supplier_types (see below).

Modifier keys

A few filters accept an extra key on the filter object, alongside attribute, relation, and value.

strictness (on company_location) selects which of a company's locations the filter tests:

  • 1: the HQ only (where the company is based).
  • 2: non-HQ locations only.
  • 3: any location (where the company operates).

The default is 1 (HQ only) for every relation.

{ "attribute": "company_location", "relation": "in", "value": [{ "country": "DE" }], "strictness": 1 }

supplier_types (on company_products) narrows results to companies that play a given role for the matched product, for example manufacturer, distributor, service_provider, or software_provider. It takes an array:

{ "attribute": "company_products", "relation": "match_expression", "value": {...}, "supplier_types": ["manufacturer", "distributor"] }