Portfolio
Read headline pipeline, revenue and activity figures for your workspace.
GET /portfolio returns the workspace's headline sales figures, the same totals Signal's Portfolio page is built on. Use it to feed dashboards and reports without paging through every Deal.
Get portfolio figures#
GET /portfolio · Scope: portfolio:read
Figures are calculated when you call the endpoint. Whether a Deal is open, won or lost comes from its pipeline stage's is_won and is_lost flags. Amounts are in the workspace's currency (see GET /me) and add up Deal value as stored, whatever its value_period.
This endpoint returns its fields in
camelCase, unlike the rest of the API.
The portfolio object#
| Field | Type | Notes |
|---|---|---|
totalPipeline |
number | Sum of value across open Deals. |
wonRevenue |
number | Sum of value across won Deals. |
lostRevenue |
number | Sum of value across lost Deals. |
avgDealSize |
number | wonRevenue divided by the number of won Deals; 0 when there are none. |
winRate |
number | Won Deals as a percentage of won plus lost Deals, to one decimal place; 0 when there are none. |
totalDeals |
integer | All Deals. |
openDeals |
integer | |
wonDeals |
integer | |
lostDeals |
integer | |
accountsTotal |
integer | Number of Accounts. |
prospectsTotal |
integer | Number of prospect contacts. |
activitiesThisMonth |
integer | Activities that happen (or happened) in the current calendar month. |
Example#
curl https://crm.empiraa.app/api/v1/portfolio \
-H "Authorization: Bearer YOUR_API_KEY"
const res = await fetch("https://crm.empiraa.app/api/v1/portfolio", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json();
console.log(`Win rate: ${data.winRate}%`);
Response 200#
JSON
{
"data": {
"totalPipeline": 1284500,
"wonRevenue": 642000,
"lostRevenue": 215500,
"avgDealSize": 32100,
"winRate": 66.7,
"totalDeals": 112,
"openDeals": 62,
"wonDeals": 20,
"lostDeals": 10,
"accountsTotal": 184,
"prospectsTotal": 1290,
"activitiesThisMonth": 341
},
"meta": { "cursor": null },
"error": null
}

