resend-cli 2.22.0-preview-inboxes.2 → 2.23.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.22.0-preview-inboxes.2",
3
+ "version": "2.23.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.28.1-preview-inboxes.1"
49
+ "resend": "6.31.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.19.0"
16
+ version: "2.15.0"
17
17
  homepage: https://resend.com/docs/cli-agents
18
18
  source: https://github.com/resend/resend-cli
19
19
  openclaw:
@@ -59,7 +59,6 @@ references:
59
59
  - references/logs.md
60
60
  - references/careers.md
61
61
  - references/suppressions.md
62
- - references/inboxes.md
63
62
  - references/webhooks.md
64
63
  - references/auth.md
65
64
  - references/workflows.md
@@ -135,9 +134,9 @@ Auth resolves: `RESEND_API_KEY` env > config file (`resend login --key`). Use `-
135
134
  | `emails receiving` | list, get, attachments, forward, listen |
136
135
  | `domains` | create, verify, get, claim, update, delete, list |
137
136
  | `logs` | list, get, open |
137
+ | `usage` | Show account-level usage and quota limits (emails, contacts, segments, broadcasts, AI credits, automation runs, domains, rate limit) |
138
138
  | `careers` | list, apply — browse open positions at Resend and apply |
139
139
  | `suppressions` _(beta)_ | list, add, get, delete, batch — requires account enrollment |
140
- | `inboxes` _(beta)_ | create, list, get, update, delete, threads (list, get, update, delete, emails get/reply/forward), labels, drafts — requires account enrollment |
141
140
  | `api-keys` | create, list, update, delete |
142
141
  | `automations` | create, get, list, update, delete, duplicate, stop, open, runs |
143
142
  | `events` | create, get, list, update, delete, send, open |
@@ -223,7 +222,6 @@ resend doctor -q
223
222
  - **Viewing API request logs** → [references/logs.md](references/logs.md)
224
223
  - **Browsing or applying to jobs at Resend** → [references/careers.md](references/careers.md)
225
224
  - **Managing the suppression list** (beta) → [references/suppressions.md](references/suppressions.md)
226
- - **Managing inboxes and received email** (beta) → [references/inboxes.md](references/inboxes.md)
227
225
  - **Creating automations or sending events** → [references/automations.md](references/automations.md)
228
226
  - **Setting up webhooks or listening for events** → [references/webhooks.md](references/webhooks.md)
229
227
  - **Auth, profiles, or health checks** → [references/auth.md](references/auth.md)
@@ -21,11 +21,12 @@ Detailed flag specifications for `resend webhooks` commands.
21
21
  | `--endpoint <url>` | string | Yes (non-interactive) | HTTPS webhook URL |
22
22
  | `--events <events...>` | string[] | Yes (non-interactive) | Event types or `all` |
23
23
 
24
- **All 19 events:**
24
+ **All 23 events:**
25
25
  - Email: `email.sent`, `email.delivered`, `email.delivery_delayed`, `email.bounced`, `email.complained`, `email.opened`, `email.clicked`, `email.failed`, `email.scheduled`, `email.suppressed`, `email.received`
26
- - Contact: `contact.created`, `contact.updated`, `contact.deleted`
26
+ - Contact: `contact.created`, `contact.updated`, `contact.deleted`, `contact.topics.updated`
27
27
  - Domain: `domain.created`, `domain.updated`, `domain.deleted`
28
28
  - Suppression: `suppression.added`, `suppression.removed`
29
+ - Topic: `topic.created`, `topic.updated`, `topic.deleted`
29
30
 
30
31
  **Output includes `signing_secret`.** `webhooks get` returns it again.
31
32
 
@@ -1,349 +0,0 @@
1
- # inboxes
2
-
3
- Detailed flag specifications for `resend inboxes` commands.
4
-
5
- > **Beta:** Inboxes is a pre-GA feature gated per account. Commands appear in
6
- > `--help` but return an API error unless inboxes is enabled for your account.
7
- > Reach out to Resend to join the beta.
8
-
9
- An inbox is an email address at one of your verified domains (with receiving
10
- enabled) that can receive email. Received messages are grouped into threads
11
- inside the inbox. Inboxes require a **full-access** API key — sending-only keys
12
- are rejected.
13
-
14
- ---
15
-
16
- ## inboxes create
17
-
18
- Create a new inbox at one of your verified domains.
19
-
20
- | Flag | Type | Required | Description |
21
- |------|------|----------|-------------|
22
- | `--email_address <address>` | string | Yes (non-interactive) | Address for the inbox, e.g. `support@yourdomain.com` |
23
- | `--name <name>` | string | No | Inbox name shown in the dashboard (max 64 chars) |
24
- | `--friendly_name <name>` | string | No | Name used when sending from this inbox, e.g. `Ada from Support` |
25
- | `--forwarding` | boolean | No | Enable forwarding — received emails are also forwarded to a generated forwarding address |
26
-
27
- **Output:** `{"object":"inbox","id":"<uuid>","name":"<name>","email_address":"<address>","domain_id":"<uuid>","forwarding_address":"<address>"|null,"unread":0,"created_at":"<date>"}`
28
-
29
- ---
30
-
31
- ## inboxes list
32
-
33
- List all inboxes (default subcommand — `resend inboxes` alone runs it).
34
-
35
- | Flag | Type | Default | Description |
36
- |------|------|---------|-------------|
37
- | `--limit <n>` | number | 10 | Max results, 1-100 |
38
- | `--after <cursor>` | string | — | Forward pagination cursor (an inbox ID) |
39
- | `--before <cursor>` | string | — | Backward pagination cursor (an inbox ID) |
40
-
41
- **Alias:** `ls`
42
-
43
- **Output:** `{"object":"list","has_more":false,"data":[{"id":"<uuid>","name":"<name>"|null,"email_address":"<address>","unread":0,"last_received":"<date>"|null}]}`
44
-
45
- ---
46
-
47
- ## inboxes get
48
-
49
- Retrieve a single inbox.
50
-
51
- **Argument:** `<id>` — inbox UUID (required in non-interactive mode)
52
-
53
- **Output:** `{"object":"inbox","id":"<uuid>","name":"<name>"|null,"email_address":"<address>","forwarding_address":"<address>"|null,"unread":0,"drafts":0,"last_received":"<date>"|null}`
54
-
55
- ---
56
-
57
- ## inboxes update
58
-
59
- Update an inbox's name or friendly name. At least one option is required.
60
- The email address cannot be changed after creation.
61
-
62
- **Argument:** `<id>` — inbox UUID
63
-
64
- | Flag | Type | Description |
65
- |------|------|-------------|
66
- | `--name <name>` | string | New inbox name (max 64 chars) |
67
- | `--friendly_name <name>` | string | New name used when sending from this inbox |
68
-
69
- **Output:** `{"object":"inbox","id":"<uuid>"}`
70
-
71
- ---
72
-
73
- ## inboxes threads list
74
-
75
- List threads in an inbox (default subcommand of `resend inboxes threads`).
76
- Threads are ordered by newest activity first.
77
-
78
- **Flags:** `--inbox_id <id>` — required in non-interactive mode
79
-
80
- | Flag | Type | Default | Description |
81
- |------|------|---------|-------------|
82
- | `--folder <folder>` | string | `inbox` | One of `inbox`, `archive`, `spam`, `sent`, `trash` |
83
- | `--query <text>` | string | — | Search subject, sender, and label names |
84
- | `--from <sender>` | string | — | Filter by sender address or name |
85
- | `--label <label_id>` | string | — | Filter by label **UUID** (not name); repeat for multiple |
86
- | `--limit <n>` | number | 10 | Max results, 1-100 |
87
- | `--after <cursor>` | string | — | Forward pagination cursor (a thread ID) |
88
- | `--before <cursor>` | string | — | Backward pagination cursor (a thread ID) |
89
-
90
- **Alias:** `ls`
91
-
92
- **Output:** `{"object":"list","has_more":false,"data":[{"id":"<uuid>","subject":"<subject>"|null,"from":"<sender>"|null,"to":[],"cc":[],"bcc":[],"labels":[],"message_count":1,"has_attachment":false,"has_draft":false,"read":false,"received_at":"<date>"}]}`
93
-
94
- ---
95
-
96
- ## inboxes threads get
97
-
98
- Retrieve a thread with every message inline, including `html` and `text`
99
- bodies. Use the message `id` values as the email ID for replies.
100
-
101
- **Flags:** `--inbox_id <id> --thread_id <id>` — required in non-interactive mode
102
-
103
- **Output:** `{"object":"inbox_thread","id":"<uuid>","subject":"<subject>"|null,"folder":"inbox","labels":[],"read":true,"messages":[{"id":"<uuid>","direction":"inbound|outbound","from":"<sender>","to":[],"cc":[],"bcc":[],"reply_to":[],"subject":"<subject>"|null,"message_id":"<message-id>"|null,"html":"<html>"|null,"text":"<text>"|null,"attachments":[],"read":true,"received_at":"<date>"}]}`
104
-
105
- ---
106
-
107
- ## inboxes threads update
108
-
109
- Mark a thread read/unread, move it, or apply a label. At least one option is
110
- required.
111
-
112
- **Flags:** `--inbox_id <id> --thread_id <id>` — required in non-interactive mode
113
-
114
- | Flag | Type | Description |
115
- |------|------|-------------|
116
- | `--read` | boolean | Mark every message in the thread as read |
117
- | `--unread` | boolean | Mark every message in the thread as unread |
118
- | `--folder <folder>` | string | Move to one of `inbox`, `archive`, `spam`, `trash` (`sent` is not a valid target) |
119
- | `--label_id <label_id>` | string | Apply this label (UUID) to the thread |
120
-
121
- **Output:** `{"object":"inbox_thread","id":"<uuid>","subject":"<subject>"|null,"folder":"<folder>","labels":[],"read":true}`
122
-
123
- ---
124
-
125
- ## inboxes threads delete
126
-
127
- Delete a thread and all of its messages.
128
-
129
- **Flags:** `--inbox_id <id> --thread_id <id>` — required in non-interactive mode
130
-
131
- | Flag | Type | Required | Description |
132
- |------|------|----------|-------------|
133
- | `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
134
-
135
- **Alias:** `rm`
136
-
137
- **Output:** `{"object":"inbox_thread","id":"<uuid>","deleted":true}`
138
-
139
- ---
140
-
141
- ## inboxes threads emails get
142
-
143
- Retrieve a single email from a thread.
144
-
145
- **Flags:** `--inbox_id <id> --thread_id <id> --email_id <id>` — required in non-interactive mode
146
-
147
- **Output:** `{"id":"<uuid>","direction":"inbound|outbound","from":"<sender>","to":[],"cc":[],"bcc":[],"reply_to":[],"subject":"<subject>"|null,"message_id":"<message-id>"|null,"html":"<html>"|null,"text":"<text>"|null,"attachments":[{"id":"<id>","filename":"<name>"|null,"size":123}],"read":true,"received_at":"<date>"}`
148
-
149
- ---
150
-
151
- ## inboxes threads emails reply
152
-
153
- Reply to a specific email in a thread. The reply is sent from the inbox
154
- address to the sender of the original email.
155
-
156
- **Flags:** `--inbox_id <id> --thread_id <id> --email_id <id>` — required in
157
- non-interactive mode; the email ID comes from `inboxes threads get`
158
-
159
- | Flag | Type | Required | Description |
160
- |------|------|----------|-------------|
161
- | `--text <text>` | string | One of text/html | Plain text reply body |
162
- | `--html <html>` | string | One of text/html | HTML reply body |
163
- | `--subject <subject>` | string | No | Override the reply subject |
164
-
165
- **Output:** `{"id":"<uuid>","email_id":"<uuid>","direction":"outbound","from":"<inbox-address>","to":["<recipient>"],"text":"<text>"|null,"html":"<html>"|null,"read":true,"received_at":"<date>"}`
166
-
167
- ---
168
-
169
- ## inboxes threads emails forward
170
-
171
- Forward an email to other recipients from the inbox address.
172
-
173
- **Flags:** `--inbox_id <id> --thread_id <id> --email_id <id>` — required in non-interactive mode
174
-
175
- | Flag | Type | Required | Description |
176
- |------|------|----------|-------------|
177
- | `--to <address>` | string | Yes | Recipient; repeat the flag for multiple |
178
- | `--text <text>` | string | No | Plain text note to include |
179
- | `--html <html>` | string | No | HTML note to include |
180
- | `--subject <subject>` | string | No | Override the forwarded subject |
181
-
182
- **Output:** `{"id":"<uuid>","email_id":"<uuid>","direction":"outbound","from":"<inbox-address>","to":["<recipient>"],"text":"<text>"|null,"html":"<html>"|null,"attachments":[],"read":true,"received_at":"<date>"}`
183
-
184
- ---
185
-
186
- ## inboxes labels list
187
-
188
- List all labels in an inbox (not paginated; default subcommand of
189
- `resend inboxes labels`). Use label IDs with `threads update --label_id` and
190
- `threads list --label`.
191
-
192
- **Flags:** `--inbox_id <id>` — required in non-interactive mode
193
-
194
- **Alias:** `ls`
195
-
196
- **Output:** `{"object":"list","data":[{"id":"<uuid>","name":"<name>","color":"<color>","created_at":"<date>"}]}`
197
-
198
- ---
199
-
200
- ## inboxes labels create
201
-
202
- Create a label. An inbox can have up to 100 labels.
203
-
204
- **Flags:** `--inbox_id <id>` — required in non-interactive mode
205
-
206
- | Flag | Type | Required | Description |
207
- |------|------|----------|-------------|
208
- | `--name <name>` | string | Yes (non-interactive) | Label name, max 64 characters |
209
- | `--color <color>` | string | No | One of `cyan`, `teal`, `grass`, `lime`, `yellow`, `orange`, `iris`, `plum`, `crimson`, `bronze`, `mauve` (random when omitted) |
210
-
211
- **Output:** `{"object":"inbox_label","id":"<uuid>","name":"<name>","color":"<color>","created_at":"<date>"}`
212
-
213
- ---
214
-
215
- ## inboxes labels update
216
-
217
- Update a label's name or color. At least one option is required.
218
-
219
- **Flags:** `--inbox_id <id> --label_id <id>` — required in non-interactive mode
220
-
221
- | Flag | Type | Description |
222
- |------|------|-------------|
223
- | `--name <name>` | string | New label name |
224
- | `--color <color>` | string | New label color (same choices as create) |
225
-
226
- **Output:** `{"object":"inbox_label","id":"<uuid>"}`
227
-
228
- ---
229
-
230
- ## inboxes labels delete
231
-
232
- Delete a label. It is removed from every thread that has it.
233
-
234
- **Flags:** `--inbox_id <id> --label_id <id>` — required in non-interactive mode
235
-
236
- | Flag | Type | Required | Description |
237
- |------|------|----------|-------------|
238
- | `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
239
-
240
- **Alias:** `rm`
241
-
242
- **Output:** `{"object":"inbox_label","id":"<uuid>","deleted":true}`
243
-
244
- ---
245
-
246
- ## inboxes drafts list
247
-
248
- List drafts in an inbox (default subcommand of `resend inboxes drafts`).
249
-
250
- **Flags:** `--inbox_id <id>` — required in non-interactive mode
251
-
252
- | Flag | Type | Default | Description |
253
- |------|------|---------|-------------|
254
- | `--limit <n>` | number | 10 | Max results, 1-100 |
255
- | `--after <cursor>` | string | — | Forward pagination cursor (a draft ID) |
256
- | `--before <cursor>` | string | — | Backward pagination cursor (a draft ID) |
257
-
258
- **Alias:** `ls`
259
-
260
- **Output:** `{"object":"list","has_more":false,"data":[{"id":"<uuid>","type":"standalone|reply","to":["<address>"]|null,"cc":[],"bcc":[],"subject":"<subject>"|null,"snippet":"<text>"|null,"thread_id":"<uuid>"|null,"reply_to_email_id":"<uuid>"|null,"updated_at":"<date>"}]}`
261
-
262
- ---
263
-
264
- ## inboxes drafts create
265
-
266
- Create a standalone draft, or a reply draft when `--thread_id` and
267
- `--reply_to_email_id` are passed **together**. At least one content field is
268
- required.
269
-
270
- **Flags:** `--inbox_id <id>` — required in non-interactive mode
271
-
272
- | Flag | Type | Description |
273
- |------|------|-------------|
274
- | `--to <address>` | string | Recipient; repeat for multiple |
275
- | `--cc <address>` | string | Cc; repeat for multiple |
276
- | `--bcc <address>` | string | Bcc; repeat for multiple |
277
- | `--subject <subject>` | string | Draft subject |
278
- | `--text <text>` | string | Plain text body |
279
- | `--html <html>` | string | HTML body |
280
- | `--thread_id <thread_id>` | string | Thread to reply to (pairs with `--reply_to_email_id`) |
281
- | `--reply_to_email_id <email_id>` | string | Email the draft replies to (pairs with `--thread_id`) |
282
-
283
- **Output:** `{"object":"inbox_draft","id":"<uuid>","type":"standalone|reply","to":["<address>"]|null,"cc":[],"bcc":[],"subject":"<subject>"|null,"html":"<html>"|null,"text":"<text>"|null,"thread_id":"<uuid>"|null,"reply_to_email_id":"<uuid>"|null,"email_id":null,"created_at":"<date>","updated_at":"<date>"}`
284
-
285
- ---
286
-
287
- ## inboxes drafts get
288
-
289
- Retrieve a draft, including its full body.
290
-
291
- **Flags:** `--inbox_id <id> --draft_id <id>` — required in non-interactive mode
292
-
293
- **Output:** same shape as `drafts create`.
294
-
295
- ---
296
-
297
- ## inboxes drafts update
298
-
299
- Update a draft's recipients, subject, or body. At least one option is
300
- required; provided fields replace existing values. Same flags as
301
- `drafts create` minus `--thread_id`/`--reply_to_email_id`.
302
-
303
- **Flags:** `--inbox_id <id> --draft_id <id>` — required in non-interactive mode
304
-
305
- **Output:** same shape as `drafts create`.
306
-
307
- ---
308
-
309
- ## inboxes drafts delete
310
-
311
- Delete a draft.
312
-
313
- **Flags:** `--inbox_id <id> --draft_id <id>` — required in non-interactive mode
314
-
315
- | Flag | Type | Required | Description |
316
- |------|------|----------|-------------|
317
- | `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
318
-
319
- **Alias:** `rm`
320
-
321
- **Output:** `{"object":"inbox_draft","id":"<uuid>","deleted":true}`
322
-
323
- ---
324
-
325
- ## inboxes drafts send
326
-
327
- Send a draft from the inbox address. The draft must have recipients and a
328
- body.
329
-
330
- **Flags:** `--inbox_id <id> --draft_id <id>` — required in non-interactive mode
331
-
332
- **Output:** `{"object":"inbox_draft","id":"<uuid>","thread_id":"<uuid>","email_id":"<uuid>"}`
333
-
334
- ---
335
-
336
- ## inboxes delete
337
-
338
- Delete an inbox. Its threads and messages are removed and the address stops
339
- receiving email.
340
-
341
- **Argument:** `<id>` — inbox UUID
342
-
343
- | Flag | Type | Required | Description |
344
- |------|------|----------|-------------|
345
- | `--yes` | boolean | Yes (non-interactive) | Skip confirmation |
346
-
347
- **Alias:** `rm`
348
-
349
- **Output:** `{"object":"inbox","id":"<uuid>","deleted":true}`