---
title: "nextmail analytics"
description: "Every command in this namespace, with its arguments, flags and examples."
url: "https://nextmail.sh/docs/cli/reference/analytics"
area: "CLI"
category: "Reference"
---

# nextmail analytics

Every command in this namespace, with its arguments, flags and examples.

## Commands

### `nextmail analytics mailbox`

Read how mail arrives

```bash
nextmail analytics mailbox [flags]
```

Resolves how mail arrives, as the Analytics page of the app shows it, for a window, the last 30 days unless `from` and `to` say otherwise: how many conversations arrived and when, per `grain` bucket in `days` and per hour of the day in `hours`, the addresses they arrived at, the senders who wrote most, how many conversations wait on a reply for 1, 3 or 7 days or more, and the folders.

`days` is sparse: a bucket in which nothing arrived has no entry, so a chart must fill the gaps. `--offset-minutes` shifts the boundaries so days and hours break where the reader's do, and `series` holds the per bucket counts of the top addresses and senders so each can be charted.

A key limited to particular addresses counts only the mail that arrived at them, and `address` narrows everything to one address. An address the key does not reach counts nothing rather than failing.

- Scopes: `threads:read`.
- Needs a sign-in.

**Flags**

- `--from <when>`: The start of the window. Defaults to 30 days before `to`.
- `--to <when>`: The end of the window. Defaults to now.
- `--offset-minutes <n>` (default `0`): Minutes east of UTC, from -840 to 840, defaulting to 0. Pass `-new Date().getTimezoneOffset()` for the local zone.
- `--grain <value>` (default `"day"`): Bucket width: `minute`, `hour` or `day`, defaulting to `day`.
- `--address <value>`: Count only the mail delivered to this address.

**Examples**

```bash
nextmail analytics mailbox
```

Print the raw JSON

```bash
nextmail analytics mailbox --json
```

Also available in: API [`GET /analytics/mailbox`](https://nextmail.sh/docs/api/reference/analytics#get-analytics-mailbox); TypeScript [`nextmail.analytics.mailbox()`](https://nextmail.sh/docs/sdk/reference/analytics#mailbox); Python [`analytics.mailbox()`](https://nextmail.sh/docs/python/reference/analytics#mailbox); Ruby [`analytics.mailbox`](https://nextmail.sh/docs/ruby/reference/analytics#mailbox); PHP [`analytics->mailbox`](https://nextmail.sh/docs/php/reference/analytics#mailbox); Go [`Analytics.Mailbox`](https://nextmail.sh/docs/go/reference/analytics#mailbox); Java [`analytics().mailbox`](https://nextmail.sh/docs/java/reference/analytics#mailbox); C# [`Analytics.MailboxAsync`](https://nextmail.sh/docs/csharp/reference/analytics#mailbox).

### `nextmail analytics sending`

Read what became of sent mail

```bash
nextmail analytics sending [flags]
```

Resolves the numbers behind the Analytics page of the app: what the workspace sent inside a window and what became of it. `totals` adds up the sends, recipients and test sends and how many were delivered, failed, bounced, complained about, uncertain or still pending, `days` cuts sent, delivered, failed, bounced and complained to `grain` buckets, and `statuses`, `sources`, `streams`, `senders` and `suppressed` break the window down.

The window is `days`, 30 by default and at most 365, or `minutes`, which wins when both are sent. It ends at `until`, now by default, and starts at `since` when that is sent, or else at the beginning of its oldest bucket. Both come back as `since` and `until`. `--offset-minutes` shifts the bucket boundaries so days break where the reader's do.

A key limited to particular addresses counts only the mail sent from them, and `address` narrows everything to one address. `recipient` and `tag` narrow it further, to the mail that went to one address or carried one tag.

- Scopes: `emails:read`.
- Needs a sign-in.

**Flags**

- `--days <n>` (default `30`): Window length in days, from 1 to 365, defaulting to 30.
- `--minutes <n>`: Window length in minutes, which wins over `days`.
- `--offset-minutes <n>` (default `0`): Minutes east of UTC, from -840 to 840, defaulting to 0.
- `--grain <value>` (default `"day"`): Bucket width: `minute`, `hour` or `day`, defaulting to `day`.
- `--address <value>`: Count only the mail sent from this address.
- `--since <when>`: Start of the window, which wins over `days` and `minutes`. A window spans at most 365 days.
- `--until <when>`: End of the window, not included, defaulting to now. `since` after `until` is a 422 `invalid_parameter`.
- `--recipient <value>`: Count only the mail that went to this address, and only its delivery to that address.
- `--tag <value>`: Count only the mail sent with this tag: `name` for any value, or `name:value` for one value.

**Examples**

```bash
nextmail analytics sending
```

With optional flags

```bash
nextmail analytics sending --days 7
```

Print the raw JSON

```bash
nextmail analytics sending --json
```

Also available in: API [`GET /analytics/sending`](https://nextmail.sh/docs/api/reference/analytics#get-analytics-sending); TypeScript [`nextmail.analytics.sending()`](https://nextmail.sh/docs/sdk/reference/analytics#sending); Python [`analytics.sending()`](https://nextmail.sh/docs/python/reference/analytics#sending); Ruby [`analytics.sending`](https://nextmail.sh/docs/ruby/reference/analytics#sending); PHP [`analytics->sending`](https://nextmail.sh/docs/php/reference/analytics#sending); Go [`Analytics.Sending`](https://nextmail.sh/docs/go/reference/analytics#sending); Java [`analytics().sending`](https://nextmail.sh/docs/java/reference/analytics#sending); C# [`Analytics.SendingAsync`](https://nextmail.sh/docs/csharp/reference/analytics#sending).
