Skip to main content
The analytics endpoints answer questions such as “How much funding did each sector raise?” or “Which countries have the most startups?” without requiring you to download and process every matching record. Start with an aggregate when you need a total or breakdown. The other analytics endpoints return purpose-built shapes for time series, funding visualisations, and investor matching.
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.
A successful response has three top-level fields:
  • data contains the calculated rows.
  • query_info echoes the source, dimensions, and metrics used for the query.
  • currency identifies 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:
  1. source selects the records being analysed.
  2. filter narrows those records before metrics are calculated.
  3. group_by splits the matching records into result rows.
  4. metric defines the calculation for each row.
For example, a query with 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:
The result keys replace the colon with an underscore, so 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:
With one dimension, each result row uses the key dimension. With multiple dimensions, each grouping key is named explicitly:
An unsupported dimension returns a validation error for the selected source.

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.
The available filters depend on the source. A filter valid for /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

Use sort 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.
Use limit to cap grouped results. There is no next page: aggregates return the top 1 to 500 groups selected by the sort order.

Currency

Add currency=EUR to convert monetary metrics and monetary filter thresholds. The top-level currency response field confirms which currency was applied.
An explicit 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. Each metric parameter has the form label,metric_type. Repeat it to request several calculations:
The response uses your labels as field names:

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

Omit group_by to calculate totals across all matching records:
Flat results still use a one-element 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/timeseries returns one yearly series for employees, revenue, valuation, EBITDA, VC funding, unicorns, or VC-backed companies.
  • GET /analytics/funding-analytics/heatmap returns sparse matrix cells and axis totals for two funding dimensions.
  • GET /analytics/funding-analytics/round-transitions returns movements between funding stages and the median time between rounds.
  • GET /analytics/funding-analytics/funnel returns company counts across nine funding buckets, optionally split by a dimension.
  • GET /analytics/matching/investors ranks investors against a target company and deal profile.
These endpoints use the same authentication headers as the rest of the API. Their permissions, available parameters, and specialised response shapes differ from the generic aggregate model.

Common mistakes

  • Do not assume every source supports every metric, dimension, or filter.
  • Do not use total_groups as a count of groups beyond the requested limit.
  • Do not send metric_having without group_by.
  • Do not filter a percentage metric directly. Apply metric_filter to the numerator or denominator metrics it references.
  • Do not fetch and sum /data records 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.