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"]. Forcompany_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 asin. On the identity filterscompany_websiteandveridion_id,not_inis accepted only insupplier_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 likebetween,greater_than, andless_than, but also keep companies that have no value for the attribute. Each takes the same value shape as its base relation (a tuple forbetween_or_null, a single number for the others). Use them when a missing datapoint shouldn't exclude a company.
Text relations
-
matches: fuzzy match oncompany_name. Value is a single string:"value": "Siemens". Accepted only incompany_lookup. -
match_expression: structured text match, forcompany_keywordsandcompany_products. Value is a JSON object: amatchblock with anoperator(andoror) andoperands, which can nest, plus an optionalexcludeblock."value": { "match": { "operator": "or", "operands": ["green hydrogen", "electrolyzer"] } } -
match_identifier: exact product-code match, forcompany_productsonly. Value is an array of codes:"value": ["64-17-5"].
Spatial relation
-
within: proximity match oncompany_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
| Filter | Accepted relations | Notes |
|---|---|---|
veridion_id | in, not_in | Veridion's primary key. in is an identity anchor; not_in only in supplier_discovery. |
company_name | in, matches | matches (fuzzy, single value) only in company_lookup. No not_in. |
company_website | in, not_in | not_in only in supplier_discovery. |
company_location | in, not_in, within | Values are location objects ({ country, region?, city? }). Accepts strictness (see below). |
company_postcode | in, not_in | No within. |
company_type | in | Values: Public, Private. |
company_industry | in, not_in | |
company_category | in, not_in | |
company_naics_code | in, not_in | 2022 NAICS; 2, 4, or 6-digit codes. |
company_business_model | in, not_in | Controlled 25-value taxonomy. |
company_target_markets | in, not_in | Free-form target-market values (no fixed taxonomy). |
company_employee_count | between, greater_than, greater_than_or_equal, less_than, less_than_or_equal | Also the null-tolerant between_or_null, greater_than_or_null, less_than_or_null (keep companies with no value). |
company_estimated_revenue | same as employee count | |
company_year_founded | same as employee count | An exact year is between [Y, Y]. |
company_keywords | match_expression | |
company_products | match_expression, match_identifier | The 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"] }
