Multiples API
Private Companies and DealsLookup and references

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:

elementmeaning
fieldThe key to put in the filters object of your transactions request (date_from / date_to and the rest are all keys inside that same filters object).
typeValue type the field expects (see types below).
operatorsHow the value is matched. in = match any of the listed values; overlaps = array shares at least one value; gte / lte = lower / upper bound; eq = exact match.
valuesPresent only on enum-backed fields. The full allowed vocabulary - send values exactly as shown.
descriptionPresent 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

fieldtypedescription
filtersarrayThe filterable fields accepted by POST /transactions. Each item documents one field.
sort_fieldsstring[]Valid values for the sort key on POST /transactions.
sub_resourcesstring[]Related sub-collections for this resource. Empty for transactions - there are no transaction sub-resources.
aggregateobjectMethodology vocabulary for POST /transactions/aggregate.

filters[] item

fieldtypedescription
fieldstringFilter key to send on POST /transactions.
typestringValue type: one of array_uuid, array_string, number, date, datetime, boolean.
operatorsstring[]Match semantics: in, overlaps, gte, lte, or eq.
valuesstring[]Allowed enum vocabulary. Present only on enum-backed fields (deal_type, deal_subtype, target_region). Send values exactly as listed.
descriptionstringUsage note. Present only on the four fields that need clarification (investor_id, valuation_min, updated_at, include_deleted).

Filter field reference

fieldtypedescription
idarray_uuidMatch specific deal IDs.
target_idarray_uuidDeals where one of these companies was the target / acquired / funded company.
investor_idarray_uuidCompanies that participated as a lead investor or buyer.
deal_typearray_stringHigh-level deal classification. Enum-backed.
deal_subtypearray_stringGranular stage / structure. Enum-backed.
date_from / date_todateDeal-date lower / upper bound (YYYY-MM-DD).
valuation_min / valuation_maxnumberDeal post-money / enterprise valuation bound. Millions USD.
raised_min / raised_maxnumberAmount raised in the round. Millions USD.
revenue_min / revenue_maxnumberTarget revenue at the deal. Millions USD.
ebitda_min / ebitda_maxnumberTarget EBITDA at the deal. Millions USD.
ev_revenue_min / ev_revenue_maxnumberEV / Revenue multiple bound.
ev_ebitda_min / ev_ebitda_maxnumberEV / EBITDA multiple bound.
target_countryarray_stringTarget HQ country (ISO-3 codes).
target_regionarray_stringTarget macro-region. Enum-backed.
target_verticalsarray_stringTarget verticals - overlaps match.
target_themesarray_stringTarget themes - overlaps match.
target_client_focusarray_stringTarget client focus (e.g. B2B, B2C) - overlaps match.
target_revenue_modelarray_stringTarget revenue model - overlaps match.
target_company_typearray_stringTarget company type - overlaps match.
updated_atdatetimeChange-feed checkpoint: return deals updated at or after this timestamp.
include_deletedbooleanDefault false. Set true on change-feed pulls to surface soft-deleted deals.

aggregate

fieldtypedescription
metricsstring[]Valid metric values for POST /transactions/aggregate: ev_revenue, ev_ebitda, valuation, raised, revenue, ebitda.
time_bucketsstring[]Valid time_bucket values: month, quarter, year, or none (single overall bucket).
methodologyobjectConstants applied when computing aggregates.
methodology.small_n_thresholdintegerMinimum sample size per bucket. Buckets with fewer deals are suppressed (median/q1/q3 returned as null with warning: "insufficient_sample").
methodology.outlier_rulestringOutlier-trimming rule applied before computing medians (iqr_1.5 = values beyond 1.5×IQR are dropped).
methodology.default_date_range_yearsintegerDate window applied when a request omits date_from/date_to (trailing N years).
methodology.empty_buckets_returnedbooleanWhen true, time buckets with zero deals are still returned (with n: 0) so the series has no gaps.

On this page