# Mailbox programs: rest, retire, warm

URL: /code/mcp/mailbox/verbs · Id: `page:code/mcp/mailbox/verbs`

> The Mailbox Verbs rest, retire, warm as MCP do programs, with inputs, result, refusals and an example.

Reference for [Mailbox](/business/nouns/mailbox), one group of [Mailbox programs](/code/mcp/mailbox).

### Mailbox.rest
Rest pauses a Mailbox’s sending when a brake fires and resumes it when the reading clears. [Verb page](/business/nouns/mailbox/rest?interface=mcp).

```text
do: return await $.Mailbox.rest(input)
```

Emits [`Mailbox.rested`](/business/events/Mailbox.rested).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `mailbox` | [Mailbox](/business/nouns/mailbox) | Yes | The Mailbox to pause. |
| `reason` | `string` | Yes | The brake that fired. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `mailbox` | [Mailbox](/business/nouns/mailbox) | Yes | The Mailbox, resting. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |

**Example**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Mailbox.rest({ mailbox: 'mailbox_93HvOnR17L', reason: 'complaints' })"
  }
}
```

### Mailbox.retire
Retire stops a Mailbox for good and keeps its address, Messages and sending history. [Verb page](/business/nouns/mailbox/retire?interface=mcp).

```text
do: return await $.Mailbox.retire(input)
```

Emits [`Mailbox.retired`](/business/events/Mailbox.retired).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `mailbox` | [Mailbox](/business/nouns/mailbox) | Yes | The Mailbox to retire. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `mailbox` | [Mailbox](/business/nouns/mailbox) | Yes | The retired Mailbox. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |

**Example**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Mailbox.retire({ mailbox: 'mailbox_93HvOnR17L' })"
  }
}
```

### Mailbox.warm
Warm ramps a new Mailbox from a few sends a day to its cap over two to four weeks. [Verb page](/business/nouns/mailbox/warm?interface=mcp).

```text
do: return await $.Mailbox.warm(input)
```

Emits [`Mailbox.warmed`](/business/events/Mailbox.warmed).

**Inputs**

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `mailbox` | [Mailbox](/business/nouns/mailbox) | Yes | The new Mailbox. |
| `cap` | `integer` | Yes | The daily sends it ramps to. |

**Returns**

| Output | Type | Required | Description |
| --- | --- | --- | --- |
| `mailbox` | [Mailbox](/business/nouns/mailbox) | Yes | The Mailbox, warming. |

**Refuses when**

| Check | Error | Fix | Then call |
| --- | --- | --- | --- |
| The key is valid, but its scopes do not allow this operation. | [`forbidden`](/code/api/errors/forbidden) | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |

**Example**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Mailbox.warm({ mailbox: 'mailbox_93HvOnR17L', cap: 1 })"
  }
}
```