---
title: Portfolio
description: Read headline pipeline, revenue and activity figures for your workspace.
product: signal
section: api
order: 24
---

# Portfolio

`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`](users-and-me.md)) 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

```bash
curl https://crm.empiraa.app/api/v1/portfolio \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```js
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
}
```
