Reports
The revenue report: won, lost and open deals over a period, by stage, by source, by lost reason and by teammate. It is read-only.
Scopes: reports:read to read. It is read-only.
The report object
periodobjectThe window the report covers.
summaryobjectCounts and values. win_rate_pct is null when nothing closed. no_amount counts deals with no amount, which are not in value.
by_stagearray of objectOpen deals per stage, in your pipeline’s order.
by_sourcearray of objectWhere deals came from, and what each source won.
lost_reasonsarray of objectWhy deals were lost, counted. "unrecorded" when no reason was given.
by_reparray of objectPer teammate, with unowned deals as their own row (seat_id null).
{
"period": {
"days": 90,
"since": "2026-07-09T09:00:00.000Z",
"until": "2026-10-07T09:00:00.000Z"
},
"summary": {
"open": {
"count": 23,
"value": 687700,
"no_amount": 2
},
"won": {
"count": 6,
"value": 179400,
"no_amount": 0
},
"lost": {
"count": 9,
"value": 211000,
"no_amount": 1
},
"created": {
"count": 31,
"value": 902300,
"no_amount": 3
},
"win_rate_pct": 40,
"median_cycle_days": 34,
"average_won_value": 29900,
"currency": "USD"
},
"by_stage": [
{
"stage": "discovery",
"label": "Discovery",
"count": 14,
"value": 418600
},
{
"stage": "proposal",
"label": "Proposal",
"count": 6,
"value": 179400
},
{
"stage": "commit",
"label": "Commit",
"count": 3,
"value": 89700
}
],
"by_source": [
{
"source": "manual",
"open": 12,
"open_value": 358800,
"won": 4,
"won_value": 119600,
"lost": 5,
"win_rate_pct": 44
}
],
"lost_reasons": [
{
"reason": "no_budget",
"count": 4,
"value": 96000
}
],
"by_rep": [
{
"seat_id": "66e0f1a2e4b0a1b2c3d40a0b",
"name": "Asha Rao",
"open": 9,
"open_value": 269100,
"won": 3,
"won_value": 89700,
"lost": 2
}
]
}Endpoints
Revenue report
Won revenue, pipeline and win rate over a period.
daysintegerHow far back, in days. Default 90.
400invalid_request, unknown_fields, reason_required or unsupported_version.
401authentication_required or invalid_key.
403missing_scope, forbidden, seat_inactive or organisation_inactive.
429rate_limited. Wait Retry-After seconds.
500internal_error.
curl "https://api.useworkloom.com/api/public/v1/reports/revenue" \
-H "Authorization: Bearer $WORKLOOM_KEY"const res = await fetch("https://api.useworkloom.com/api/public/v1/reports/revenue", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.WORKLOOM_KEY}`
}
});
const data = await res.json();import os, requests
res = requests.get(
"https://api.useworkloom.com/api/public/v1/reports/revenue",
headers={"Authorization": f"Bearer {os.environ['WORKLOOM_KEY']}"},
)
data = res.json(){
"data": {
"period": {
"days": 90,
"since": "2026-07-09T09:00:00.000Z",
"until": "2026-10-07T09:00:00.000Z"
},
"summary": {
"open": {
"count": 23,
"value": 687700,
"no_amount": 2
},
"won": {
"count": 6,
"value": 179400,
"no_amount": 0
},
"lost": {
"count": 9,
"value": 211000,
"no_amount": 1
},
"created": {
"count": 31,
"value": 902300,
"no_amount": 3
},
"win_rate_pct": 40,
"median_cycle_days": 34,
"average_won_value": 29900,
"currency": "USD"
},
"by_stage": [
{
"stage": "discovery",
"label": "Discovery",
"count": 14,
"value": 418600
},
{
"stage": "proposal",
"label": "Proposal",
"count": 6,
"value": 179400
},
{
"stage": "commit",
"label": "Commit",
"count": 3,
"value": 89700
}
],
"by_source": [
{
"source": "manual",
"open": 12,
"open_value": 358800,
"won": 4,
"won_value": 119600,
"lost": 5,
"win_rate_pct": 44
}
],
"lost_reasons": [
{
"reason": "no_budget",
"count": 4,
"value": 96000
}
],
"by_rep": [
{
"seat_id": "66e0f1a2e4b0a1b2c3d40a0b",
"name": "Asha Rao",
"open": 9,
"open_value": 269100,
"won": 3,
"won_value": 89700,
"lost": 2
}
]
}
}