Get a deal metric
/analytics/deals/{id}Returns one named count or breakdown over your deals, as a value or a series; each slug and its item shape is described under id.
Use GET /analytics/deals/{deal_id}/overview for one deal, or GET /analytics/reports/deals for a row per deal. Counts the deals GET /deals lists for you; figures come from the analytics store, which trails live data until synced. Each slug takes one range filter, named under id; another is 422. An unknown metric is a 404. It only reads: nothing is sent or written.
Path parameters
- One of:
What to count. Each value is described under x-enum-descriptions.
status-counts,published-count,structure-counts,asset-class-counts,sector-counts,total-funding-sought,draft,awaiting-approval,live-count,closed-count,published-since,funded-count,uptake,unseen-count,enquiries,average-days-to-complete,status-series,uptake-series,capital-raising-series,launched-vs-logins
Query parameters
Only deals created in a range, written
filter[created_at][gte]=2026-10-01. Takes gt, gte, lt and lte. With none, all deals count. Taken by the slugs whose range is created_at; any other slug answers 422.Only deals published in a range, written
filter[published_at][gte]=2026-10-01. Takes gt, gte, lt and lte. Taken only by published-since.Only events in a range, written
filter[occurred_at][gte]=2026-10-01. Takes gt, gte, lt and lte. Taken by enquiries and the three time series, where it sets the window of buckets; with none, a series covers the last 12 months, 12 weeks or 30 days ending now.- One of:
Only deals in this status: draft, awaiting_approval, ready_to_publish, published, retired, in_progress or rejected. Takes one status. Taken only by structure-counts, asset-class-counts and sector-counts, which also base their percentages on it; any other slug answers 422.
draft,awaiting_approval,ready_to_publish,published,retired,in_progress,rejected - One of:
The bucket size of a time series: day, week (starting Monday) or month. Defaults to month. Taken only by uptake-series, capital-raising-series and launched-vs-logins; any other slug answers 422. A window of more than 366 buckets is 422
validation_failedonfilter.occurred_at.day,week,monthDefault:"month"
Responses
{
"data": {
"metric": "status-counts",
"category": "deals",
"filter": {
"created_at": {
"gte": "2026-01-01T00:00:00Z"
}
},
"series": [
{
"key": "draft",
"value": 9
},
{
"key": "awaiting_approval",
"value": 3
},
{
"key": "ready_to_publish",
"value": 0
},
{
"key": "published",
"value": 24
},
{
"key": "retired",
"value": 15
},
{
"key": "in_progress",
"value": 2
},
{
"key": "rejected",
"value": 0
}
]
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per
problem, or a code documented on the operation.
Examples
curl https://your-org-domain/kong/core/api/v2/analytics/deals/{id}\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"