resend-cli 2.8.1 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "resend-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"description": "The official CLI for Resend",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"esbuild": "0.28.1",
|
|
47
47
|
"esbuild-wasm": "0.28.0",
|
|
48
48
|
"picocolors": "1.1.1",
|
|
49
|
-
"resend": "6.
|
|
49
|
+
"resend": "6.18.0"
|
|
50
50
|
},
|
|
51
51
|
"pkg": {
|
|
52
52
|
"scripts": [
|
|
@@ -13,7 +13,7 @@ metadata:
|
|
|
13
13
|
author: resend
|
|
14
14
|
# Skill version is independent from the CLI/package.json version —
|
|
15
15
|
# bump it on skill content changes, not CLI releases.
|
|
16
|
-
version: "2.
|
|
16
|
+
version: "2.5.0"
|
|
17
17
|
homepage: https://resend.com/docs/cli-agents
|
|
18
18
|
source: https://github.com/resend/resend-cli
|
|
19
19
|
openclaw:
|
|
@@ -57,6 +57,7 @@ references:
|
|
|
57
57
|
- references/templates.md
|
|
58
58
|
- references/topics.md
|
|
59
59
|
- references/logs.md
|
|
60
|
+
- references/suppressions.md
|
|
60
61
|
- references/webhooks.md
|
|
61
62
|
- references/auth.md
|
|
62
63
|
- references/workflows.md
|
|
@@ -143,6 +144,7 @@ Auth resolves: `--api-key` flag > `RESEND_API_KEY` env > config file (`resend lo
|
|
|
143
144
|
| `emails receiving` | list, get, attachments, forward, listen |
|
|
144
145
|
| `domains` | create, verify, get, claim, update, delete, list |
|
|
145
146
|
| `logs` | list, get, open |
|
|
147
|
+
| `suppressions` _(beta)_ | list, add, get, delete, batch — requires account enrollment |
|
|
146
148
|
| `api-keys` | create, list, delete |
|
|
147
149
|
| `automations` | create, get, list, update, delete, stop, open, runs |
|
|
148
150
|
| `events` | create, get, list, update, delete, send, open |
|
|
@@ -167,7 +169,7 @@ Read the matching reference file for detailed flags and output shapes.
|
|
|
167
169
|
| 1 | **Forgetting `--yes` on delete commands** | All `delete`/`rm` subcommands require `--yes` in non-interactive mode — otherwise the CLI exits with an error |
|
|
168
170
|
| 2 | **Not saving webhook `signing_secret`** | `webhooks create` shows the secret once only — it cannot be retrieved later. Capture it from command output immediately |
|
|
169
171
|
| 3 | **Omitting `--quiet` in CI** | Without `-q`, spinners and status text still go to stderr (not stdout). Use `-q` for JSON on stdout with no spinner noise on stderr |
|
|
170
|
-
| 4 | **
|
|
172
|
+
| 4 | **Passing `--scheduled-at` as a flag to batch** | There is no `--scheduled-at` flag on `emails batch` — set `scheduled_at` per-email in the JSON file instead |
|
|
171
173
|
| 5 | **Expecting `domains list` to include DNS records** | List returns summaries only — use `domains get <id>` for the full `records[]` array |
|
|
172
174
|
| 6 | **Sending a dashboard-created broadcast via CLI** | Only API-created broadcasts can be sent with `broadcasts send` — dashboard broadcasts must be sent from the dashboard |
|
|
173
175
|
| 7 | **Passing `--events` to `webhooks update` expecting additive behavior** | `--events` replaces the entire subscription list — always pass the complete set |
|
|
@@ -220,6 +222,7 @@ resend doctor -q
|
|
|
220
222
|
- **Defining contact properties** → [references/contact-properties.md](references/contact-properties.md)
|
|
221
223
|
- **Working with templates** → [references/templates.md](references/templates.md)
|
|
222
224
|
- **Viewing API request logs** → [references/logs.md](references/logs.md)
|
|
225
|
+
- **Managing the suppression list** (beta) → [references/suppressions.md](references/suppressions.md)
|
|
223
226
|
- **Creating automations or sending events** → [references/automations.md](references/automations.md)
|
|
224
227
|
- **Setting up webhooks or listening for events** → [references/webhooks.md](references/webhooks.md)
|
|
225
228
|
- **Auth, profiles, or health checks** → [references/auth.md](references/auth.md)
|
|
@@ -44,6 +44,7 @@ Retrieve a sent email by ID.
|
|
|
44
44
|
{
|
|
45
45
|
"object": "email",
|
|
46
46
|
"id": "<uuid>",
|
|
47
|
+
"message_id": "<111-222-333@email.example.com>",
|
|
47
48
|
"from": "you@domain.com",
|
|
48
49
|
"to": ["user@example.com"],
|
|
49
50
|
"subject": "Hello",
|
|
@@ -65,7 +66,7 @@ List sent emails.
|
|
|
65
66
|
| `--after <cursor>` | string | — | Forward pagination cursor |
|
|
66
67
|
| `--before <cursor>` | string | — | Backward pagination cursor |
|
|
67
68
|
|
|
68
|
-
**Output:** `{"object":"list","data":[...],"has_more":bool}`
|
|
69
|
+
**Output:** `{"object":"list","data":[{"id":"...","message_id":"<111-222-333@email.example.com>",...}],"has_more":bool}`
|
|
69
70
|
|
|
70
71
|
---
|
|
71
72
|
|
|
@@ -84,14 +85,16 @@ Send up to 100 emails in a single request.
|
|
|
84
85
|
```json
|
|
85
86
|
[
|
|
86
87
|
{"from":"a@domain.com","to":["b@example.com"],"subject":"Hi","text":"Body"},
|
|
87
|
-
{"from":"a@domain.com","to":["c@example.com"],"subject":"Hi","html":"<b>Body</b>"}
|
|
88
|
+
{"from":"a@domain.com","to":["c@example.com"],"subject":"Hi","html":"<b>Body</b>","scheduled_at":"in 1 hour","tags":[{"name":"campaign","value":"welcome"}]}
|
|
88
89
|
]
|
|
89
90
|
```
|
|
90
91
|
|
|
92
|
+
Per-email `scheduled_at` (ISO 8601 or natural language) and `tags` are supported.
|
|
93
|
+
|
|
91
94
|
**Output (success):** `[{"id":"..."},{"id":"..."}]`
|
|
92
95
|
**Output (permissive with errors):** `{"data":[{"id":"..."}],"errors":[{"index":1,"message":"..."}]}`
|
|
93
96
|
|
|
94
|
-
**Constraints:** Max 100 emails. Attachments
|
|
97
|
+
**Constraints:** Max 100 emails. Attachments not supported per-email.
|
|
95
98
|
|
|
96
99
|
---
|
|
97
100
|
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# suppressions
|
|
2
|
+
|
|
3
|
+
Detailed flag specifications for `resend suppressions` commands.
|
|
4
|
+
|
|
5
|
+
> **Beta:** Suppressions is a pre-GA feature gated per account. Commands appear in
|
|
6
|
+
> `--help` but return an API error unless the suppression list is enabled for your
|
|
7
|
+
> account. Reach out to Resend to join the beta.
|
|
8
|
+
|
|
9
|
+
Suppressions block future sends to an address. Each entry has an `origin`:
|
|
10
|
+
|
|
11
|
+
| Origin | Meaning |
|
|
12
|
+
|--------|---------|
|
|
13
|
+
| `bounce` | Added automatically after a hard bounce |
|
|
14
|
+
| `complaint` | Added automatically after a spam complaint |
|
|
15
|
+
| `manual` | Added by you via `suppressions add` |
|
|
16
|
+
|
|
17
|
+
`get` and `delete` accept **either** a suppression ID **or** the email address.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## suppressions list
|
|
22
|
+
|
|
23
|
+
List suppressed addresses (default subcommand — `resend suppressions` alone runs it).
|
|
24
|
+
|
|
25
|
+
| Flag | Type | Default | Description |
|
|
26
|
+
|------|------|---------|-------------|
|
|
27
|
+
| `--limit <n>` | number | 10 | Max results, 1-100 |
|
|
28
|
+
| `--after <cursor>` | string | — | Forward pagination cursor |
|
|
29
|
+
| `--before <cursor>` | string | — | Backward pagination cursor |
|
|
30
|
+
| `--origin <origin>` | string | — | Filter: `bounce` \| `complaint` \| `manual` |
|
|
31
|
+
|
|
32
|
+
**Alias:** `ls`
|
|
33
|
+
|
|
34
|
+
**Output:** `{"object":"list","has_more":false,"data":[{"object":"suppression","id":"...","email":"...","origin":"bounce|complaint|manual","source_id":"..."|null,"created_at":"..."}]}`
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## suppressions add
|
|
39
|
+
|
|
40
|
+
Suppress a single email address (origin `manual`).
|
|
41
|
+
|
|
42
|
+
**Argument:** `<email>` — email address to suppress (required in non-interactive mode)
|
|
43
|
+
|
|
44
|
+
**Output:** `{"object":"suppression","id":"..."}`
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## suppressions get
|
|
49
|
+
|
|
50
|
+
Retrieve a single suppression.
|
|
51
|
+
|
|
52
|
+
**Argument:** `<id-or-email>` — suppression ID or the suppressed email address
|
|
53
|
+
|
|
54
|
+
**Output:** `{"object":"suppression","id":"...","email":"...","origin":"...","source_id":"..."|null,"created_at":"..."}`
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## suppressions delete
|
|
59
|
+
|
|
60
|
+
Remove a suppression so Resend can send to the address again.
|
|
61
|
+
|
|
62
|
+
**Argument:** `<id-or-email>` — suppression ID or the suppressed email address
|
|
63
|
+
|
|
64
|
+
| Flag | Type | Required | Description |
|
|
65
|
+
|------|------|----------|-------------|
|
|
66
|
+
| `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
|
|
67
|
+
|
|
68
|
+
**Alias:** `rm`
|
|
69
|
+
|
|
70
|
+
**Output:** `{"object":"suppression","id":"...","deleted":true}`
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## suppressions batch add
|
|
75
|
+
|
|
76
|
+
Suppress up to 100 addresses in one request.
|
|
77
|
+
|
|
78
|
+
| Flag | Type | Required | Description |
|
|
79
|
+
|------|------|----------|-------------|
|
|
80
|
+
| `--file <path>` | string | Yes (non-interactive) | JSON file with an array of email strings (`-` for stdin) |
|
|
81
|
+
|
|
82
|
+
**File format:** `["a@example.com", "b@example.com"]`
|
|
83
|
+
|
|
84
|
+
**Output:** `{"data":[{"object":"suppression","id":"..."}]}`
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## suppressions batch remove
|
|
89
|
+
|
|
90
|
+
Remove up to 100 suppressions in one request.
|
|
91
|
+
|
|
92
|
+
| Flag | Type | Required | Description |
|
|
93
|
+
|------|------|----------|-------------|
|
|
94
|
+
| `--file <path>` | string | Yes (non-interactive) | JSON file with an array of strings (`-` for stdin) |
|
|
95
|
+
| `--ids` | boolean | No | Treat file entries as suppression IDs instead of emails |
|
|
96
|
+
|
|
97
|
+
**Alias:** `rm`
|
|
98
|
+
|
|
99
|
+
**File format:** `["a@example.com", "b@example.com"]` (or IDs with `--ids`)
|
|
100
|
+
|
|
101
|
+
**Output:** `{"data":[{"object":"suppression","id":"...","deleted":true}]}`
|