filter query parameter with an expression string:
Expression syntax
Operators
in_all and nin_all are available only when a repeated-record filter lists
them in its discovered operators. They do not apply to scalar fields or every
relationship filter. Use nin_any when no related record may match any of the
requested values.
Examples
Filter by location
Locations are matched by numeric ID from the Dealroom location taxonomy, not by name. Look up an ID once viaGET /reference/filters/location/values and reuse
it:
entity_count is null unless you pass include_counts=true. Counting the
matching entities for every value is a separate scan per page, so it is
opt-in. Add it only when you are rendering the counts, and prefer scoping the
lookup with ?type= when you do - an untyped lookup for a broad term such as
Europe has to count across every taxonomy level at once and can time out.?type= to search a single taxonomy level - always worth
doing, and required in practice if you also ask for counts. It accepts
continent, country, state, city, and region:
type: "region", alongside genuine
geographic regions, so type=city rules them out. Five cities are still named
“London” though, and only parent_name separates those.
Filter by industry (match any)
Industries (and other taxonomy values) live behind thetaxonomy_id filter. Pass
?type=industry on the values endpoint to scope the lookup, then pipe-separate
the resulting IDs in the filter expression:
type parameter accepts: industry, sub_industry, sector, technology,
business_model, income_stream, client_focus, sdg, ownership,
techstack_category, growth_stage, investor_type.
Combine multiple filters
Useand() to require all conditions:
Related-record filter
Filter companies by the total size of the rounds their investors participated in:Enum filters
Some filters accept a value from a fixed, closed set rather than free text or an ID. Discover the valid values with the values endpoint — same asid_lookup filters:
name (SERIES A) or its code (series_a) as the filter value.
The following canonicalized enum filters match case-insensitively and
reject unknown values with a 400 FILTER_VALIDATION_ERROR rather than
silently returning no results:
Because matching is case-insensitive,
series a and SERIES A are equivalent:
Sorting
Use thesort parameter with a field name. Prefix with - for descending order.
A sort or filter key doesn’t always match a top-level response field.
total_funding, for example, sorts and filters companies by the value
returned at funding.total — there is no top-level total_funding field on
the entity. Check the object pages from the API Reference
overview for where a value appears in the
response.Available filters
For a complete list of all filters and sort keys grouped by scope, see the Filters & Sorting Reference. You can also fetch available filters programmatically:sub_types used for
value lookup. Explicit cross-reference filters appear in their relevant scopes;
dynamically constructible relationship paths are not listed exhaustively.
Further reading
Top fintech startups
Apply taxonomy lookup, filtering, and sorting in a complete query.
Pagination
Walk through a filtered result set without changing the query.