The aggregate endpoints and
GET /analytics/timeseries are being promoted
into the versioned public contract. Until that lands they are absent from the
API Reference tab, so use this page as their reference. The funding-analytics
and investor-matching endpoints stay outside the contract: their parameters
and response shapes may change based on open beta feedback.Choose an analytics endpoint
Use a
/data endpoint instead when you need individual records rather than a
calculated result. Browse the
API Reference overview for the published data
and reference endpoints.
Run a grouped aggregate
This request counts funding rounds by company HQ country for rounds reported in 2024. It returns at most ten groups, ordered by the count from highest to lowest.datacontains the calculated rows.query_infoechoes the source, dimensions, and metrics used for the query.currencyidentifies the currency used for monetary values.
total_groups is the number of groups returned, not a count of every possible
group. Aggregate results do not use cursor or offset pagination. Use limit to
return between 1 and 500 groups; the default is 25.
How an aggregate request works
Every aggregate request combines four parts:sourceselects the records being analysed.filternarrows those records before metrics are calculated.group_bysplits the matching records into result rows.metricdefines the calculation for each row.
source=funding-rounds, filter=year[eq]:2024,
group_by=sector, and metric=sum:amount returns the total funding raised in
2024 for each sector.
Sources
Metrics
Metric support depends on the source. These are the supported combinations:
Write a metric as
operation:field, such as sum:amount. count does not need
a field. You can request more than one metric by separating them with commas:
sum:amount becomes
sum_amount.
An unsupported metric returns a validation error that lists the metrics available
for the selected source.
Dimensions
Dimensions also depend on the source. Common examples include:
Both aggregate endpoints accept multiple comma-separated dimensions:
dimension. With multiple
dimensions, each grouping key is named explicitly:
Filters
filter narrows the source records before grouping and calculation. It uses the
same structured syntax as list endpoints, including nested and(...) and or(...)
expressions.
/data/companies
is not automatically valid for every aggregate source. See Filtering
and the Filters and sorting reference for the
syntax and compatibility tables.
Sorting and limits
Usesort with a metric result key or dimension. Prefix the key with - for
descending order. If you omit sort, results are sorted by the first metric in
descending order.
limit to cap grouped results. There is no next page: aggregates return the
top 1 to 500 groups selected by the sort order.
Currency
Addcurrency=EUR to convert monetary metrics and monetary filter thresholds.
The top-level currency response field confirms which currency was applied.
currency parameter takes precedence over an active ecosystem’s
configured currency. Requests without either use USD. See
Currencies for supported codes and
conversion behaviour.
Calculate several labeled metrics
Use the multi-metric endpoint when you need custom result labels, per-metric filters, percentages, or totals without any grouping. Eachmetric parameter has the form label,metric_type. Repeat it to request
several calculations:
Three levels of filtering
The multi-metric endpoint can filter at three different stages:
For example,
metric_having=unicorn_share[gt]:2 keeps only countries where the
calculated unicorn_share is greater than 2. It does not remove source records
before the percentage is calculated.
metric_having accepts gt, gte, lt, lte, eq, and neq. It requires
group_by, and repeated conditions are combined with AND.
Flat totals
Omitgroup_by to calculate totals across all matching records:
data array:
Other analytics shapes
The generic aggregate endpoints cover totals and grouped breakdowns. Use the purpose-built endpoints when their response shape matches the product you are building:GET /analytics/timeseriesreturns one yearly series for employees, revenue, valuation, EBITDA, VC funding, unicorns, or VC-backed companies.GET /analytics/funding-analytics/heatmapreturns sparse matrix cells and axis totals for two funding dimensions.GET /analytics/funding-analytics/round-transitionsreturns movements between funding stages and the median time between rounds.GET /analytics/funding-analytics/funnelreturns company counts across nine funding buckets, optionally split by a dimension.GET /analytics/matching/investorsranks investors against a target company and deal profile.
Common mistakes
- Do not assume every source supports every metric, dimension, or filter.
- Do not use
total_groupsas a count of groups beyond the requestedlimit. - Do not send
metric_havingwithoutgroup_by. - Do not filter a percentage metric directly. Apply
metric_filterto the numerator or denominator metrics it references. - Do not fetch and sum
/datarecords when an aggregate can answer the same question within the API’s pagination limits.
Further reading
Filtering
Narrow the records included in an aggregate with the filter language.
Currencies
Request monetary metrics and grouped results in a supported currency.