Company Filters and Vocabulary
Introduction
This endpoint returns the machine-readable contract for filtering and sorting companies: every filter field accepted by POST /companies, the operator and value type each one expects, the enum vocabulary for enum-backed fields (such as region), the available sort keys, and the company sub-resources you can drill into.
Read it once when integrating, or poll it to keep client-side validation and dropdowns in sync with the API.
It is a discovery document only and accepts no parameters.
Set up
Endpoint
GET https://multiples.vc/api/private/v1/lookup/companiesRequest
This endpoint takes no path or query parameters. Issue a plain authenticated GET:
GET https://multiples.vc/api/private/v1/lookup/companiesUse the returned filters to build a filters object for POST /companies. Match each filter's operators to its type:
| operator | applies to | meaning |
|---|---|---|
eq | string, boolean | Exact match. |
in | array_string, array_uuid | Value is one of the supplied list. |
ilike | string | Case-insensitive substring match. |
gte | number, date, datetime | Greater than or equal to. |
lte | number, date | Less than or equal to. |
overlaps | array_string | Row's array shares at least one value with the supplied list. |
Response
{
"data": {
"filters": [
{
"field": "id",
"type": "array_uuid",
"operators": [
"in"
],
"description": "Batch lookup of company UUIDs."
},
{
"field": "name",
"type": "string",
"operators": [
"ilike",
"eq"
],
"description": "Case-insensitive substring match on the company name."
},
{
"field": "country",
"type": "array_string",
"operators": [
"in"
],
"description": "ISO-3 country codes (e.g. USA, GBR, DEU)."
},
{
"field": "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": "verticals",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "themes",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "client_focus",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "revenue_model",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "company_type",
"type": "array_string",
"operators": [
"overlaps"
]
},
{
"field": "ownership",
"type": "string",
"operators": [
"eq"
],
"description": "Exact match on ownership label (e.g. 'Publicly listed', 'Privately held')."
},
{
"field": "active",
"type": "boolean",
"operators": [
"eq"
]
},
{
"field": "founded_min",
"type": "number",
"operators": [
"gte"
],
"description": "Founding-year lower bound."
},
{
"field": "founded_max",
"type": "number",
"operators": [
"lte"
]
},
{
"field": "ipoed_from",
"type": "date",
"operators": [
"gte"
]
},
{
"field": "ipoed_to",
"type": "date",
"operators": [
"lte"
]
},
{
"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": [
"name",
"founded",
"ipoed",
"updated_at"
],
"sub_resources": [
"/companies/{id}/fundings",
"/companies/{id}/sellside",
"/companies/{id}/buyside",
"/companies/{id}/investors"
]
}
}Fields
Top-level
| field | type | description |
|---|---|---|
filters | array<object> | Every filter field accepted by POST /companies. Each entry describes one field's value type, supported operators, and (when enum-backed) its allowed values. |
sort_fields | array<string> | Field names accepted by the sort parameter on POST /companies. Sort is a string of the form field:asc or field:desc (e.g. founded:desc, name:asc); direction defaults to desc when omitted. |
sub_resources | array<string> | Relative paths of per-company sub-resources. Substitute a company id for {id} to fetch its fundings, acquisitions, investments, or investors. |
filters[] entry
| field | type | description |
|---|---|---|
field | string | The filter key to use inside the filters object of a POST /companies request. |
type | string | Value type: one of string, number, boolean, date, datetime, uuid, array_string, array_uuid. |
operators | array<string> | Operators this field supports: one or more of eq, in, gte, lte, between, overlaps, ilike. |
values | array<string> | Present only when the field is enum-backed; the complete set of accepted values. |
description | string | Human-readable note on how the filter behaves. Returned only for filters that carry one. |
Filter vocabulary
The filters array is the canonical list of company filters. Notable fields:
| field | type | description |
|---|---|---|
id | array_uuid | Batch lookup of company UUIDs. |
name | string | Case-insensitive substring match on the company name. |
country | array_string | ISO-3 country codes (e.g. USA, GBR, DEU). |
region | array_string | Macro region. Enum-backed; allowed values are listed in values. |
verticals | array_string | Sector verticals; overlaps matches companies tagged with any supplied value. |
themes | array_string | Investment themes; overlaps semantics. |
client_focus | array_string | Primary customer segment (e.g. B2B, B2C); overlaps semantics. |
revenue_model | array_string | Business / revenue model; overlaps semantics. |
company_type | array_string | Company classification; overlaps semantics. |
ownership | string | Exact match on ownership label (e.g. 'Publicly listed', 'Privately held'). |
active | boolean | Filters by active vs. inactive status. |
founded_min | number | Founding-year lower bound. |
founded_max | number | Founding-year upper bound. |
ipoed_from | date | IPO date lower bound (inclusive). |
ipoed_to | date | IPO date upper bound (inclusive). |
updated_at | datetime | Change-feed checkpoint: return records changed at or after this timestamp. |
include_deleted | boolean | Default false. Set true on change-feed pulls to include soft-deleted records. |
The verticals, themes, client_focus, revenue_model, and company_type fields are open vocabularies and do not return a fixed values list. Use POST /companies to discover the values present in the dataset.