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/companies

Request

This endpoint takes no path or query parameters. Issue a plain authenticated GET:

GET https://multiples.vc/api/private/v1/lookup/companies

Use 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}/acquisitions",
      "/companies/{id}/investments",
      "/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.