# Overview

> Part of the Cowliss docs. Markdown for every page: append `index.md` to its URL. Site map: /llms.txt

<!-- GENERATED by apps/docs/scripts/generate-api-reference.ts. Do not edit. Regenerate with `pnpm -F cowliss-docs generate`. -->

The overview answers how the organization is doing in one call: new people, events, deliveries, list signups, broadcasts sent and their open rate, for the last 30 days and the 30 before them, across every app. People are profiles created in the window, merged ones left out. Deliveries are sends whose outcome is known (delivered, bounced or complained, failed), dry runs left out. Subscribers count signups to any list, not netted against people who left. The open rate is the opens of the broadcasts that started in the window over what they sent, and is null when they sent nothing. The route requires session-token authentication.

## GET /v1/overview

The organization's last 30 days against the 30 before

**Auth:** Session token.

**Response 200**

```json
{
  "data": {
    "current": {
      "people": 42,
      "events": 42,
      "deliveries": 42,
      "subscribers": 42,
      "broadcastsSent": 42,
      "openRate": 42
    },
    "previous": {
      "people": 42,
      "events": 42,
      "deliveries": 42,
      "subscribers": 42,
      "broadcastsSent": 42,
      "openRate": 42
    }
  },
  "meta": {
    "requestId": "string",
    "nextCursor": "string",
    "hasMore": true,
    "warnings": [
      {
        "code": "string",
        "message": "string",
        "suggestion": "string"
      }
    ]
  }
}
```

| Field | Type | Required | Constraints |
| --- | --- | --- | --- |
| `data` | object | yes |  |
| `data.current` | object | yes |  |
| `data.current.people` | integer | yes |  |
| `data.current.events` | integer | yes |  |
| `data.current.deliveries` | integer | yes |  |
| `data.current.subscribers` | integer | yes |  |
| `data.current.broadcastsSent` | integer | yes |  |
| `data.current.openRate` | number \| null | yes |  |
| `data.previous` | object | yes |  |
| `data.previous.people` | integer | yes |  |
| `data.previous.events` | integer | yes |  |
| `data.previous.deliveries` | integer | yes |  |
| `data.previous.subscribers` | integer | yes |  |
| `data.previous.broadcastsSent` | integer | yes |  |
| `data.previous.openRate` | number \| null | yes |  |
| `meta` | object | no |  |
| `meta.requestId` | string | no |  |
| `meta.nextCursor` | string \| null | no |  |
| `meta.hasMore` | boolean | no |  |
| `meta.warnings` | object[] | no |  |
| `meta.warnings[]` | object | no |  |
| `meta.warnings[].code` | string | yes |  |
| `meta.warnings[].message` | string | yes |  |
| `meta.warnings[].suggestion` | string | no |  |

Errors follow the [shared envelope and code table](/api-conventions/#errors).
