Transaction Filters and Vocabulary
Introduction
GET /lookup/transactions is the discovery endpoint for the transactions resource. It returns the exact set of filter fields you can send to POST /transactions and POST /transactions/aggregate, the type and operators each field accepts, the enum vocabulary for category fields (deal types, deal subtypes, regions), the valid sort keys, and the aggregate methodology constants (metrics, time buckets, small-sample suppression, outlier rule). Call it once to drive a UI's filter controls or to confirm valid values before building a query - it returns no transaction data itself.
Set up
Endpoint
GET https://multiples.vc/api/private/v1/lookup/transactions
Request - no path or query parameters. This is a static vocabulary document; a single authenticated call returns everything.
GET https://multiples.vc/api/private/v1/lookup/transactions

There is nothing to filter or paginate. The shape of the response is fixed; only the enum values lists grow over time as new categories appear in the dataset.
How to read the result - each entry in filters tells you how to use that field on POST /transactions:
|
element |
meaning |
|---|---|
|
|
The key to put in the |
|
|
Value type the field expects (see types below). |
|
|
How the value is matched. |
|
|
Present only on enum-backed fields. The full allowed vocabulary - send values exactly as shown. |
|
|
Present only on the few fields that need a usage note (units, change-feed semantics). |
Field type values you will see here: array_uuid, array_string, number, date, datetime, boolean.
Response - the live document (this endpoint returns no null/empty keys to drop):
{
"data": {
"filters": [
{
"field": "id",
"type": "array_uuid",
"operators": [
"in"
]
},
{
"field": "target_id",
"type": "array_uuid",
"operators": [
"in"
]
},
{
"field": "investor_id",
"type": "array_uuid",
"operators": [
"in"
],
"description": "Companies that participated as a lead investor or buyer."
},
{
"field": "deal_type",
"type": "array_string",
"operators": [
"in"
],
"values": [
"Early",
"Growth",
"M&A",
"Public listing",
"Secondary",
"Venture"
]
},
{
"field": "deal_subtype",
"type": "array_string",
"operators": [
"in"
],
"values": [
"Angel",
"ICO",
"PE buyout",
"Pre-seed",
"Secondary - private",
"Secondary - public",
"Seed",
"Series A",
"Series B",
"Series C",
"Series D",
"Series E",
"Series F",
"Series G",
"Series H",
"Series I",
"Series J",
"Strategic M&A",
"Strategic investment",
"Undisclosed stage"
]
},
{
"field": "date_from",
"type": "date",
"operators": [
"gte"
]
},
{
"field": "date_to",
"type": "date",
"operators": [
"lte"
]
},
{
"field": "valuation_min",
"type": "number",
"operators": [
"gte"
],
"description": "Millions USD."
},
{
"field": "valuation_max",
"type": "number",
"operators": [
"lte"
]
},
{
"field": "raised_min",
"type": "number",
"operators": [
"gte"
]
},
{
"field": "raised_max",
"type": "number",
"operators": [
"lte"
]
},
{
"field": "revenue_min",
"type": "number",
"operators": [
"gte"
]
},
{
"field": "revenue_max",
"type": "number",
"operators": [
"lte"
]
},
{
"field": "ebitda_min",
"type": "number",
"operators": [
"gte"
]
},
{
"field": "ebitda_max",
"type": "number",
"operators": [
"lte"
]
},
{
"field": "ev_revenue_min",
"type": "number",
"operators": [
"gte"
]
},
{
"field": "ev_revenue_max",
"type": "number",
"operators": [
"lte"
]
},
{
"field": "ev_ebitda_min",
"type": "number",
"operators": [
"gte"
]
},
{
"field": "ev_ebitda_max",
"type": "number",
"operators": [
"lte"
]
},
{
"field": "target_country",
"type": "array_string",
"operators": [
"in"
]
},
{
"field": "target_region",
"type": "array_string",
"operators": [
"in"
],
"values": [
"Africa",
"Central Asia",
"East Asia",
"Eastern Europe",
"Latin America",
"Middle East",
"North America",
"Northern Europe",
"Oceania",
"South Asia",
"South-East Asia",
"Southern Europe",
"Western Europe"
]
},
{
"field": "target_verticals",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "target_themes",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "target_client_focus",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "target_revenue_model",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "target_company_type",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "updated_at",
"type": "datetime",
"operators": [
"gte"
],
"description": "Change-feed checkpoint."
},
{
"field": "include_deleted",
"type": "boolean",
"operators": [
"eq"
],
"description": "Default false. Set true on change-feed pulls."
}
],
"sort_fields": [
"deal_date",
"deal_valuation",
"deal_raised",
"updated_at"
],
"sub_resources": [],
"aggregate": {
"metrics": [
"ev_revenue",
"ev_ebitda",
"valuation",
"raised",
"revenue",
"ebitda"
],
"time_buckets": [
"month",
"quarter",
"year",
"none"
],
"methodology": {
"small_n_threshold": 3,
"outlier_rule": "iqr_1.5",
"default_date_range_years": 5,
"empty_buckets_returned": true
}
}
}
}
Fields - every field in the response.
Envelope
|
field |
type |
description |
|---|---|---|
|
|
array |
The filterable fields accepted by |
|
|
string[] |
Valid values for the |
|
|
string[] |
Related sub-collections for this resource. Empty for transactions - there are no transaction sub-resources. |
|
|
object |
Methodology vocabulary for |
filters[] item
|
field |
type |
description |
|---|---|---|
|
|
string |
Filter key to send on |
|
|
string |
Value type: one of |
|
|
string[] |
Match semantics: |
|
|
string[] |
Allowed enum vocabulary. Present only on enum-backed fields ( |
|
|
string |
Usage note. Present only on the four fields that need clarification ( |
Filter field reference
|
field |
type |
description |
|---|---|---|
|
|
array_uuid |
Match specific deal IDs. |
|
|
array_uuid |
Deals where one of these companies was the target / acquired / funded company. |
|
|
array_uuid |
Companies that participated as a lead investor or buyer. |
|
|
array_string |
High-level deal classification. Enum-backed. |
|
|
array_string |
Granular stage / structure. Enum-backed. |
|
|
date |
Deal-date lower / upper bound ( |
|
|
number |
Deal post-money / enterprise valuation bound. Millions USD. |
|
|
number |
Amount raised in the round. Millions USD. |
|
|
number |
Target revenue at the deal. Millions USD. |
|
|
number |
Target EBITDA at the deal. Millions USD. |
|
|
number |
EV / Revenue multiple bound. |
|
|
number |
EV / EBITDA multiple bound. |
|
|
array_string |
Target HQ country (ISO-3 codes). |
|
|
array_string |
Target macro-region. Enum-backed. |
|
|
array_string |
Target verticals - overlaps match. |
|
|
array_string |
Target themes - overlaps match. |
|
|
array_string |
Target client focus (e.g. B2B, B2C) - overlaps match. |
|
|
array_string |
Target revenue model - overlaps match. |
|
|
array_string |
Target company type - overlaps match. |
|
|
datetime |
Change-feed checkpoint: return deals updated at or after this timestamp. |
|
|
boolean |
Default false. Set true on change-feed pulls to surface soft-deleted deals. |
aggregate
|
field |
type |
description |
|---|---|---|
|
|
string[] |
Valid |
|
|
string[] |
Valid |
|
|
object |
Constants applied when computing aggregates. |
|
|
integer |
Minimum sample size per bucket. Buckets with fewer deals are suppressed ( |
|
|
string |
Outlier-trimming rule applied before computing medians ( |
|
|
integer |
Date window applied when a request omits |
|
|
boolean |
When true, time buckets with zero deals are still returned (with |

