agentmail 0.1.13 → 0.1.15

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 (84) hide show
  1. package/dist/cjs/BaseClient.js +2 -2
  2. package/dist/cjs/api/resources/domains/types/RecordStatus.d.ts +2 -1
  3. package/dist/cjs/api/resources/domains/types/RecordStatus.js +2 -1
  4. package/dist/cjs/api/resources/domains/types/VerificationStatus.d.ts +4 -1
  5. package/dist/cjs/api/resources/domains/types/VerificationStatus.js +4 -1
  6. package/dist/cjs/api/resources/events/types/EventTypes.d.ts +1 -1
  7. package/dist/cjs/api/resources/events/types/InboxIds.d.ts +4 -0
  8. package/dist/cjs/api/resources/events/types/PodIds.d.ts +4 -0
  9. package/dist/cjs/api/resources/events/types/PodIds.js +3 -0
  10. package/dist/cjs/api/resources/events/types/index.d.ts +2 -0
  11. package/dist/cjs/api/resources/events/types/index.js +2 -0
  12. package/dist/cjs/api/resources/webhooks/types/CreateWebhookRequest.d.ts +2 -1
  13. package/dist/cjs/api/resources/webhooks/types/Webhook.d.ts +2 -1
  14. package/dist/cjs/api/resources/webhooks/types/index.d.ts +0 -1
  15. package/dist/cjs/api/resources/webhooks/types/index.js +0 -1
  16. package/dist/cjs/api/resources/websockets/types/Subscribe.d.ts +2 -4
  17. package/dist/cjs/api/resources/websockets/types/Subscribed.d.ts +2 -4
  18. package/dist/cjs/serialization/resources/domains/types/RecordStatus.d.ts +1 -1
  19. package/dist/cjs/serialization/resources/domains/types/RecordStatus.js +1 -1
  20. package/dist/cjs/serialization/resources/domains/types/VerificationStatus.d.ts +1 -1
  21. package/dist/cjs/serialization/resources/domains/types/VerificationStatus.js +1 -1
  22. package/dist/cjs/serialization/resources/{webhooks → events}/types/InboxIds.d.ts +1 -1
  23. package/dist/cjs/serialization/resources/events/types/PodIds.d.ts +7 -0
  24. package/dist/cjs/serialization/resources/events/types/PodIds.js +39 -0
  25. package/dist/cjs/serialization/resources/events/types/index.d.ts +2 -0
  26. package/dist/cjs/serialization/resources/events/types/index.js +2 -0
  27. package/dist/cjs/serialization/resources/webhooks/types/CreateWebhookRequest.d.ts +3 -1
  28. package/dist/cjs/serialization/resources/webhooks/types/CreateWebhookRequest.js +3 -1
  29. package/dist/cjs/serialization/resources/webhooks/types/Webhook.d.ts +3 -1
  30. package/dist/cjs/serialization/resources/webhooks/types/Webhook.js +3 -1
  31. package/dist/cjs/serialization/resources/webhooks/types/index.d.ts +0 -1
  32. package/dist/cjs/serialization/resources/webhooks/types/index.js +0 -1
  33. package/dist/cjs/serialization/resources/websockets/types/Subscribe.d.ts +4 -2
  34. package/dist/cjs/serialization/resources/websockets/types/Subscribe.js +4 -2
  35. package/dist/cjs/serialization/resources/websockets/types/Subscribed.d.ts +4 -2
  36. package/dist/cjs/serialization/resources/websockets/types/Subscribed.js +4 -2
  37. package/dist/cjs/version.d.ts +1 -1
  38. package/dist/cjs/version.js +1 -1
  39. package/dist/esm/BaseClient.mjs +2 -2
  40. package/dist/esm/api/resources/domains/types/RecordStatus.d.mts +2 -1
  41. package/dist/esm/api/resources/domains/types/RecordStatus.mjs +2 -1
  42. package/dist/esm/api/resources/domains/types/VerificationStatus.d.mts +4 -1
  43. package/dist/esm/api/resources/domains/types/VerificationStatus.mjs +4 -1
  44. package/dist/esm/api/resources/events/types/EventTypes.d.mts +1 -1
  45. package/dist/esm/api/resources/events/types/InboxIds.d.mts +4 -0
  46. package/dist/esm/api/resources/events/types/PodIds.d.mts +4 -0
  47. package/dist/esm/api/resources/events/types/PodIds.mjs +2 -0
  48. package/dist/esm/api/resources/events/types/index.d.mts +2 -0
  49. package/dist/esm/api/resources/events/types/index.mjs +2 -0
  50. package/dist/esm/api/resources/webhooks/types/CreateWebhookRequest.d.mts +2 -1
  51. package/dist/esm/api/resources/webhooks/types/Webhook.d.mts +2 -1
  52. package/dist/esm/api/resources/webhooks/types/index.d.mts +0 -1
  53. package/dist/esm/api/resources/webhooks/types/index.mjs +0 -1
  54. package/dist/esm/api/resources/websockets/types/Subscribe.d.mts +2 -4
  55. package/dist/esm/api/resources/websockets/types/Subscribed.d.mts +2 -4
  56. package/dist/esm/serialization/resources/domains/types/RecordStatus.d.mts +1 -1
  57. package/dist/esm/serialization/resources/domains/types/RecordStatus.mjs +1 -1
  58. package/dist/esm/serialization/resources/domains/types/VerificationStatus.d.mts +1 -1
  59. package/dist/esm/serialization/resources/domains/types/VerificationStatus.mjs +1 -1
  60. package/dist/esm/serialization/resources/{webhooks → events}/types/InboxIds.d.mts +1 -1
  61. package/dist/esm/serialization/resources/events/types/PodIds.d.mts +7 -0
  62. package/dist/esm/serialization/resources/events/types/PodIds.mjs +3 -0
  63. package/dist/esm/serialization/resources/events/types/index.d.mts +2 -0
  64. package/dist/esm/serialization/resources/events/types/index.mjs +2 -0
  65. package/dist/esm/serialization/resources/webhooks/types/CreateWebhookRequest.d.mts +3 -1
  66. package/dist/esm/serialization/resources/webhooks/types/CreateWebhookRequest.mjs +3 -1
  67. package/dist/esm/serialization/resources/webhooks/types/Webhook.d.mts +3 -1
  68. package/dist/esm/serialization/resources/webhooks/types/Webhook.mjs +3 -1
  69. package/dist/esm/serialization/resources/webhooks/types/index.d.mts +0 -1
  70. package/dist/esm/serialization/resources/webhooks/types/index.mjs +0 -1
  71. package/dist/esm/serialization/resources/websockets/types/Subscribe.d.mts +4 -2
  72. package/dist/esm/serialization/resources/websockets/types/Subscribe.mjs +4 -2
  73. package/dist/esm/serialization/resources/websockets/types/Subscribed.d.mts +4 -2
  74. package/dist/esm/serialization/resources/websockets/types/Subscribed.mjs +4 -2
  75. package/dist/esm/version.d.mts +1 -1
  76. package/dist/esm/version.mjs +1 -1
  77. package/dist/llms-full.txt +181 -173
  78. package/package.json +1 -1
  79. package/dist/cjs/api/resources/webhooks/types/InboxIds.d.ts +0 -4
  80. package/dist/esm/api/resources/webhooks/types/InboxIds.d.mts +0 -4
  81. /package/dist/cjs/api/resources/{webhooks → events}/types/InboxIds.js +0 -0
  82. /package/dist/cjs/serialization/resources/{webhooks → events}/types/InboxIds.js +0 -0
  83. /package/dist/esm/api/resources/{webhooks → events}/types/InboxIds.mjs +0 -0
  84. /package/dist/esm/serialization/resources/{webhooks → events}/types/InboxIds.mjs +0 -0
@@ -5,7 +5,7 @@
5
5
  <Tip title="Welcome to AgentMail!" icon="fa-solid fa-star" />
6
6
 
7
7
  <Frame caption="We're excited to have you onboard!">
8
- <img src="file:310e2395-5411-4afa-b39b-892397ecb1ca" alt="We're excited to have you onboard!" />
8
+ <img src="file:e53d2b86-fc27-4718-9b51-14cf6ad0cf40" alt="We're excited to have you onboard!" />
9
9
  </Frame>
10
10
 
11
11
  AgentMail is an API platform for giving AI agents their own inboxes to send, receive, and act upon emails. This allows agents to assume their own identity and communicate via the universal protocol of email with services, people, and other agents.
@@ -171,7 +171,7 @@ This guide will walk you through installing the AgentMail SDK, authenticating wi
171
171
  <Step title="Create an API Key">
172
172
  Now that you're in the console, you'll need to create an API key to
173
173
  authenticate your requests. Navigate to the API Keys section in your console
174
- dashboard. ![API Key Creation Screenshot](file:96bda405-2981-443a-a64d-e1a2835c9fb0) Click
174
+ dashboard. ![API Key Creation Screenshot](file:da49aed8-52d2-4bb8-9fca-f018e82fe721) Click
175
175
  "Create New API Key" and give it a descriptive name. Once created, copy the
176
176
  API key and store it securely. Create a `.env` file in your project's root
177
177
  directory and add your key to it. We recommend using environment variables to
@@ -322,7 +322,7 @@ Unlike traditional email providers that are designed for human scale, AgentMail
322
322
 
323
323
  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.
324
324
 
325
- <img src="file:b0c8b4e6-563d-4ff5-b08c-d9dde55452da" alt="AgentMail Organizational Hierarchy" />
325
+ <img src="file:ca8f8d7a-74d3-4f45-8b91-767788e96af6" alt="AgentMail Organizational Hierarchy" />
326
326
 
327
327
  <Steps>
328
328
  <Step title="Organization">
@@ -742,7 +742,7 @@ Here is an example of a well-structured and styled HTML header:
742
742
  </CodeBlocks>
743
743
 
744
744
  <Frame caption="Look how pretty this message looks!">
745
- <img src="file:1e8d927e-c68d-49f1-8278-166497a45a69" alt="rendered css" />
745
+ <img src="file:149f72bc-a78d-4519-95c1-fa25a108d242" alt="rendered css" />
746
746
  </Frame>
747
747
 
748
748
  ## Receiving `Messages`
@@ -1981,10 +1981,29 @@ Configuring your domain is a three-step process: add the domain via API, copy th
1981
1981
  After creating your domain in the AgentMail Console, click the "Download BIND Zone File" button to get the complete zone file.
1982
1982
 
1983
1983
  <Frame caption="Downloading BIND zone file from AgentMail Console">
1984
- <img src="file:d9e83f6a-1341-4b14-b758-7e3508a231d4" alt="Download BIND Zone File from Console" />
1984
+ <img src="file:b2476421-c898-403a-8fb9-1c285f2475ba" alt="Download BIND Zone File from Console" />
1985
1985
  </Frame>
1986
1986
 
1987
1987
  <Tabs>
1988
+ <Tab title="Cloudflare">
1989
+ **Step 2: Import to Cloudflare**
1990
+
1991
+ 1. Go to your Cloudflare dashboard and select your domain
1992
+ 2. Navigate to **DNS > Records**
1993
+
1994
+ <Frame caption="This is what the page looks like">
1995
+ <img src="file:1fb7b8c5-abf2-40f4-8580-8b50008be7b5" alt="Cloudflare BIND Import" />
1996
+ </Frame>
1997
+
1998
+ 3. Click **"Import and Export"**
1999
+
2000
+ <Frame caption="You should be able to just drop the file in">
2001
+ <img src="file:f1d72f77-daad-4cab-af9d-7ed652ff7d03" alt="Cloudflare BIND Import" />
2002
+ </Frame>
2003
+
2004
+ 4. Upload the downloaded BIND zone file as is
2005
+ </Tab>
2006
+
1988
2007
  <Tab title="AWS Route 53">
1989
2008
  **Step 2: Import to Route 53**
1990
2009
 
@@ -1992,35 +2011,32 @@ Configuring your domain is a three-step process: add the domain via API, copy th
1992
2011
  2. Click **"Import zone file"** in the top right corner
1993
2012
 
1994
2013
  <Frame caption="Importing BIND zone file in AWS Route 53">
1995
- <img src="file:328d8c68-88cf-42ea-bce3-5630206b406d" alt="AWS Route 53 BIND Import" />
2014
+ <img src="file:1902dcea-b3a3-4d84-a2ae-c368b1e7f573" alt="AWS Route 53 BIND Import" />
1996
2015
  </Frame>
1997
2016
 
1998
2017
  3. Paste the CONTENTS of downloaded BIND zone file
1999
2018
 
2000
2019
  <Frame caption="Open the file with text editor and paste the contents. It should look similar to what we have in this image.">
2001
- <img src="file:35f3a2a1-77a9-4a1f-932d-1e580a86eae2" alt="AWS Route 53 BIND Import" />
2020
+ <img src="file:253c47aa-4c82-4d30-8dd6-21f74cb60b8d" alt="AWS Route 53 BIND Import" />
2002
2021
  </Frame>
2003
2022
 
2004
2023
  4. Review the records and click **"Import"**
2005
- </Tab>
2006
2024
 
2007
- <Tab title="Cloudflare">
2008
- **Step 2: Import to Cloudflare**
2025
+ <Warning title="CRITICAL: Route 53 TXT Record 255 Character Limit">
2026
+ **AWS Route 53 has a 255 character maximum per string.** It will get angry at the DKIM record since it is longer than 255 chars (we use more secure encryption key so we get better deliverability with Gmail!)
2009
2027
 
2010
- 1. Go to your Cloudflare dashboard and select your domain
2011
- 2. Navigate to **DNS > Records**
2028
+ **When entering TXT values in the Route 53 UI, you MUST do the following.**
2012
2029
 
2013
- <Frame caption="This is what the page looks like">
2014
- <img src="file:0caf7073-c006-46c3-aa5b-67ea84d2cf76" alt="Cloudflare BIND Import" />
2015
- </Frame>
2030
+ 1. Split the value into two quoted strings.
2031
+ a. e.g.: "abcd" -> "ab""cd"
2032
+ 2. Ensure there is NO SPACE between the quoted strings. This will make or break validation.
2016
2033
 
2017
- 3. Click **"Import and Export"**
2034
+ **Correct:** `"first-part-of-value""second-part-of-value"`
2018
2035
 
2019
- <Frame caption="You should be able to just drop the file in">
2020
- <img src="file:6ed60e97-c0e8-448d-a7e7-220170cdda24" alt="Cloudflare BIND Import" />
2021
- </Frame>
2036
+ **Wrong:** `"first-part-of-value" "second-part-of-value"` (space between strings)
2022
2037
 
2023
- 4. Upload the downloaded BIND zone file as is
2038
+ If you accidentally include a space or click enter, Route 53 will create **two separate TXT records** instead of one concatenated record. This will cause email authentication to fail, and providers like **Gmail will reject your emails**.
2039
+ </Warning>
2024
2040
  </Tab>
2025
2041
 
2026
2042
  <Tab title="Porkbun">
@@ -2030,13 +2046,13 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2030
2046
  2. Navigate to the **DNS** subtab of the domain you want to send from
2031
2047
 
2032
2048
  <Frame caption="Click on this button!">
2033
- <img src="file:9fe338be-7731-4fb0-b136-c2b6fa86a7de" alt="Porkbun DNS Management" />
2049
+ <img src="file:7a037d10-18ee-46d3-82bf-ffd2ce684655" alt="Porkbun DNS Management" />
2034
2050
  </Frame>
2035
2051
 
2036
2052
  3. Scroll down to the quick upload section
2037
2053
 
2038
2054
  <Frame caption="Upload your BIND zone file here">
2039
- <img src="file:db814e7e-4737-488a-bccc-2d581772369b" alt="Porkbun Zone File Import" />
2055
+ <img src="file:f1a1b25e-e3c4-41ef-afce-e16d23a491e5" alt="Porkbun Zone File Import" />
2040
2056
  </Frame>
2041
2057
 
2042
2058
  4. Upload the downloaded BIND zone file as is
@@ -2054,7 +2070,7 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2054
2070
  </Tabs>
2055
2071
 
2056
2072
  <Callout type="info" title="BIND Zone File Format">
2057
- Check that all records (CNAME, TXT, MX) have been correctly imported in the
2073
+ Check that all records (TXT, MX) have been correctly imported in the
2058
2074
  console(the console will show in real time if we can find the records,
2059
2075
  typically within seconds).
2060
2076
  </Callout>
@@ -2068,38 +2084,46 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2068
2084
  If you created your domain through the [AgentMail Console](https://console.agentmail.to), the DNS records are displayed in a simplified format that's ready for copy-paste into your DNS provider.
2069
2085
 
2070
2086
  <Tabs>
2087
+ <Tab title="Cloudflare">
2088
+ In the dashboard (**DNS > Records**), click **"Add record"**.
2089
+
2090
+ * **TXT (DMARC/SPF/DKIM):**
2091
+ * **Name:** Copy the **Name** value directly from the console.
2092
+ * **Content:** Copy the **Value** from the console.
2093
+
2094
+ * **MX:**
2095
+ * **Name:** Enter `@` to apply the record to the root domain.
2096
+ * **Mail server:** Copy the **Value** from the console.
2097
+ * **Priority:** Use the priority shown in the console.
2098
+ </Tab>
2099
+
2071
2100
  <Tab title="AWS Route 53">
2072
2101
  In your hosted zone, click **"Create record"**.
2073
2102
 
2074
- * **CNAME (DKIM):**
2075
- * **Record name:** Copy the **Name** value directly from the console (e.g., `abc123._domainkey`).
2076
- * **Value:** Copy the **Value** from the console (e.g., `abc123.dkim.amazonses.com`).
2077
-
2078
2103
  * **TXT (DMARC/SPF):**
2079
- * **Record name:** Copy the **Name** value directly from the console (e.g., `_dmarc` or `mail`).
2104
+ * **Record name:** Copy the **Name** value directly from the console (e.g., `_dmarc` or `mail` or `agentmail._domainkey`).
2080
2105
  * **Value:** Copy the **Value** from the console, ensuring it is enclosed in quotes.
2081
2106
 
2082
- * **MX:**
2083
- * **Record name:** Enter the value exactly as we return it, whether its `@` or the subdomain.
2084
- * **Value:** Copy the **Value** from the console (e.g., `inbound-smtp.us-east-1.amazonaws.com`).
2085
- * **Priority:** Use the priority shown in the console (typically `10`).
2086
- </Tab>
2107
+ <Warning title="CRITICAL: Route 53 TXT Record 255 Character Limit">
2108
+ **AWS Route 53 has a 255 character maximum per string.** It will get angry at the DKIM record since it is longer than 255 chars (we use more secure encryption key so we get better deliverability with Gmail!)
2087
2109
 
2088
- <Tab title="Cloudflare">
2089
- In the dashboard (**DNS > Records**), click **"Add record"**.
2110
+ **When entering TXT values in the Route 53 UI, you MUST do the following.**
2090
2111
 
2091
- * **CNAME (DKIM):**
2092
- * **Name:** Copy the **Name** value directly from the console.
2093
- * **Target:** Copy the **Value** from the console.
2112
+ 1. Split the value into two quoted strings.
2113
+ a. e.g.: "abcd" -> "ab""cd"
2114
+ 2. Ensure there is NO SPACE between the quoted strings. This will make or break validation.
2094
2115
 
2095
- * **TXT (DMARC/SPF):**
2096
- * **Name:** Copy the **Name** value directly from the console.
2097
- * **Content:** Copy the **Value** from the console.
2116
+ **Correct:** `"first-part-of-value""second-part-of-value"`
2117
+
2118
+ **Wrong:** `"first-part-of-value" "second-part-of-value"` (space between strings)
2119
+
2120
+ If you accidentally include a space or click enter, Route 53 will create **two separate TXT records** instead of one concatenated record. This will cause email authentication to fail, and providers like **Gmail will reject your emails**.
2121
+ </Warning>
2098
2122
 
2099
2123
  * **MX:**
2100
- * **Name:** Enter `@` to apply the record to the root domain.
2101
- * **Mail server:** Copy the **Value** from the console.
2102
- * **Priority:** Use the priority shown in the console.
2124
+ * **Record name:** Enter the value exactly as we return it, whether its `@` or the subdomain.
2125
+ * **Value:** Copy the **Value** from the console (e.g., `inbound-smtp.us-east-1.amazonaws.com`).
2126
+ * **Priority:** Use the priority shown in the console (typically `10`).
2103
2127
  </Tab>
2104
2128
  </Tabs>
2105
2129
 
@@ -2112,41 +2136,45 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2112
2136
  If you're using the API directly, the DNS records are returned as fully qualified domain names (FQDNs) that require some manual parsing.
2113
2137
 
2114
2138
  <Tabs>
2139
+ <Tab title="Cloudflare">
2140
+ In the dashboard (**DNS > Records**), click **"Add record"**.
2141
+
2142
+ * **TXT (DMARC/SPF/DKIM):**
2143
+ * **Name:** Enter the part of the `name` before your root domain (e.g. `_dmarc`).
2144
+ * **Content:** Copy paste the `value` from the API response.
2145
+
2146
+ * **MX:**
2147
+ * **Name:** Enter the part of the name before your root domain
2148
+ * **Mail server:** Enter the `value` from the API.
2149
+ * **Priority:** Enter the `priority` from the API.
2150
+ </Tab>
2151
+
2115
2152
  <Tab title="AWS Route 53">
2116
2153
  In your hosted zone, click **"Create record"**.
2117
2154
 
2118
- * **CNAME (DKIM):**
2119
- * **Record name:** Enter the part of the `name` before your root domain (e.g., `{random_letters_numbers}._domainkey` for a `name` of `{random_letters_numbers}._domainkey.domain.com`).
2120
- * **Value:** Can directly copy paste the `value` from the API response (e.g., `{random_letters_numbers}.dkim.amazonses.com`).
2155
+ * **TXT (DMARC/SPF/DKIM):**
2156
+ * **Record name:** Enter the part of the `name` before your root domain (e.g., `_dmarc` for a `name` of `_dmarc.domain.com`, or `mail` for a `name` of `mail.domain.com`, or `agentmail._domainkey` for a `name` of agentmail.\_domainkey.agents.com).
2157
+ * **Value:** Can copy paste the`value` from the API, ensuring it is enclosed in quotes.
2121
2158
 
2122
- <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!">
2123
- <img src="file:97040bb3-e526-420e-b804-9043ccec9a68" alt="AWS Route 53 Record Configuration" />
2124
- </Frame>
2159
+ <Warning title="CRITICAL: Route 53 TXT Record 255 Character Limit">
2160
+ **AWS Route 53 has a 255 character maximum per string.** It will get angry at the DKIM record since it is longer than 255 chars (we use more secure encryption key so we get better deliverability with Gmail!)
2125
2161
 
2126
- * **TXT (DMARC/SPF):**
2127
- * **Record name:** Enter the part of the `name` before your root domain (e.g., `_dmarc` for a `name` of `_dmarc.domain.com`, or `mail` for a `name` of `mail.domain.com`).
2128
- * **Value:** Can copy paste the`value` from the API, ensuring it is enclosed in quotes.
2162
+ **When entering TXT values in the Route 53 UI, you MUST do the following.**
2129
2163
 
2130
- * **MX:**
2131
- * **Record name:** Leave this field blank to apply the record to the root domain.
2132
- * **Value:** This is critical. You must combine the `priority` and `value` from the API into a single string, separated by a space. For example: `10 inbound-smtp.us-east-1.amazonaws.com`.
2133
- </Tab>
2164
+ 1. Split the value into two quoted strings.
2165
+ a. e.g.: "abcd" -> "ab""cd"
2166
+ 2. Ensure there is NO SPACE between the quoted strings. This will make or break validation.
2134
2167
 
2135
- <Tab title="Cloudflare">
2136
- In the dashboard (**DNS > Records**), click **"Add record"**.
2168
+ **Correct:** `"first-part-of-value""second-part-of-value"`
2137
2169
 
2138
- * **CNAME (DKIM):**
2139
- * **Name:** Enter the part of the `name` before your root domain (e.g., `{random_letters_numbers}._domainkey`).
2140
- * **Target:** Copy paste the `value` from the API response.
2170
+ **Wrong:** `"first-part-of-value" "second-part-of-value"` (space between strings)
2141
2171
 
2142
- * **TXT (DMARC/SPF):**
2143
- * **Name:** Enter the part of the `name` before your root domain (e.g. `_dmarc`).
2144
- * **Content:** Copy paste the `value` from the API response.
2172
+ If you accidentally include a space or click enter, Route 53 will create **two separate TXT records** instead of one concatenated record. This will cause email authentication to fail, and providers like **Gmail will reject your emails**.
2173
+ </Warning>
2145
2174
 
2146
2175
  * **MX:**
2147
- * **Name:** Enter the part of the name before your root domain
2148
- * **Mail server:** Enter the `value` from the API.
2149
- * **Priority:** Enter the `priority` from the API.
2176
+ * **Record name:** Leave this field blank to apply the record to the root domain.
2177
+ * **Value:** This is critical. You must combine the `priority` and `value` from the API into a single string, separated by a space. For example: `10 inbound-smtp.us-east-1.amazonaws.com`.
2150
2178
  </Tab>
2151
2179
  </Tabs>
2152
2180
  </Tab>
@@ -2176,15 +2204,15 @@ Configuring your domain is a three-step process: add the domain via API, copy th
2176
2204
 
2177
2205
  Here are instructions for some common DNS providers. This list is not exhaustive, so please consult your provider's documentation if you don't see it here.
2178
2206
 
2179
- | DNS/Hosting Provider | Documentation Link |
2180
- | :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
2181
- | **GoDaddy** | [CNAME: Add a CNAME record](https://www.godaddy.com/help/add-a-cname-record-19236) <br /> [MX: Add an MX record](https://www.godaddy.com/help/add-an-mx-record-19234) <br /> [TXT: Add a TXT record](https://www.godaddy.com/help/add-a-txt-record-19232) |
2182
- | **DreamHost** | [CNAME/MX/TXT: How do I add custom DNS records?](https://help.dreamhost.com/hc/en-us/articles/215414867-How-do-I-add-custom-DNS-records) |
2183
- | **Cloudflare** | [MX: How do I add or edit mail or MX records?](https://support.cloudflare.com/hc/en-us/articles/200168806-Managing-DNS-records-in-Cloudflare) <br /> [TXT: Managing DNS records in Cloudflare](https://support.cloudflare.com/hc/en-us/articles/200168806-Managing-DNS-records-in-Cloudflare) |
2184
- | **HostGator** | [CNAME/MX/TXT: Manage DNS Records with HostGator/eNom](https://www.hostgator.com/help/article/manage-dns-records-with-hostgator-enom) |
2185
- | **Namecheap** | [CNAME: How to create a CNAME record](https://www.namecheap.com/support/knowledgebase/article.aspx/9646/2237/how-to-create-a-cname-record-for-your-domain/) <br /> [MX: How can I set up MX records required for mail service?](https://www.namecheap.com/support/knowledgebase/article.aspx/434/2237/how-can-i-set-up-mx-records-required-for-mail-service) <br /> [TXT: How do I add TXT/SPF/DKIM/DMARC records for my domain?](https://www.namecheap.com/support/knowledgebase/article.aspx/317/2237/how-do-i-add-txtspfdkimdmarc-records-for-my-domain) |
2186
- | **Names.co.uk** | [CNAME/MX/TXT: Changing your domain's DNS settings](https://www.names.co.uk/support/articles/changing-your-domains-dns-settings/) |
2187
- | **Wix** | [CNAME: Adding or Updating CNAME Records](https://support.wix.com/en/article/adding-or-updating-cname-records-in-your-wix-account) <br /> [MX: Adding or Updating MX Records in Your Wix Account](https://support.wix.com/en/article/adding-or-updating-mx-records-in-your-wix-account) <br /> [TXT: Adding or Updating TXT Records in Your Wix Account](https://support.wix.com/en/article/adding-or-updating-txt-records-in-your-wix-account) |
2207
+ | DNS/Hosting Provider | Documentation Link |
2208
+ | :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
2209
+ | **GoDaddy** | [MX: Add an MX record](https://www.godaddy.com/help/add-an-mx-record-19234) <br /> [TXT: Add a TXT record](https://www.godaddy.com/help/add-a-txt-record-19232) |
2210
+ | **DreamHost** | [How do I add custom DNS records?](https://help.dreamhost.com/hc/en-us/articles/215414867-How-do-I-add-custom-DNS-records) |
2211
+ | **Cloudflare** | [MX: How do I add or edit mail or MX records?](https://support.cloudflare.com/hc/en-us/articles/200168806-Managing-DNS-records-in-Cloudflare) <br /> [TXT: Managing DNS records in Cloudflare](https://support.cloudflare.com/hc/en-us/articles/200168806-Managing-DNS-records-in-Cloudflare) |
2212
+ | **HostGator** | [Manage DNS Records with HostGator/eNom](https://www.hostgator.com/help/article/manage-dns-records-with-hostgator-enom) |
2213
+ | **Namecheap** | [MX: How can I set up MX records required for mail service?](https://www.namecheap.com/support/knowledgebase/article.aspx/434/2237/how-can-i-set-up-mx-records-required-for-mail-service) <br /> [TXT: How do I add TXT/SPF/DKIM/DMARC records for my domain?](https://www.namecheap.com/support/knowledgebase/article.aspx/317/2237/how-do-i-add-txtspfdkimdmarc-records-for-my-domain) |
2214
+ | **Names.co.uk** | [Changing your domain's DNS settings](https://www.names.co.uk/support/articles/changing-your-domains-dns-settings/) |
2215
+ | **Wix** | [MX: Adding or Updating MX Records in Your Wix Account](https://support.wix.com/en/article/adding-or-updating-mx-records-in-your-wix-account) <br /> [TXT: Adding or Updating TXT Records in Your Wix Account](https://support.wix.com/en/article/adding-or-updating-txt-records-in-your-wix-account) |
2188
2216
 
2189
2217
  <Callout type="success" title="Ready to Go!" icon="fa-solid fa-rocket">
2190
2218
  Once your domain status is `ready`, you can start creating `Inboxes` with your
@@ -2842,13 +2870,13 @@ Ngrok creates a secure tunnel from a public URL to your local development server
2842
2870
 
2843
2871
  Visit [ngrok.com](https://ngrok.com/) and click "Sign up" to create a free account.
2844
2872
 
2845
- <img src="file:cacdfa4e-696b-4485-8833-67280879d17d" alt="Ngrok homepage" />
2873
+ <img src="file:6fac6217-a180-4bb3-8d3b-d7d7bda85343" alt="Ngrok homepage" />
2846
2874
 
2847
2875
  ### 1.2 Choose your platform and install
2848
2876
 
2849
2877
  After logging in, ngrok will guide you through the setup process. Select your operating system and follow the installation instructions.
2850
2878
 
2851
- <img src="file:def52365-4003-4d3f-9b50-b9abb02ecd4b" alt="Ngrok setup instructions" />
2879
+ <img src="file:dcf53b09-c6e2-494c-afdb-4be04830d89b" alt="Ngrok setup instructions" />
2852
2880
 
2853
2881
  For macOS, you can install ngrok via Homebrew:
2854
2882
 
@@ -2894,7 +2922,7 @@ ngrok http 3000
2894
2922
 
2895
2923
  You should see output similar to this:
2896
2924
 
2897
- <img src="file:2894d030-381a-4542-96a8-38db296ce8d5" alt="Ngrok terminal output" />
2925
+ <img src="file:8b6e039d-c311-41d5-99c4-054c326bd107" alt="Ngrok terminal output" />
2898
2926
 
2899
2927
  Copy the **Forwarding URL** (e.g., `https://your-subdomain.ngrok-free.app`). This is the public URL that AgentMail will use to send webhooks.
2900
2928
 
@@ -2991,7 +3019,7 @@ python webhook_receiver.py
2991
3019
 
2992
3020
  Open your browser and visit `http://127.0.0.1:3000` to see the status page confirming your webhook receiver is running:
2993
3021
 
2994
- <img src="file:3615403f-ba34-4b46-8b25-c654950bca80" alt="Webhook receiver status page" />
3022
+ <img src="file:01ea6d2c-542b-44a1-b485-1fdc62145b1e" alt="Webhook receiver status page" />
2995
3023
 
2996
3024
  ## Testing Your Setup
2997
3025
 
@@ -3488,7 +3516,7 @@ How you send your emails is just as important as what you send. If you're sendin
3488
3516
  more natural to email providers. AgentMail's ability to create inboxes at
3489
3517
  scale makes this strategy easy to implement.
3490
3518
 
3491
- <img src="file:3af96ac6-1192-4d7c-9c5c-faefe4c6dc84" alt="Diagram comparing one inbox sending 1000 emails vs. five inboxes sending 200 each." />
3519
+ <img src="file:c8e83af7-6444-48c7-be8b-8b8531b5bb9d" alt="Diagram comparing one inbox sending 1000 emails vs. five inboxes sending 200 each." />
3492
3520
  </Step>
3493
3521
 
3494
3522
  <Step title="Protect Your Reputation with Multiple Domains">
@@ -5507,7 +5535,7 @@ Done
5507
5535
 
5508
5536
  Go to your AgentMail inbox and filter by labels to organize your emails:
5509
5537
 
5510
- <img src="file:d68eacab-1cee-4bd4-96b5-0e2a1aed4774" alt="Test image" />
5538
+ <img src="file:80803caa-05f7-4aea-8dd0-1d65380cd6ba" alt="Test image" />
5511
5539
 
5512
5540
  **Filter by sentiment:**
5513
5541
 
@@ -7630,6 +7658,11 @@ paths:
7630
7658
  required: false
7631
7659
  schema:
7632
7660
  $ref: '#/components/schemas/type_:Ascending'
7661
+ - name: include_spam
7662
+ in: query
7663
+ required: false
7664
+ schema:
7665
+ $ref: '#/components/schemas/type_:IncludeSpam'
7633
7666
  - name: Authorization
7634
7667
  in: header
7635
7668
  description: >-
@@ -7668,6 +7701,8 @@ components:
7668
7701
  format: date-time
7669
7702
  type_:Ascending:
7670
7703
  type: boolean
7704
+ type_:IncludeSpam:
7705
+ type: boolean
7671
7706
  type_:Count:
7672
7707
  type: integer
7673
7708
  type_threads:ThreadId:
@@ -8794,6 +8829,11 @@ paths:
8794
8829
  required: false
8795
8830
  schema:
8796
8831
  $ref: '#/components/schemas/type_:Ascending'
8832
+ - name: include_spam
8833
+ in: query
8834
+ required: false
8835
+ schema:
8836
+ $ref: '#/components/schemas/type_:IncludeSpam'
8797
8837
  - name: Authorization
8798
8838
  in: header
8799
8839
  description: >-
@@ -8832,6 +8872,8 @@ components:
8832
8872
  format: date-time
8833
8873
  type_:Ascending:
8834
8874
  type: boolean
8875
+ type_:IncludeSpam:
8876
+ type: boolean
8835
8877
  type_:Count:
8836
8878
  type: integer
8837
8879
  type_threads:ThreadId:
@@ -13196,6 +13238,11 @@ paths:
13196
13238
  required: false
13197
13239
  schema:
13198
13240
  $ref: '#/components/schemas/type_:Ascending'
13241
+ - name: include_spam
13242
+ in: query
13243
+ required: false
13244
+ schema:
13245
+ $ref: '#/components/schemas/type_:IncludeSpam'
13199
13246
  - name: Authorization
13200
13247
  in: header
13201
13248
  description: >-
@@ -13232,6 +13279,8 @@ components:
13232
13279
  format: date-time
13233
13280
  type_:Ascending:
13234
13281
  type: boolean
13282
+ type_:IncludeSpam:
13283
+ type: boolean
13235
13284
  type_:Count:
13236
13285
  type: integer
13237
13286
  type_inboxes:InboxId:
@@ -16126,7 +16175,11 @@ components:
16126
16175
  type: array
16127
16176
  items:
16128
16177
  $ref: '#/components/schemas/type_events:EventType'
16129
- type_webhooks:InboxIds:
16178
+ type_events:PodIds:
16179
+ type: array
16180
+ items:
16181
+ type: string
16182
+ type_events:InboxIds:
16130
16183
  type: array
16131
16184
  items:
16132
16185
  type: string
@@ -16141,14 +16194,16 @@ components:
16141
16194
  $ref: '#/components/schemas/type_webhooks:Url'
16142
16195
  event_types:
16143
16196
  $ref: '#/components/schemas/type_events:EventTypes'
16197
+ pod_ids:
16198
+ $ref: '#/components/schemas/type_events:PodIds'
16144
16199
  inbox_ids:
16145
- $ref: '#/components/schemas/type_webhooks:InboxIds'
16200
+ $ref: '#/components/schemas/type_events:InboxIds'
16146
16201
  secret:
16147
16202
  type: string
16148
16203
  description: Secret for webhook signature verification.
16149
16204
  enabled:
16150
16205
  type: boolean
16151
- description: Whether the webhook is enabled.
16206
+ description: Webhook is enabled.
16152
16207
  updated_at:
16153
16208
  type: string
16154
16209
  format: date-time
@@ -16373,7 +16428,11 @@ components:
16373
16428
  type: array
16374
16429
  items:
16375
16430
  $ref: '#/components/schemas/type_events:EventType'
16376
- type_webhooks:InboxIds:
16431
+ type_events:PodIds:
16432
+ type: array
16433
+ items:
16434
+ type: string
16435
+ type_events:InboxIds:
16377
16436
  type: array
16378
16437
  items:
16379
16438
  type: string
@@ -16388,14 +16447,16 @@ components:
16388
16447
  $ref: '#/components/schemas/type_webhooks:Url'
16389
16448
  event_types:
16390
16449
  $ref: '#/components/schemas/type_events:EventTypes'
16450
+ pod_ids:
16451
+ $ref: '#/components/schemas/type_events:PodIds'
16391
16452
  inbox_ids:
16392
- $ref: '#/components/schemas/type_webhooks:InboxIds'
16453
+ $ref: '#/components/schemas/type_events:InboxIds'
16393
16454
  secret:
16394
16455
  type: string
16395
16456
  description: Secret for webhook signature verification.
16396
16457
  enabled:
16397
16458
  type: boolean
16398
- description: Whether the webhook is enabled.
16459
+ description: Webhook is enabled.
16399
16460
  updated_at:
16400
16461
  type: string
16401
16462
  format: date-time
@@ -16604,7 +16665,11 @@ components:
16604
16665
  type: array
16605
16666
  items:
16606
16667
  $ref: '#/components/schemas/type_events:EventType'
16607
- type_webhooks:InboxIds:
16668
+ type_events:PodIds:
16669
+ type: array
16670
+ items:
16671
+ type: string
16672
+ type_events:InboxIds:
16608
16673
  type: array
16609
16674
  items:
16610
16675
  type: string
@@ -16617,8 +16682,10 @@ components:
16617
16682
  $ref: '#/components/schemas/type_webhooks:Url'
16618
16683
  event_types:
16619
16684
  $ref: '#/components/schemas/type_events:EventTypes'
16685
+ pod_ids:
16686
+ $ref: '#/components/schemas/type_events:PodIds'
16620
16687
  inbox_ids:
16621
- $ref: '#/components/schemas/type_webhooks:InboxIds'
16688
+ $ref: '#/components/schemas/type_events:InboxIds'
16622
16689
  client_id:
16623
16690
  $ref: '#/components/schemas/type_webhooks:ClientId'
16624
16691
  required:
@@ -16635,14 +16702,16 @@ components:
16635
16702
  $ref: '#/components/schemas/type_webhooks:Url'
16636
16703
  event_types:
16637
16704
  $ref: '#/components/schemas/type_events:EventTypes'
16705
+ pod_ids:
16706
+ $ref: '#/components/schemas/type_events:PodIds'
16638
16707
  inbox_ids:
16639
- $ref: '#/components/schemas/type_webhooks:InboxIds'
16708
+ $ref: '#/components/schemas/type_events:InboxIds'
16640
16709
  secret:
16641
16710
  type: string
16642
16711
  description: Secret for webhook signature verification.
16643
16712
  enabled:
16644
16713
  type: boolean
16645
- description: Whether the webhook is enabled.
16714
+ description: Webhook is enabled.
16646
16715
  updated_at:
16647
16716
  type: string
16648
16717
  format: date-time
@@ -18172,6 +18241,14 @@ components:
18172
18241
  type: array
18173
18242
  items:
18174
18243
  $ref: '#/components/schemas/type_events:EventType'
18244
+ type_events:InboxIds:
18245
+ type: array
18246
+ items:
18247
+ type: string
18248
+ type_events:PodIds:
18249
+ type: array
18250
+ items:
18251
+ type: string
18175
18252
  type_websockets:Subscribed:
18176
18253
  type: object
18177
18254
  properties:
@@ -18183,15 +18260,9 @@ components:
18183
18260
  event_types:
18184
18261
  $ref: '#/components/schemas/type_events:EventTypes'
18185
18262
  inbox_ids:
18186
- type: array
18187
- items:
18188
- type: string
18189
- description: IDs of the inboxes that have been subscribed to.
18263
+ $ref: '#/components/schemas/type_events:InboxIds'
18190
18264
  pod_ids:
18191
- type: array
18192
- items:
18193
- type: string
18194
- description: IDs of the pods that have been subscribed to.
18265
+ $ref: '#/components/schemas/type_events:PodIds'
18195
18266
  required:
18196
18267
  - type
18197
18268
  type_events:EventId:
@@ -18826,15 +18897,9 @@ components:
18826
18897
  event_types:
18827
18898
  $ref: '#/components/schemas/type_events:EventTypes'
18828
18899
  inbox_ids:
18829
- type: array
18830
- items:
18831
- type: string
18832
- description: IDs of the inboxes to subscribe to.
18900
+ $ref: '#/components/schemas/type_events:InboxIds'
18833
18901
  pod_ids:
18834
- type: array
18835
- items:
18836
- type: string
18837
- description: IDs of the pods to subscribe to.
18902
+ $ref: '#/components/schemas/type_events:PodIds'
18838
18903
  required:
18839
18904
  - type
18840
18905
 
@@ -20589,26 +20654,6 @@ paths:
20589
20654
  required: false
20590
20655
  schema:
20591
20656
  $ref: '#/components/schemas/type_:PageToken'
20592
- - name: labels
20593
- in: query
20594
- required: false
20595
- schema:
20596
- $ref: '#/components/schemas/type_:Labels'
20597
- - name: before
20598
- in: query
20599
- required: false
20600
- schema:
20601
- $ref: '#/components/schemas/type_:Before'
20602
- - name: after
20603
- in: query
20604
- required: false
20605
- schema:
20606
- $ref: '#/components/schemas/type_:After'
20607
- - name: ascending
20608
- in: query
20609
- required: false
20610
- schema:
20611
- $ref: '#/components/schemas/type_:Ascending'
20612
20657
  - name: Authorization
20613
20658
  in: header
20614
20659
  description: >-
@@ -20635,18 +20680,6 @@ components:
20635
20680
  type: integer
20636
20681
  type_:PageToken:
20637
20682
  type: string
20638
- type_:Labels:
20639
- type: array
20640
- items:
20641
- type: string
20642
- type_:Before:
20643
- type: string
20644
- format: date-time
20645
- type_:After:
20646
- type: string
20647
- format: date-time
20648
- type_:Ascending:
20649
- type: boolean
20650
20683
  type_:Count:
20651
20684
  type: integer
20652
20685
  type_inboxes:InboxId:
@@ -21522,6 +21555,11 @@ paths:
21522
21555
  required: false
21523
21556
  schema:
21524
21557
  $ref: '#/components/schemas/type_:Ascending'
21558
+ - name: include_spam
21559
+ in: query
21560
+ required: false
21561
+ schema:
21562
+ $ref: '#/components/schemas/type_:IncludeSpam'
21525
21563
  - name: Authorization
21526
21564
  in: header
21527
21565
  description: >-
@@ -21560,6 +21598,8 @@ components:
21560
21598
  format: date-time
21561
21599
  type_:Ascending:
21562
21600
  type: boolean
21601
+ type_:IncludeSpam:
21602
+ type: boolean
21563
21603
  type_:Count:
21564
21604
  type: integer
21565
21605
  type_inboxes:InboxId:
@@ -23154,26 +23194,6 @@ paths:
23154
23194
  required: false
23155
23195
  schema:
23156
23196
  $ref: '#/components/schemas/type_:PageToken'
23157
- - name: labels
23158
- in: query
23159
- required: false
23160
- schema:
23161
- $ref: '#/components/schemas/type_:Labels'
23162
- - name: before
23163
- in: query
23164
- required: false
23165
- schema:
23166
- $ref: '#/components/schemas/type_:Before'
23167
- - name: after
23168
- in: query
23169
- required: false
23170
- schema:
23171
- $ref: '#/components/schemas/type_:After'
23172
- - name: ascending
23173
- in: query
23174
- required: false
23175
- schema:
23176
- $ref: '#/components/schemas/type_:Ascending'
23177
23197
  - name: Authorization
23178
23198
  in: header
23179
23199
  description: >-
@@ -23200,18 +23220,6 @@ components:
23200
23220
  type: integer
23201
23221
  type_:PageToken:
23202
23222
  type: string
23203
- type_:Labels:
23204
- type: array
23205
- items:
23206
- type: string
23207
- type_:Before:
23208
- type: string
23209
- format: date-time
23210
- type_:After:
23211
- type: string
23212
- format: date-time
23213
- type_:Ascending:
23214
- type: boolean
23215
23223
  type_:Count:
23216
23224
  type: integer
23217
23225
  type_domains:DomainId: