---
title: "Subscriptions"
description: "The newsletters and mailing lists the mailbox receives."
url: "https://openemail.uk/docs/mcp/tools/subscriptions"
area: "MCP server"
category: "Tools"
---

# Subscriptions

The newsletters and mailing lists the mailbox receives.

## Subscriptions tools

| Tool | What it does |
| --- | --- |
| listSubscriptions | The senders of newsletters and mailing lists, one row per sender and the address it writes to, with how much mail each sent and how it lets you unsubscribe. |
| listSubscriptionDomains | The same, one row per sender domain, with how many of its senders can be unsubscribed without a person opening a page. |
| unsubscribeSubscription | Unsubscribe from one sender the way it asks for. A sender that only offers a page returns its link for a person to open. |
| unsubscribeSubscriptionDomain | Unsubscribe from every sender on a domain that takes a one-click request or an email, and count the rest. |
| unsubscribeThread | Unsubscribe from the sender of a thread, as the Unsubscribe button of the reading pane does. |
| moveSubscription | Move everything a sender sent to the archive, the Bin or a label, and with `future` keep moving its new mail with a rule. |

> Reading needs “Read threads and messages” (`threads:read`), and unsubscribing and moving need “Label, read and archive threads” (`threads:write`). Keeping new mail moving makes a rule, which also needs “Create, edit and reorder mail rules” (`rules:write`). A client limited to some addresses reaches only the subscriptions delivered to them.

> Unsubscribing sends a request or an email to the sender, and nothing here takes it back. In the app’s chat, `unsubscribeSubscriptionDomain` always asks first, and the other changes ask unless you asked for them.

## Reference

### `listSubscriptions`

The newsletters and mailing lists the mailbox receives, as the Subscriptions page shows them: one row per sender and the address it writes to, with how much mail it sent, how much is unread and how it lets you unsubscribe. status is active (the default) or unsubscribed. query searches the sender, sort is recent, most, unread or name, and offset pages on.

- Scopes: `threads:read`.
- The app's assistant runs it without asking.
- Toolkit: `subscriptions`.

**Inputs**

- `status` (`string`, one of `"active"`, `"unsubscribed"`)
- `query` (`string`, up to 200 characters)
- `sort` (`string`, one of `"recent"`, `"most"`, `"unread"`, `"name"`)
- `limit` (`integer`, at least 1, at most 200)
- `offset` (`integer`, at least 0)
- `address` (`string`, 3 to 320 characters)

Also available in: API [`GET /subscriptions`](https://openemail.uk/docs/api/reference/subscriptions#get-subscriptions); SDK [`subscriptions.list()`](https://openemail.uk/docs/sdk/reference/subscriptions#list).

### `listSubscriptionDomains`

The same subscriptions grouped by sender domain, so a company that writes from several addresses is one row, with how many of its senders can be unsubscribed without a person opening a page. Takes the same filters as listSubscriptions.

- Scopes: `threads:read`.
- The app's assistant runs it without asking.
- Toolkit: `subscriptions`.

**Inputs**

- `status` (`string`, one of `"active"`, `"unsubscribed"`)
- `query` (`string`, up to 200 characters)
- `sort` (`string`, one of `"recent"`, `"most"`, `"unread"`, `"name"`)
- `limit` (`integer`, at least 1, at most 200)
- `offset` (`integer`, at least 0)
- `address` (`string`, 3 to 320 characters)

Also available in: API [`GET /subscriptions/domains`](https://openemail.uk/docs/api/reference/subscriptions#get-subscriptions-domains); SDK [`subscriptions.listDomains()`](https://openemail.uk/docs/sdk/reference/subscriptions#listDomains).

### `unsubscribeSubscription`

Unsubscribe from one sender the way it asks for: a one-click request when it offers one, otherwise an unsubscribe email from the address the mail arrived at. A sender that only offers a page returns its link, which a person has to open. bin also moves every conversation from the sender to the Bin. Take the id from listSubscriptions.

- Scopes: `threads:write`.
- The app's assistant asks first unless you asked for it.
- Toolkit: `subscriptions`.

**Inputs**

- `id` (`string`, required, 1 to 64 characters)
- `bin` (`boolean`)

Also available in: API [`POST /subscriptions/{id}/unsubscribe`](https://openemail.uk/docs/api/reference/subscriptions#post-subscriptions-id-unsubscribe); SDK [`subscriptions.unsubscribe()`](https://openemail.uk/docs/sdk/reference/subscriptions#unsubscribe).

### `unsubscribeSubscriptionDomain`

Unsubscribe from every sender on one domain that can be unsubscribed without a person opening a page, as the domain view of the Subscriptions page does. Senders that only offer a page are skipped and counted. bin also moves their conversations to the Bin, and address keeps it to the subscriptions delivered to one address.

- Scopes: `threads:write`.
- The app's assistant always asks first.
- Toolkit: `subscriptions`.

**Inputs**

- `domain` (`string`, required, 1 to 253 characters)
- `address` (`string`, 3 to 320 characters)
- `bin` (`boolean`)

Also available in: API [`POST /subscriptions/domains/{domain}/unsubscribe`](https://openemail.uk/docs/api/reference/subscriptions#post-subscriptions-domains-domain-unsubscribe); SDK [`subscriptions.unsubscribeDomain()`](https://openemail.uk/docs/sdk/reference/subscriptions#unsubscribeDomain).

### `unsubscribeThread`

Unsubscribe from the sender of an email thread, as the Unsubscribe button of the reading pane does, from the newest message in it that carries an unsubscribe header.

- Scopes: `threads:write`.
- The app's assistant asks first unless you asked for it.
- Toolkit: `subscriptions`.

**Inputs**

- `threadId` (`string`, required, 1 to 200 characters)

Also available in: API [`POST /threads/{id}/unsubscribe`](https://openemail.uk/docs/api/reference/subscriptions#post-threads-id-unsubscribe); SDK [`threads.unsubscribe()`](https://openemail.uk/docs/sdk/reference/threads#unsubscribe).

### `moveSubscription`

Move every conversation from one sender to the archive, the Bin or a label. future, true by default, also makes a rule that keeps doing it to new mail from the sender, which needs permission to change rules, and false drops such a rule. labelId is the label for destination label, from getUserLabels.

- Scopes: `threads:write`.
- The app's assistant asks first unless you asked for it.
- Toolkit: `subscriptions`.

**Inputs**

- `id` (`string`, required, 1 to 64 characters)
- `destination` (`string`, required, one of `"archive"`, `"bin"`, `"label"`)
- `labelId` (`string`, 1 to 200 characters)
- `future` (`boolean`)
- `ruleName` (`string`, up to 100 characters)

Also available in: API [`POST /subscriptions/{id}/move`](https://openemail.uk/docs/api/reference/subscriptions#post-subscriptions-id-move); SDK [`subscriptions.move()`](https://openemail.uk/docs/sdk/reference/subscriptions#move).
