agentmail 0.1.7 → 0.1.9

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.
Files changed (33) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/BaseClient.js +2 -2
  3. package/dist/cjs/api/resources/inboxes/client/Client.d.ts +2 -2
  4. package/dist/cjs/api/resources/inboxes/client/Client.js +9 -7
  5. package/dist/cjs/api/resources/messages/types/Message.d.ts +4 -0
  6. package/dist/cjs/serialization/resources/inboxes/client/create.d.ts +8 -0
  7. package/dist/cjs/serialization/resources/inboxes/client/create.js +6 -0
  8. package/dist/cjs/serialization/resources/inboxes/client/index.d.ts +1 -0
  9. package/dist/cjs/serialization/resources/inboxes/client/index.js +37 -0
  10. package/dist/cjs/serialization/resources/inboxes/index.d.ts +1 -0
  11. package/dist/cjs/serialization/resources/inboxes/index.js +1 -0
  12. package/dist/cjs/serialization/resources/messages/types/Message.d.ts +2 -0
  13. package/dist/cjs/serialization/resources/messages/types/Message.js +2 -0
  14. package/dist/cjs/version.d.ts +1 -1
  15. package/dist/cjs/version.js +1 -1
  16. package/dist/esm/BaseClient.mjs +2 -2
  17. package/dist/esm/api/resources/inboxes/client/Client.d.mts +2 -2
  18. package/dist/esm/api/resources/inboxes/client/Client.mjs +9 -7
  19. package/dist/esm/api/resources/messages/types/Message.d.mts +4 -0
  20. package/dist/esm/serialization/resources/inboxes/client/create.d.mts +8 -0
  21. package/dist/esm/serialization/resources/inboxes/client/create.mjs +3 -0
  22. package/dist/esm/serialization/resources/inboxes/client/index.d.mts +1 -0
  23. package/dist/esm/serialization/resources/inboxes/client/index.mjs +1 -0
  24. package/dist/esm/serialization/resources/inboxes/index.d.mts +1 -0
  25. package/dist/esm/serialization/resources/inboxes/index.mjs +1 -0
  26. package/dist/esm/serialization/resources/messages/types/Message.d.mts +2 -0
  27. package/dist/esm/serialization/resources/messages/types/Message.mjs +2 -0
  28. package/dist/esm/version.d.mts +1 -1
  29. package/dist/esm/version.mjs +1 -1
  30. package/dist/llms-full.txt +59 -72
  31. package/dist/llms.txt +0 -4
  32. package/package.json +1 -1
  33. package/reference.md +1 -1
package/README.md CHANGED
@@ -20,10 +20,10 @@ A full reference for this library is available [here](https://github.com/agentma
20
20
  Instantiate and use the client with the following:
21
21
 
22
22
  ```typescript
23
- import { AgentMailClient, AgentMail } from "agentmail";
23
+ import { AgentMailClient } from "agentmail";
24
24
 
25
25
  const client = new AgentMailClient({ apiKey: "YOUR_API_KEY" });
26
- await client.inboxes.create({});
26
+ await client.inboxes.create(undefined);
27
27
  ```
28
28
 
29
29
  ## Request And Response Types
@@ -43,8 +43,8 @@ function normalizeClientOptions(options) {
43
43
  const headers = (0, headers_js_1.mergeHeaders)({
44
44
  "X-Fern-Language": "JavaScript",
45
45
  "X-Fern-SDK-Name": "agentmail",
46
- "X-Fern-SDK-Version": "0.1.7",
47
- "User-Agent": "agentmail/0.1.7",
46
+ "X-Fern-SDK-Version": "0.1.9",
47
+ "User-Agent": "agentmail/0.1.9",
48
48
  "X-Fern-Runtime": core.RUNTIME.type,
49
49
  "X-Fern-Runtime-Version": core.RUNTIME.version,
50
50
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -50,9 +50,9 @@ export declare class InboxesClient {
50
50
  * @throws {@link AgentMail.ValidationError}
51
51
  *
52
52
  * @example
53
- * await client.inboxes.create({})
53
+ * await client.inboxes.create(undefined)
54
54
  */
55
- create(request: AgentMail.inboxes.CreateInboxRequest, requestOptions?: InboxesClient.RequestOptions): core.HttpResponsePromise<AgentMail.inboxes.Inbox>;
55
+ create(request?: AgentMail.inboxes.CreateInboxRequest, requestOptions?: InboxesClient.RequestOptions): core.HttpResponsePromise<AgentMail.inboxes.Inbox>;
56
56
  private __create;
57
57
  /**
58
58
  * @param {AgentMail.inboxes.InboxId} inbox_id
@@ -227,7 +227,7 @@ class InboxesClient {
227
227
  * @throws {@link AgentMail.ValidationError}
228
228
  *
229
229
  * @example
230
- * await client.inboxes.create({})
230
+ * await client.inboxes.create(undefined)
231
231
  */
232
232
  create(request, requestOptions) {
233
233
  return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions));
@@ -244,12 +244,14 @@ class InboxesClient {
244
244
  contentType: "application/json",
245
245
  queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
246
246
  requestType: "json",
247
- body: serializers.inboxes.CreateInboxRequest.jsonOrThrow(request, {
248
- unrecognizedObjectKeys: "passthrough",
249
- allowUnrecognizedUnionMembers: true,
250
- allowUnrecognizedEnumValues: true,
251
- omitUndefined: true,
252
- }),
247
+ body: request != null
248
+ ? serializers.inboxes.create.Request.jsonOrThrow(request, {
249
+ unrecognizedObjectKeys: "passthrough",
250
+ allowUnrecognizedUnionMembers: true,
251
+ allowUnrecognizedEnumValues: true,
252
+ omitUndefined: true,
253
+ })
254
+ : undefined,
253
255
  timeoutMs: ((_f = (_d = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _d !== void 0 ? _d : (_e = this._options) === null || _e === void 0 ? void 0 : _e.timeoutInSeconds) !== null && _f !== void 0 ? _f : 60) * 1000,
254
256
  maxRetries: (_g = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _g !== void 0 ? _g : (_h = this._options) === null || _h === void 0 ? void 0 : _h.maxRetries,
255
257
  abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
@@ -15,6 +15,10 @@ export interface Message {
15
15
  preview?: AgentMail.MessagePreview;
16
16
  text?: AgentMail.MessageText;
17
17
  html?: AgentMail.MessageHtml;
18
+ /** Extracted new text content. */
19
+ extractedText?: string;
20
+ /** Extracted new HTML content. */
21
+ extractedHtml?: string;
18
22
  attachments?: AgentMail.MessageAttachments;
19
23
  inReplyTo?: AgentMail.MessageInReplyTo;
20
24
  references?: AgentMail.MessageReferences;
@@ -0,0 +1,8 @@
1
+ import type * as AgentMail from "../../../../api/index.js";
2
+ import type * as core from "../../../../core/index.js";
3
+ import type * as serializers from "../../../index.js";
4
+ import { CreateInboxRequest } from "../types/CreateInboxRequest.js";
5
+ export declare const Request: core.serialization.Schema<serializers.inboxes.create.Request.Raw, AgentMail.inboxes.CreateInboxRequest | undefined>;
6
+ export declare namespace Request {
7
+ type Raw = CreateInboxRequest.Raw | null | undefined;
8
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Request = void 0;
5
+ const CreateInboxRequest_js_1 = require("../types/CreateInboxRequest.js");
6
+ exports.Request = CreateInboxRequest_js_1.CreateInboxRequest.optional();
@@ -0,0 +1 @@
1
+ export * as create from "./create.js";
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.create = void 0;
37
+ exports.create = __importStar(require("./create.js"));
@@ -1 +1,2 @@
1
+ export * from "./client/index.js";
1
2
  export * from "./types/index.js";
@@ -14,4 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./client/index.js"), exports);
17
18
  __exportStar(require("./types/index.js"), exports);
@@ -37,6 +37,8 @@ export declare namespace Message {
37
37
  preview?: MessagePreview.Raw | null;
38
38
  text?: MessageText.Raw | null;
39
39
  html?: MessageHtml.Raw | null;
40
+ extracted_text?: string | null;
41
+ extracted_html?: string | null;
40
42
  attachments?: MessageAttachments.Raw | null;
41
43
  in_reply_to?: MessageInReplyTo.Raw | null;
42
44
  references?: MessageReferences.Raw | null;
@@ -70,6 +70,8 @@ exports.Message = core.serialization.object({
70
70
  preview: MessagePreview_js_1.MessagePreview.optional(),
71
71
  text: MessageText_js_1.MessageText.optional(),
72
72
  html: MessageHtml_js_1.MessageHtml.optional(),
73
+ extractedText: core.serialization.property("extracted_text", core.serialization.string().optional()),
74
+ extractedHtml: core.serialization.property("extracted_html", core.serialization.string().optional()),
73
75
  attachments: MessageAttachments_js_1.MessageAttachments.optional(),
74
76
  inReplyTo: core.serialization.property("in_reply_to", MessageInReplyTo_js_1.MessageInReplyTo.optional()),
75
77
  references: MessageReferences_js_1.MessageReferences.optional(),
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.1.7";
1
+ export declare const SDK_VERSION = "0.1.9";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "0.1.7";
4
+ exports.SDK_VERSION = "0.1.9";
@@ -6,8 +6,8 @@ export function normalizeClientOptions(options) {
6
6
  const headers = mergeHeaders({
7
7
  "X-Fern-Language": "JavaScript",
8
8
  "X-Fern-SDK-Name": "agentmail",
9
- "X-Fern-SDK-Version": "0.1.7",
10
- "User-Agent": "agentmail/0.1.7",
9
+ "X-Fern-SDK-Version": "0.1.9",
10
+ "User-Agent": "agentmail/0.1.9",
11
11
  "X-Fern-Runtime": core.RUNTIME.type,
12
12
  "X-Fern-Runtime-Version": core.RUNTIME.version,
13
13
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -50,9 +50,9 @@ export declare class InboxesClient {
50
50
  * @throws {@link AgentMail.ValidationError}
51
51
  *
52
52
  * @example
53
- * await client.inboxes.create({})
53
+ * await client.inboxes.create(undefined)
54
54
  */
55
- create(request: AgentMail.inboxes.CreateInboxRequest, requestOptions?: InboxesClient.RequestOptions): core.HttpResponsePromise<AgentMail.inboxes.Inbox>;
55
+ create(request?: AgentMail.inboxes.CreateInboxRequest, requestOptions?: InboxesClient.RequestOptions): core.HttpResponsePromise<AgentMail.inboxes.Inbox>;
56
56
  private __create;
57
57
  /**
58
58
  * @param {AgentMail.inboxes.InboxId} inbox_id
@@ -191,7 +191,7 @@ export class InboxesClient {
191
191
  * @throws {@link AgentMail.ValidationError}
192
192
  *
193
193
  * @example
194
- * await client.inboxes.create({})
194
+ * await client.inboxes.create(undefined)
195
195
  */
196
196
  create(request, requestOptions) {
197
197
  return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions));
@@ -208,12 +208,14 @@ export class InboxesClient {
208
208
  contentType: "application/json",
209
209
  queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
210
210
  requestType: "json",
211
- body: serializers.inboxes.CreateInboxRequest.jsonOrThrow(request, {
212
- unrecognizedObjectKeys: "passthrough",
213
- allowUnrecognizedUnionMembers: true,
214
- allowUnrecognizedEnumValues: true,
215
- omitUndefined: true,
216
- }),
211
+ body: request != null
212
+ ? serializers.inboxes.create.Request.jsonOrThrow(request, {
213
+ unrecognizedObjectKeys: "passthrough",
214
+ allowUnrecognizedUnionMembers: true,
215
+ allowUnrecognizedEnumValues: true,
216
+ omitUndefined: true,
217
+ })
218
+ : undefined,
217
219
  timeoutMs: ((_f = (_d = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _d !== void 0 ? _d : (_e = this._options) === null || _e === void 0 ? void 0 : _e.timeoutInSeconds) !== null && _f !== void 0 ? _f : 60) * 1000,
218
220
  maxRetries: (_g = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _g !== void 0 ? _g : (_h = this._options) === null || _h === void 0 ? void 0 : _h.maxRetries,
219
221
  abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
@@ -15,6 +15,10 @@ export interface Message {
15
15
  preview?: AgentMail.MessagePreview;
16
16
  text?: AgentMail.MessageText;
17
17
  html?: AgentMail.MessageHtml;
18
+ /** Extracted new text content. */
19
+ extractedText?: string;
20
+ /** Extracted new HTML content. */
21
+ extractedHtml?: string;
18
22
  attachments?: AgentMail.MessageAttachments;
19
23
  inReplyTo?: AgentMail.MessageInReplyTo;
20
24
  references?: AgentMail.MessageReferences;
@@ -0,0 +1,8 @@
1
+ import type * as AgentMail from "../../../../api/index.mjs";
2
+ import type * as core from "../../../../core/index.mjs";
3
+ import type * as serializers from "../../../index.mjs";
4
+ import { CreateInboxRequest } from "../types/CreateInboxRequest.mjs";
5
+ export declare const Request: core.serialization.Schema<serializers.inboxes.create.Request.Raw, AgentMail.inboxes.CreateInboxRequest | undefined>;
6
+ export declare namespace Request {
7
+ type Raw = CreateInboxRequest.Raw | null | undefined;
8
+ }
@@ -0,0 +1,3 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import { CreateInboxRequest } from "../types/CreateInboxRequest.mjs";
3
+ export const Request = CreateInboxRequest.optional();
@@ -0,0 +1 @@
1
+ export * as create from "./create.mjs";
@@ -0,0 +1 @@
1
+ export * as create from "./create.mjs";
@@ -1 +1,2 @@
1
+ export * from "./client/index.mjs";
1
2
  export * from "./types/index.mjs";
@@ -1 +1,2 @@
1
+ export * from "./client/index.mjs";
1
2
  export * from "./types/index.mjs";
@@ -37,6 +37,8 @@ export declare namespace Message {
37
37
  preview?: MessagePreview.Raw | null;
38
38
  text?: MessageText.Raw | null;
39
39
  html?: MessageHtml.Raw | null;
40
+ extracted_text?: string | null;
41
+ extracted_html?: string | null;
40
42
  attachments?: MessageAttachments.Raw | null;
41
43
  in_reply_to?: MessageInReplyTo.Raw | null;
42
44
  references?: MessageReferences.Raw | null;
@@ -34,6 +34,8 @@ export const Message = core.serialization.object({
34
34
  preview: MessagePreview.optional(),
35
35
  text: MessageText.optional(),
36
36
  html: MessageHtml.optional(),
37
+ extractedText: core.serialization.property("extracted_text", core.serialization.string().optional()),
38
+ extractedHtml: core.serialization.property("extracted_html", core.serialization.string().optional()),
37
39
  attachments: MessageAttachments.optional(),
38
40
  inReplyTo: core.serialization.property("in_reply_to", MessageInReplyTo.optional()),
39
41
  references: MessageReferences.optional(),
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.1.7";
1
+ export declare const SDK_VERSION = "0.1.9";
@@ -1 +1 @@
1
- export const SDK_VERSION = "0.1.7";
1
+ export const SDK_VERSION = "0.1.9";
@@ -166,12 +166,10 @@ This guide will walk you through installing the AgentMail SDK, authenticating wi
166
166
  If you don't have an account yet, you can sign up directly from the console. Once you're logged in, you'll be able to manage your inboxes, view analytics, and create API keys.
167
167
  </Step>
168
168
 
169
- {" "}
170
-
171
169
  <Step title="Create an API Key">
172
170
  Now that you're in the console, you'll need to create an API key to
173
171
  authenticate your requests. Navigate to the API Keys section in your console
174
- dashboard. ![API Key Creation Screenshot](file:2ed6166f-567f-4666-8c03-00684ce19aa3) Click
172
+ dashboard. ![API Key Creation Screenshot](file:b6a2250c-78ed-4c96-ae69-b8601bae53b8) Click
175
173
  "Create New API Key" and give it a descriptive name. Once created, copy the
176
174
  API key and store it securely. Create a `.env` file in your project's root
177
175
  directory and add your key to it. We recommend using environment variables to
@@ -218,6 +216,16 @@ This guide will walk you through installing the AgentMail SDK, authenticating wi
218
216
  print("Inbox created successfully!")
219
217
  print(inbox)
220
218
 
219
+ # Send Email
220
+
221
+ client.inboxes.messages.send(
222
+ inbox_id="your-email@example.com",
223
+ to="contact@agentmail.to",
224
+ subject="Hello from AgentMail!",
225
+ text="This is my first email sent with the AgentMail API."
226
+
227
+ )
228
+
221
229
  ```
222
230
 
223
231
  ```typescript title="TypeScript"
@@ -238,7 +246,7 @@ This guide will walk you through installing the AgentMail SDK, authenticating wi
238
246
 
239
247
  // Send an email from the new inbox
240
248
  console.log("Sending email...");
241
- await client.inboxes.messages.send(inbox.inbox_id, {
249
+ await client.inboxes.messages.send(inbox.inboxId, {
242
250
  to: "your-email@example.com",
243
251
  subject: "Hello from AgentMail!",
244
252
  text: "This is my first email sent with the AgentMail API.",
@@ -312,7 +320,7 @@ Unlike traditional email providers that are designed for human scale, AgentMail
312
320
 
313
321
  As the diagram below illustrates, your `organization` is the top-level container that holds all your resources. You can provision many `Inboxes` within your `organization`, each with its own `Threads`, `Messages`, and `Attachments`, allowing you to manage a large fleet of agents seamlessly.
314
322
 
315
- <img src="file:5059430e-56d3-4f25-8e53-c039ee07eae3" alt="AgentMail Organizational Hierarchy" />
323
+ <img src="file:4479b8d5-647b-428f-9c43-5202aafa5175" alt="AgentMail Organizational Hierarchy" />
316
324
 
317
325
  <Steps>
318
326
  <Step title="Organization">
@@ -732,7 +740,7 @@ Here is an example of a well-structured and styled HTML header:
732
740
  </CodeBlocks>
733
741
 
734
742
  <Frame caption="Look how pretty this message looks!">
735
- <img src="file:c026b6cd-f41d-4bc0-9818-5058474f4b79" alt="rendered css" />
743
+ <img src="file:a3eb4249-4892-4a88-b6d3-9bcaa7e79044" alt="rendered css" />
736
744
  </Frame>
737
745
 
738
746
  ## Receiving `Messages`
@@ -1507,27 +1515,6 @@ Pod: "Marketing-Agent"
1507
1515
  * Explore [Domains](/custom-domains) to set up custom email domains for your pods
1508
1516
 
1509
1517
 
1510
- # Integrations
1511
-
1512
- > Overview of AgentMail's integrations
1513
-
1514
- ## Platforms
1515
-
1516
- <CardGroup>
1517
- <Card title="Replit" icon="fa-solid fa-box-open" href="replit" />
1518
-
1519
- <Card title="Smithery" icon="fa-solid fa-box-open" href="smithery" />
1520
- </CardGroup>
1521
-
1522
- ## Frameworks
1523
-
1524
- <CardGroup>
1525
- <Card title="Mastra" icon="fa-solid fa-box-open" href="mastra" />
1526
-
1527
- <Card title="CrewAI" icon="fa-solid fa-box-open" href="crewai" />
1528
- </CardGroup>
1529
-
1530
-
1531
1518
  # Replit
1532
1519
 
1533
1520
  > AgentMail's Replit integration
@@ -1602,6 +1589,7 @@ Below is a collections of prebuilt tools that Replit can use out of the box to s
1602
1589
  .union([z.string(), z.array(z.string())])
1603
1590
  .optional()
1604
1591
  .describe('BCC recipients'),
1592
+ subject: z.string().optional().describe('Subject'),
1605
1593
  })
1606
1594
 
1607
1595
  const ReplyToMessageInput = BaseMessageInput.extend({ messageId: MessageId })
@@ -1739,24 +1727,6 @@ Email is critical to identity and communication on the internet. Much of the con
1739
1727
  These are just a few select verticals, but we have seen AgentMail be effective in automating any email task across every function. If a human does it with email, it can be automated with AgentMail.
1740
1728
 
1741
1729
 
1742
- # Smithery
1743
-
1744
- > AgentMail's Smithery integration
1745
-
1746
-
1747
-
1748
- # Mastra
1749
-
1750
- > AgentMail's Mastra integration
1751
-
1752
-
1753
-
1754
- # CrewAI
1755
-
1756
- > AgentMail's CrewAI integration
1757
-
1758
-
1759
-
1760
1730
  # Guide: Sending & Receiving Email
1761
1731
 
1762
1732
  > A step-by-step guide to the practical workflow of sending initial emails and handling replies to have a full conversation.
@@ -2009,7 +1979,7 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2009
1979
  After creating your domain in the AgentMail Console, click the "Download BIND Zone File" button to get the complete zone file.
2010
1980
 
2011
1981
  <Frame caption="Downloading BIND zone file from AgentMail Console">
2012
- <img src="file:abd861e7-e3c4-4253-843d-5e1877e84487" alt="Download BIND Zone File from Console" />
1982
+ <img src="file:9be82773-96e6-4707-90e4-049e00ecc897" alt="Download BIND Zone File from Console" />
2013
1983
  </Frame>
2014
1984
 
2015
1985
  <Tabs>
@@ -2020,13 +1990,13 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2020
1990
  2. Click **"Import zone file"** in the top right corner
2021
1991
 
2022
1992
  <Frame caption="Importing BIND zone file in AWS Route 53">
2023
- <img src="file:1381b9e1-8945-463b-8211-f3cb7d8ff390" alt="AWS Route 53 BIND Import" />
1993
+ <img src="file:52e201a6-6877-492d-8ceb-d68103640c2d" alt="AWS Route 53 BIND Import" />
2024
1994
  </Frame>
2025
1995
 
2026
1996
  3. Paste the CONTENTS of downloaded BIND zone file
2027
1997
 
2028
1998
  <Frame caption="Open the file with text editor and paste the contents. It should look similar to what we have in this image.">
2029
- <img src="file:a1ec7b55-2283-4e6c-af6f-5bfca7ad00d6" alt="AWS Route 53 BIND Import" />
1999
+ <img src="file:6afc53aa-83cf-47c5-b751-b2ff42f86fc9" alt="AWS Route 53 BIND Import" />
2030
2000
  </Frame>
2031
2001
 
2032
2002
  4. Review the records and click **"Import"**
@@ -2039,13 +2009,13 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2039
2009
  2. Navigate to **DNS > Records**
2040
2010
 
2041
2011
  <Frame caption="This is what the page looks like">
2042
- <img src="file:ba36964f-3f3e-439c-80f0-c71884757f68" alt="Cloudflare BIND Import" />
2012
+ <img src="file:a5aac2ea-d73e-4931-b5b9-ff49cecc4f1e" alt="Cloudflare BIND Import" />
2043
2013
  </Frame>
2044
2014
 
2045
2015
  3. Click **"Import and Export"**
2046
2016
 
2047
2017
  <Frame caption="You should be able to just drop the file in">
2048
- <img src="file:990c0430-f086-4365-813f-a3b6463d5e07" alt="Cloudflare BIND Import" />
2018
+ <img src="file:d92b7899-42d5-4622-8a7c-93c3dfde145d" alt="Cloudflare BIND Import" />
2049
2019
  </Frame>
2050
2020
 
2051
2021
  4. Upload the downloaded BIND zone file as is
@@ -2058,13 +2028,13 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2058
2028
  2. Navigate to the **DNS** subtab of the domain you want to send from
2059
2029
 
2060
2030
  <Frame caption="Click on this button!">
2061
- <img src="file:86a3ef0e-6f6e-4eb3-a721-52c1730f0b49" alt="Porkbun DNS Management" />
2031
+ <img src="file:dd25616b-848d-43b5-98da-91f256c8c435" alt="Porkbun DNS Management" />
2062
2032
  </Frame>
2063
2033
 
2064
2034
  3. Scroll down to the quick upload section
2065
2035
 
2066
2036
  <Frame caption="Upload your BIND zone file here">
2067
- <img src="file:295db837-0235-4696-b96d-5318f68b49f5" alt="Porkbun Zone File Import" />
2037
+ <img src="file:807e2a16-6fe3-4fce-bdf8-cd5333ef8459" alt="Porkbun Zone File Import" />
2068
2038
  </Frame>
2069
2039
 
2070
2040
  4. Upload the downloaded BIND zone file as is
@@ -2148,7 +2118,7 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2148
2118
  * **Value:** Can directly copy paste the `value` from the API response (e.g., `{random_letters_numbers}.dkim.amazonses.com`).
2149
2119
 
2150
2120
  <Frame caption="Example of adding a CNAME record in Route 53. Notice that AWS already appends the root domain (agentmail.cc) to the end of the name value!">
2151
- <img src="file:e57473d0-08bd-4ddc-ba64-0ff6c2e49ccc" alt="AWS Route 53 Record Configuration" />
2121
+ <img src="file:8f29da71-dcd0-42e2-9d1d-ffd6fbc5fa62" alt="AWS Route 53 Record Configuration" />
2152
2122
  </Frame>
2153
2123
 
2154
2124
  * **TXT (DMARC/SPF):**
@@ -2684,13 +2654,13 @@ Ngrok creates a secure tunnel from a public URL to your local development server
2684
2654
 
2685
2655
  Visit [ngrok.com](https://ngrok.com/) and click "Sign up" to create a free account.
2686
2656
 
2687
- <img src="file:b2e9355e-36a9-46dc-bbe0-8192253fc301" alt="Ngrok homepage" />
2657
+ <img src="file:3be3ba9b-4849-4adb-85b5-b1dd53489224" alt="Ngrok homepage" />
2688
2658
 
2689
2659
  ### 1.2 Choose your platform and install
2690
2660
 
2691
2661
  After logging in, ngrok will guide you through the setup process. Select your operating system and follow the installation instructions.
2692
2662
 
2693
- <img src="file:3905deb7-315f-48fe-adee-1f4e4a115bcd" alt="Ngrok setup instructions" />
2663
+ <img src="file:3606f774-41a5-4e9a-b513-8818ded10a21" alt="Ngrok setup instructions" />
2694
2664
 
2695
2665
  For macOS, you can install ngrok via Homebrew:
2696
2666
 
@@ -2736,7 +2706,7 @@ ngrok http 3000
2736
2706
 
2737
2707
  You should see output similar to this:
2738
2708
 
2739
- <img src="file:96fe265e-bc8e-40fc-8bb1-a53acadb74ca" alt="Ngrok terminal output" />
2709
+ <img src="file:99864be8-6721-4b52-bae1-981cee8bd478" alt="Ngrok terminal output" />
2740
2710
 
2741
2711
  Copy the **Forwarding URL** (e.g., `https://your-subdomain.ngrok-free.app`). This is the public URL that AgentMail will use to send webhooks.
2742
2712
 
@@ -2833,7 +2803,7 @@ python webhook_receiver.py
2833
2803
 
2834
2804
  Open your browser and visit `http://127.0.0.1:3000` to see the status page confirming your webhook receiver is running:
2835
2805
 
2836
- <img src="file:6e602847-1e91-47d2-8aa0-c4d8ca72fed4" alt="Webhook receiver status page" />
2806
+ <img src="file:65bc3605-d0f1-41cc-bd3c-7c6138eed70c" alt="Webhook receiver status page" />
2837
2807
 
2838
2808
  ## Testing Your Setup
2839
2809
 
@@ -2955,7 +2925,7 @@ How you send your emails is just as important as what you send. If you're sendin
2955
2925
  more natural to email providers. AgentMail's ability to create inboxes at
2956
2926
  scale makes this strategy easy to implement.
2957
2927
 
2958
- <img src="file:d79176d8-08fb-4eba-b880-66bfcf164f59" alt="Diagram comparing one inbox sending 1000 emails vs. five inboxes sending 200 each." />
2928
+ <img src="file:9510cd76-587b-4d97-97d8-d8ed463903ee" alt="Diagram comparing one inbox sending 1000 emails vs. five inboxes sending 200 each." />
2959
2929
  </Step>
2960
2930
 
2961
2931
  <Step title="Protect Your Reputation with Multiple Domains">
@@ -4974,7 +4944,7 @@ Done
4974
4944
 
4975
4945
  Go to your AgentMail inbox and filter by labels to organize your emails:
4976
4946
 
4977
- <img src="file:19536629-9971-42f0-b8c1-ffa1f9849fd5" alt="Test image" />
4947
+ <img src="file:36c999f1-b941-45cb-8f04-1b062610ef6c" alt="Test image" />
4978
4948
 
4979
4949
  **Filter by sentiment:**
4980
4950
 
@@ -6363,7 +6333,7 @@ async function main() {
6363
6333
  environment: "https://api.agentmail.to",
6364
6334
  apiKey: "YOUR_TOKEN_HERE",
6365
6335
  });
6366
- await client.inboxes.create({});
6336
+ await client.inboxes.create();
6367
6337
  }
6368
6338
  main();
6369
6339
 
@@ -6386,7 +6356,6 @@ package main
6386
6356
 
6387
6357
  import (
6388
6358
  "fmt"
6389
- "strings"
6390
6359
  "net/http"
6391
6360
  "io"
6392
6361
  )
@@ -6395,9 +6364,7 @@ func main() {
6395
6364
 
6396
6365
  url := "https://api.agentmail.to/v0/inboxes"
6397
6366
 
6398
- payload := strings.NewReader("{}")
6399
-
6400
- req, _ := http.NewRequest("POST", url, payload)
6367
+ req, _ := http.NewRequest("POST", url, nil)
6401
6368
 
6402
6369
  req.Header.Add("Authorization", "Bearer <api_key>")
6403
6370
  req.Header.Add("Content-Type", "application/json")
@@ -6425,7 +6392,6 @@ http.use_ssl = true
6425
6392
  request = Net::HTTP::Post.new(url)
6426
6393
  request["Authorization"] = 'Bearer <api_key>'
6427
6394
  request["Content-Type"] = 'application/json'
6428
- request.body = "{}"
6429
6395
 
6430
6396
  response = http.request(request)
6431
6397
  puts response.read_body
@@ -6435,7 +6401,6 @@ puts response.read_body
6435
6401
  HttpResponse<String> response = Unirest.post("https://api.agentmail.to/v0/inboxes")
6436
6402
  .header("Authorization", "Bearer <api_key>")
6437
6403
  .header("Content-Type", "application/json")
6438
- .body("{}")
6439
6404
  .asString();
6440
6405
  ```
6441
6406
 
@@ -6445,7 +6410,6 @@ HttpResponse<String> response = Unirest.post("https://api.agentmail.to/v0/inboxe
6445
6410
  $client = new \GuzzleHttp\Client();
6446
6411
 
6447
6412
  $response = $client->request('POST', 'https://api.agentmail.to/v0/inboxes', [
6448
- 'body' => '{}',
6449
6413
  'headers' => [
6450
6414
  'Authorization' => 'Bearer <api_key>',
6451
6415
  'Content-Type' => 'application/json',
@@ -6460,7 +6424,6 @@ var client = new RestClient("https://api.agentmail.to/v0/inboxes");
6460
6424
  var request = new RestRequest(Method.POST);
6461
6425
  request.AddHeader("Authorization", "Bearer <api_key>");
6462
6426
  request.AddHeader("Content-Type", "application/json");
6463
- request.AddParameter("application/json", "{}", ParameterType.RequestBody);
6464
6427
  IRestResponse response = client.Execute(request);
6465
6428
  ```
6466
6429
 
@@ -6471,16 +6434,12 @@ let headers = [
6471
6434
  "Authorization": "Bearer <api_key>",
6472
6435
  "Content-Type": "application/json"
6473
6436
  ]
6474
- let parameters = [] as [String : Any]
6475
-
6476
- let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
6477
6437
 
6478
6438
  let request = NSMutableURLRequest(url: NSURL(string: "https://api.agentmail.to/v0/inboxes")! as URL,
6479
6439
  cachePolicy: .useProtocolCachePolicy,
6480
6440
  timeoutInterval: 10.0)
6481
6441
  request.httpMethod = "POST"
6482
6442
  request.allHTTPHeaderFields = headers
6483
- request.httpBody = postData as Data
6484
6443
 
6485
6444
  let session = URLSession.shared
6486
6445
  let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
@@ -7474,6 +7433,10 @@ components:
7474
7433
  $ref: '#/components/schemas/type_messages:MessageText'
7475
7434
  html:
7476
7435
  $ref: '#/components/schemas/type_messages:MessageHtml'
7436
+ extracted_text:
7437
+ type: string
7438
+ extracted_html:
7439
+ type: string
7477
7440
  attachments:
7478
7441
  $ref: '#/components/schemas/type_messages:MessageAttachments'
7479
7442
  in_reply_to:
@@ -8583,6 +8546,10 @@ components:
8583
8546
  $ref: '#/components/schemas/type_messages:MessageText'
8584
8547
  html:
8585
8548
  $ref: '#/components/schemas/type_messages:MessageHtml'
8549
+ extracted_text:
8550
+ type: string
8551
+ extracted_html:
8552
+ type: string
8586
8553
  attachments:
8587
8554
  $ref: '#/components/schemas/type_messages:MessageAttachments'
8588
8555
  in_reply_to:
@@ -9890,6 +9857,10 @@ components:
9890
9857
  $ref: '#/components/schemas/type_messages:MessageText'
9891
9858
  html:
9892
9859
  $ref: '#/components/schemas/type_messages:MessageHtml'
9860
+ extracted_text:
9861
+ type: string
9862
+ extracted_html:
9863
+ type: string
9893
9864
  attachments:
9894
9865
  $ref: '#/components/schemas/type_messages:MessageAttachments'
9895
9866
  in_reply_to:
@@ -12671,6 +12642,10 @@ components:
12671
12642
  $ref: '#/components/schemas/type_messages:MessageText'
12672
12643
  html:
12673
12644
  $ref: '#/components/schemas/type_messages:MessageHtml'
12645
+ extracted_text:
12646
+ type: string
12647
+ extracted_html:
12648
+ type: string
12674
12649
  attachments:
12675
12650
  $ref: '#/components/schemas/type_messages:MessageAttachments'
12676
12651
  in_reply_to:
@@ -16086,6 +16061,10 @@ components:
16086
16061
  $ref: '#/components/schemas/type_messages:MessageText'
16087
16062
  html:
16088
16063
  $ref: '#/components/schemas/type_messages:MessageHtml'
16064
+ extracted_text:
16065
+ type: string
16066
+ extracted_html:
16067
+ type: string
16089
16068
  attachments:
16090
16069
  $ref: '#/components/schemas/type_messages:MessageAttachments'
16091
16070
  in_reply_to:
@@ -17099,6 +17078,10 @@ components:
17099
17078
  $ref: '#/components/schemas/type_messages:MessageText'
17100
17079
  html:
17101
17080
  $ref: '#/components/schemas/type_messages:MessageHtml'
17081
+ extracted_text:
17082
+ type: string
17083
+ extracted_html:
17084
+ type: string
17102
17085
  attachments:
17103
17086
  $ref: '#/components/schemas/type_messages:MessageAttachments'
17104
17087
  in_reply_to:
@@ -20666,6 +20649,10 @@ components:
20666
20649
  $ref: '#/components/schemas/type_messages:MessageText'
20667
20650
  html:
20668
20651
  $ref: '#/components/schemas/type_messages:MessageHtml'
20652
+ extracted_text:
20653
+ type: string
20654
+ extracted_html:
20655
+ type: string
20669
20656
  attachments:
20670
20657
  $ref: '#/components/schemas/type_messages:MessageAttachments'
20671
20658
  in_reply_to:
package/dist/llms.txt CHANGED
@@ -12,11 +12,7 @@
12
12
  - [Labels](https://docs.agentmail.to/labels.mdx): Learn how to use Labels to manage state, track campaigns, and filter messages for powerful agentic workflows.
13
13
  - [Attachments](https://docs.agentmail.to/attachments.mdx): Learn how to send files as attachments, and download incoming attachments from both messages and threads.
14
14
  - [Pods](https://docs.agentmail.to/documentation/core-concepts/pods.mdx): Learn how to use pods for multi-tenant email management
15
- - [Integrations](https://docs.agentmail.to/integrations/overview.mdx): Overview of AgentMail's integrations
16
15
  - [Replit](https://docs.agentmail.to/integrations/replit.mdx): AgentMail's Replit integration
17
- - [Smithery](https://docs.agentmail.to/integrations/smithery.mdx): AgentMail's Smithery integration
18
- - [Mastra](https://docs.agentmail.to/integrations/mastra.mdx): AgentMail's Mastra integration
19
- - [CrewAI](https://docs.agentmail.to/integrations/crewai.mdx): AgentMail's CrewAI integration
20
16
  - [Guide: Sending & Receiving Email](https://docs.agentmail.to/sending-receiving-email.mdx): A step-by-step guide to the practical workflow of sending initial emails and handling replies to have a full conversation.
21
17
  - [Using Custom Domains](https://docs.agentmail.to/custom-domains.mdx): A step-by-step guide to configuring your custom domain with AgentMail for enhanced branding and trust.
22
18
  - [Managing Your Domains](https://docs.agentmail.to/managing-domains.mdx): Learn how to manage your custom domains effectively using AgentMail's API for enhanced deliverability and reputation management.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentmail",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "private": false,
5
5
  "repository": "github:agentmail-to/agentmail-node",
6
6
  "type": "commonjs",
package/reference.md CHANGED
@@ -111,7 +111,7 @@ await client.inboxes.get("inbox_id");
111
111
  <dd>
112
112
 
113
113
  ```typescript
114
- await client.inboxes.create({});
114
+ await client.inboxes.create(undefined);
115
115
 
116
116
  ```
117
117
  </dd>