Skip to main content
The Dealroom API exposes composable aggregate endpoints that compute grouped metrics server-side — counts, sums, medians, percentiles — across companies, funding rounds, valuations, founders, and investors. Use them instead of paging through raw entities when you want totals, rankings, distributions, or cross-tabulations.

When to use aggregates vs raw entities

The aggregate endpoints share the same filter expression syntax as the entity endpoints — every filter you can apply to /data/entities also applies here.

Single-metric aggregate

Groups rows by one or more dimensions and computes a single metric.

Path parameter

Query parameters

Example — top 10 countries by deal count, 2024

Multi-metric aggregate

Compute multiple labeled metrics in a single call — flat (totals) or grouped (breakdown). Optionally apply per-metric filters for conditional counting (e.g. “deals” vs “unicorn deals” in the same query).

Query parameters

Example — hero stats for the funding dashboard

Flat response (no group_by) — data is a single-element array, matching the shape of the grouped response so clients can use one parser for both:
Read totals with response.data[0].deals — there’s always exactly one row.

Example — top 5 sectors by total funding, with deal counts

Grouped response:

Heatmap (2D cross-tabulation)

Two-dimensional grouping with per-axis top-N filtering and sparse-matrix output. Use when you want a year × sector or country × stage matrix for a heatmap visualisation.

Query parameters

Available dimensions: round_year, round_quarter, round_type, standardized_round, amount_range, stage, country, continent, city, region, sector, standardized_sector, technology, industry_tags, business_model, income_stream, client_focus, investor_type, investor_country, investor_continent.

Example — funding by year × sector

cells is sparse — only non-zero [x_index, y_index, value] triples are returned. x_totals / y_totals are the marginal totals along each axis.

Other analytics endpoints

These return purpose-built shapes that can’t be expressed via the generic aggregates. See the API Reference for full parameter and response schemas.

Available dimensions

Available dimensions vary by source. Across all aggregate endpoints, common dimension groups: For the full list of dimensions exposed by each endpoint, check the API Reference. To list available values for any filterable dimension at runtime, call GET /reference/filters/{key}/values (where {key} is the filter key, e.g. location, tag_id, growth_stage).

Performance tips

  • Always filter before aggregating. An unfiltered aggregate on a large source can hit the 15s query timeout.
  • Prefer the multi-metric endpoint over multiple single-metric calls — fewer round trips, a single SQL query server-side.
  • For dashboard-style views, fan out 3–8 aggregate calls in parallel from your client. Each query is small and independently cacheable.
  • Use count_distinct:entity_id when you want unique-company counts across rounds (rather than the deal count count).