agentmail 0.1.6 → 0.1.7
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/README.md +63 -0
- package/dist/cjs/BaseClient.d.ts +14 -1
- package/dist/cjs/BaseClient.js +59 -0
- package/dist/cjs/Client.d.ts +30 -29
- package/dist/cjs/Client.js +12 -53
- package/dist/cjs/api/resources/apiKeys/client/Client.d.ts +12 -12
- package/dist/cjs/api/resources/apiKeys/client/Client.js +29 -31
- package/dist/cjs/api/resources/domains/client/Client.d.ts +19 -19
- package/dist/cjs/api/resources/domains/client/Client.js +60 -53
- package/dist/cjs/api/resources/drafts/client/Client.d.ts +10 -10
- package/dist/cjs/api/resources/drafts/client/Client.js +23 -28
- package/dist/cjs/api/resources/events/types/DomainVerifiedEvent.d.ts +7 -0
- package/dist/cjs/api/resources/{webhooks → events}/types/EventType.d.ts +1 -0
- package/dist/cjs/api/resources/{webhooks → events}/types/EventType.js +1 -0
- package/dist/cjs/api/resources/events/types/EventTypes.d.ts +5 -0
- package/dist/cjs/api/resources/events/types/EventTypes.js +3 -0
- package/dist/cjs/api/resources/events/types/index.d.ts +3 -0
- package/dist/cjs/api/resources/events/types/index.js +3 -0
- package/dist/cjs/api/resources/inboxes/client/Client.d.ts +30 -30
- package/dist/cjs/api/resources/inboxes/client/Client.js +55 -51
- package/dist/cjs/api/resources/inboxes/resources/drafts/client/Client.d.ts +27 -27
- package/dist/cjs/api/resources/inboxes/resources/drafts/client/Client.js +77 -70
- package/dist/cjs/api/resources/inboxes/resources/messages/client/Client.d.ts +25 -25
- package/dist/cjs/api/resources/inboxes/resources/messages/client/Client.js +83 -73
- package/dist/cjs/api/resources/inboxes/resources/metrics/client/Client.d.ts +8 -8
- package/dist/cjs/api/resources/inboxes/resources/metrics/client/Client.js +17 -25
- package/dist/cjs/api/resources/inboxes/resources/threads/client/Client.d.ts +17 -17
- package/dist/cjs/api/resources/inboxes/resources/threads/client/Client.js +51 -50
- package/dist/cjs/api/resources/metrics/client/Client.d.ts +7 -7
- package/dist/cjs/api/resources/metrics/client/Client.js +12 -20
- package/dist/cjs/api/resources/pods/client/Client.d.ts +27 -27
- package/dist/cjs/api/resources/pods/client/Client.js +44 -43
- package/dist/cjs/api/resources/pods/resources/domains/client/Client.d.ts +15 -15
- package/dist/cjs/api/resources/pods/resources/domains/client/Client.js +41 -43
- package/dist/cjs/api/resources/pods/resources/drafts/client/Client.d.ts +12 -12
- package/dist/cjs/api/resources/pods/resources/drafts/client/Client.js +30 -35
- package/dist/cjs/api/resources/pods/resources/inboxes/client/Client.d.ts +19 -19
- package/dist/cjs/api/resources/pods/resources/inboxes/client/Client.js +53 -52
- package/dist/cjs/api/resources/pods/resources/threads/client/Client.d.ts +13 -13
- package/dist/cjs/api/resources/pods/resources/threads/client/Client.js +39 -41
- package/dist/cjs/api/resources/threads/client/Client.d.ts +11 -11
- package/dist/cjs/api/resources/threads/client/Client.js +32 -34
- package/dist/cjs/api/resources/webhooks/client/Client.d.ts +15 -15
- package/dist/cjs/api/resources/webhooks/client/Client.js +40 -39
- package/dist/cjs/api/resources/webhooks/types/CreateWebhookRequest.d.ts +1 -1
- package/dist/cjs/api/resources/webhooks/types/Webhook.d.ts +1 -1
- package/dist/cjs/api/resources/webhooks/types/index.d.ts +0 -2
- package/dist/cjs/api/resources/webhooks/types/index.js +0 -2
- package/dist/cjs/api/resources/websockets/client/Client.d.ts +6 -6
- package/dist/cjs/api/resources/websockets/client/Client.js +8 -19
- package/dist/cjs/api/resources/websockets/client/Socket.d.ts +1 -1
- package/dist/cjs/api/resources/websockets/types/Subscribe.d.ts +5 -1
- package/dist/cjs/api/resources/websockets/types/Subscribed.d.ts +5 -1
- package/dist/cjs/auth/BearerAuthProvider.d.ts +14 -0
- package/dist/cjs/auth/BearerAuthProvider.js +72 -0
- package/dist/cjs/auth/index.d.ts +1 -0
- package/dist/cjs/auth/index.js +5 -0
- package/dist/cjs/core/auth/AuthProvider.d.ts +4 -1
- package/dist/cjs/core/auth/BearerToken.d.ts +3 -1
- package/dist/cjs/core/auth/BearerToken.js +7 -6
- package/dist/cjs/core/auth/NoOpAuthProvider.d.ts +5 -0
- package/dist/cjs/core/auth/NoOpAuthProvider.js +9 -0
- package/dist/cjs/core/auth/index.d.ts +1 -0
- package/dist/cjs/core/auth/index.js +3 -1
- package/dist/cjs/core/exports.d.ts +1 -0
- package/dist/cjs/core/exports.js +1 -0
- package/dist/cjs/core/fetcher/Fetcher.d.ts +4 -1
- package/dist/cjs/core/fetcher/Fetcher.js +202 -9
- package/dist/cjs/core/fetcher/getRequestBody.d.ts +1 -1
- package/dist/cjs/core/fetcher/getRequestBody.js +4 -0
- package/dist/cjs/core/fetcher/makeRequest.d.ts +1 -1
- package/dist/cjs/core/fetcher/makeRequest.js +0 -2
- package/dist/cjs/core/fetcher/requestWithRetries.js +0 -9
- package/dist/cjs/core/fetcher/signals.d.ts +0 -6
- package/dist/cjs/core/fetcher/signals.js +0 -12
- package/dist/cjs/core/headers.js +6 -4
- package/dist/cjs/core/index.d.ts +1 -0
- package/dist/cjs/core/index.js +2 -1
- package/dist/cjs/core/logging/exports.d.ts +18 -0
- package/dist/cjs/core/logging/exports.js +45 -0
- package/dist/cjs/core/logging/index.d.ts +1 -0
- package/dist/cjs/core/logging/index.js +17 -0
- package/dist/cjs/core/logging/logger.d.ts +126 -0
- package/dist/cjs/core/logging/logger.js +144 -0
- package/dist/cjs/core/schemas/Schema.d.ts +1 -0
- package/dist/cjs/core/schemas/Schema.js +1 -0
- package/dist/cjs/core/schemas/builders/primitives/index.d.ts +1 -0
- package/dist/cjs/core/schemas/builders/primitives/index.js +3 -1
- package/dist/cjs/core/schemas/builders/primitives/never.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/primitives/never.js +14 -0
- package/dist/cjs/core/url/join.js +0 -1
- package/dist/cjs/serialization/resources/events/types/DomainVerifiedEvent.d.ts +14 -0
- package/dist/cjs/serialization/resources/events/types/DomainVerifiedEvent.js +46 -0
- package/dist/cjs/serialization/resources/{webhooks → events}/types/EventType.d.ts +2 -2
- package/dist/cjs/serialization/resources/{webhooks → events}/types/EventType.js +1 -0
- package/dist/cjs/serialization/resources/{webhooks → events}/types/EventTypes.d.ts +1 -1
- package/dist/cjs/serialization/resources/events/types/index.d.ts +3 -0
- package/dist/cjs/serialization/resources/events/types/index.js +3 -0
- package/dist/cjs/serialization/resources/webhooks/types/CreateWebhookRequest.d.ts +1 -1
- package/dist/cjs/serialization/resources/webhooks/types/CreateWebhookRequest.js +1 -1
- package/dist/cjs/serialization/resources/webhooks/types/Webhook.d.ts +1 -1
- package/dist/cjs/serialization/resources/webhooks/types/Webhook.js +1 -1
- package/dist/cjs/serialization/resources/webhooks/types/index.d.ts +0 -2
- package/dist/cjs/serialization/resources/webhooks/types/index.js +0 -2
- package/dist/cjs/serialization/resources/websockets/client/socket/WebsocketsSocketResponse.d.ts +3 -2
- package/dist/cjs/serialization/resources/websockets/client/socket/WebsocketsSocketResponse.js +2 -0
- package/dist/cjs/serialization/resources/websockets/types/Subscribe.d.ts +4 -1
- package/dist/cjs/serialization/resources/websockets/types/Subscribe.js +4 -1
- package/dist/cjs/serialization/resources/websockets/types/Subscribed.d.ts +4 -1
- package/dist/cjs/serialization/resources/websockets/types/Subscribed.js +4 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/BaseClient.d.mts +14 -1
- package/dist/esm/BaseClient.mjs +24 -1
- package/dist/esm/Client.d.mts +30 -29
- package/dist/esm/Client.mjs +21 -29
- package/dist/esm/api/resources/apiKeys/client/Client.d.mts +12 -12
- package/dist/esm/api/resources/apiKeys/client/Client.mjs +28 -30
- package/dist/esm/api/resources/domains/client/Client.d.mts +19 -19
- package/dist/esm/api/resources/domains/client/Client.mjs +59 -52
- package/dist/esm/api/resources/drafts/client/Client.d.mts +10 -10
- package/dist/esm/api/resources/drafts/client/Client.mjs +22 -27
- package/dist/esm/api/resources/events/types/DomainVerifiedEvent.d.mts +7 -0
- package/dist/esm/api/resources/{webhooks → events}/types/EventType.d.mts +1 -0
- package/dist/esm/api/resources/{webhooks → events}/types/EventType.mjs +1 -0
- package/dist/esm/api/resources/events/types/EventTypes.d.mts +5 -0
- package/dist/esm/api/resources/events/types/EventTypes.mjs +2 -0
- package/dist/esm/api/resources/events/types/index.d.mts +3 -0
- package/dist/esm/api/resources/events/types/index.mjs +3 -0
- package/dist/esm/api/resources/inboxes/client/Client.d.mts +30 -30
- package/dist/esm/api/resources/inboxes/client/Client.mjs +58 -54
- package/dist/esm/api/resources/inboxes/resources/drafts/client/Client.d.mts +27 -27
- package/dist/esm/api/resources/inboxes/resources/drafts/client/Client.mjs +76 -69
- package/dist/esm/api/resources/inboxes/resources/messages/client/Client.d.mts +25 -25
- package/dist/esm/api/resources/inboxes/resources/messages/client/Client.mjs +82 -72
- package/dist/esm/api/resources/inboxes/resources/metrics/client/Client.d.mts +8 -8
- package/dist/esm/api/resources/inboxes/resources/metrics/client/Client.mjs +16 -24
- package/dist/esm/api/resources/inboxes/resources/threads/client/Client.d.mts +17 -17
- package/dist/esm/api/resources/inboxes/resources/threads/client/Client.mjs +50 -49
- package/dist/esm/api/resources/metrics/client/Client.d.mts +7 -7
- package/dist/esm/api/resources/metrics/client/Client.mjs +11 -19
- package/dist/esm/api/resources/pods/client/Client.d.mts +27 -27
- package/dist/esm/api/resources/pods/client/Client.mjs +47 -46
- package/dist/esm/api/resources/pods/resources/domains/client/Client.d.mts +15 -15
- package/dist/esm/api/resources/pods/resources/domains/client/Client.mjs +40 -42
- package/dist/esm/api/resources/pods/resources/drafts/client/Client.d.mts +12 -12
- package/dist/esm/api/resources/pods/resources/drafts/client/Client.mjs +29 -34
- package/dist/esm/api/resources/pods/resources/inboxes/client/Client.d.mts +19 -19
- package/dist/esm/api/resources/pods/resources/inboxes/client/Client.mjs +52 -51
- package/dist/esm/api/resources/pods/resources/threads/client/Client.d.mts +13 -13
- package/dist/esm/api/resources/pods/resources/threads/client/Client.mjs +38 -40
- package/dist/esm/api/resources/threads/client/Client.d.mts +11 -11
- package/dist/esm/api/resources/threads/client/Client.mjs +31 -33
- package/dist/esm/api/resources/webhooks/client/Client.d.mts +15 -15
- package/dist/esm/api/resources/webhooks/client/Client.mjs +39 -38
- package/dist/esm/api/resources/webhooks/types/CreateWebhookRequest.d.mts +1 -1
- package/dist/esm/api/resources/webhooks/types/Webhook.d.mts +1 -1
- package/dist/esm/api/resources/webhooks/types/index.d.mts +0 -2
- package/dist/esm/api/resources/webhooks/types/index.mjs +0 -2
- package/dist/esm/api/resources/websockets/client/Client.d.mts +6 -6
- package/dist/esm/api/resources/websockets/client/Client.mjs +7 -18
- package/dist/esm/api/resources/websockets/client/Socket.d.mts +1 -1
- package/dist/esm/api/resources/websockets/types/Subscribe.d.mts +5 -1
- package/dist/esm/api/resources/websockets/types/Subscribed.d.mts +5 -1
- package/dist/esm/auth/BearerAuthProvider.d.mts +14 -0
- package/dist/esm/auth/BearerAuthProvider.mjs +35 -0
- package/dist/esm/auth/index.d.mts +1 -0
- package/dist/esm/auth/index.mjs +1 -0
- package/dist/esm/core/auth/AuthProvider.d.mts +4 -1
- package/dist/esm/core/auth/BearerToken.d.mts +3 -1
- package/dist/esm/core/auth/BearerToken.mjs +7 -6
- package/dist/esm/core/auth/NoOpAuthProvider.d.mts +5 -0
- package/dist/esm/core/auth/NoOpAuthProvider.mjs +5 -0
- package/dist/esm/core/auth/index.d.mts +1 -0
- package/dist/esm/core/auth/index.mjs +1 -0
- package/dist/esm/core/exports.d.mts +1 -0
- package/dist/esm/core/exports.mjs +1 -0
- package/dist/esm/core/fetcher/Fetcher.d.mts +4 -1
- package/dist/esm/core/fetcher/Fetcher.mjs +202 -9
- package/dist/esm/core/fetcher/getRequestBody.d.mts +1 -1
- package/dist/esm/core/fetcher/getRequestBody.mjs +4 -0
- package/dist/esm/core/fetcher/makeRequest.d.mts +1 -1
- package/dist/esm/core/fetcher/makeRequest.mjs +0 -2
- package/dist/esm/core/fetcher/requestWithRetries.mjs +0 -9
- package/dist/esm/core/fetcher/signals.d.mts +0 -6
- package/dist/esm/core/fetcher/signals.mjs +0 -12
- package/dist/esm/core/headers.mjs +6 -4
- package/dist/esm/core/index.d.mts +1 -0
- package/dist/esm/core/index.mjs +1 -0
- package/dist/esm/core/logging/exports.d.mts +18 -0
- package/dist/esm/core/logging/exports.mjs +9 -0
- package/dist/esm/core/logging/index.d.mts +1 -0
- package/dist/esm/core/logging/index.mjs +1 -0
- package/dist/esm/core/logging/logger.d.mts +126 -0
- package/dist/esm/core/logging/logger.mjs +138 -0
- package/dist/esm/core/schemas/Schema.d.mts +1 -0
- package/dist/esm/core/schemas/Schema.mjs +1 -0
- package/dist/esm/core/schemas/builders/primitives/index.d.mts +1 -0
- package/dist/esm/core/schemas/builders/primitives/index.mjs +1 -0
- package/dist/esm/core/schemas/builders/primitives/never.d.mts +2 -0
- package/dist/esm/core/schemas/builders/primitives/never.mjs +11 -0
- package/dist/esm/core/url/join.mjs +0 -1
- package/dist/esm/serialization/resources/events/types/DomainVerifiedEvent.d.mts +14 -0
- package/dist/esm/serialization/resources/events/types/DomainVerifiedEvent.mjs +10 -0
- package/dist/esm/serialization/resources/{webhooks → events}/types/EventType.d.mts +2 -2
- package/dist/esm/serialization/resources/{webhooks → events}/types/EventType.mjs +1 -0
- package/dist/esm/serialization/resources/{webhooks → events}/types/EventTypes.d.mts +1 -1
- package/dist/esm/serialization/resources/events/types/index.d.mts +3 -0
- package/dist/esm/serialization/resources/events/types/index.mjs +3 -0
- package/dist/esm/serialization/resources/webhooks/types/CreateWebhookRequest.d.mts +1 -1
- package/dist/esm/serialization/resources/webhooks/types/CreateWebhookRequest.mjs +1 -1
- package/dist/esm/serialization/resources/webhooks/types/Webhook.d.mts +1 -1
- package/dist/esm/serialization/resources/webhooks/types/Webhook.mjs +1 -1
- package/dist/esm/serialization/resources/webhooks/types/index.d.mts +0 -2
- package/dist/esm/serialization/resources/webhooks/types/index.mjs +0 -2
- package/dist/esm/serialization/resources/websockets/client/socket/WebsocketsSocketResponse.d.mts +3 -2
- package/dist/esm/serialization/resources/websockets/client/socket/WebsocketsSocketResponse.mjs +2 -0
- package/dist/esm/serialization/resources/websockets/types/Subscribe.d.mts +4 -1
- package/dist/esm/serialization/resources/websockets/types/Subscribe.mjs +4 -1
- package/dist/esm/serialization/resources/websockets/types/Subscribed.d.mts +4 -1
- package/dist/esm/serialization/resources/websockets/types/Subscribed.mjs +4 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/dist/llms-full.txt +620 -54
- package/dist/llms.txt +6 -1
- package/package.json +1 -1
- package/reference.md +170 -170
- package/dist/cjs/api/resources/webhooks/types/EventTypes.d.ts +0 -5
- package/dist/esm/api/resources/webhooks/types/EventTypes.d.mts +0 -5
- /package/dist/cjs/api/resources/{webhooks/types/EventTypes.js → events/types/DomainVerifiedEvent.js} +0 -0
- /package/dist/cjs/serialization/resources/{webhooks → events}/types/EventTypes.js +0 -0
- /package/dist/esm/api/resources/{webhooks/types/EventTypes.mjs → events/types/DomainVerifiedEvent.mjs} +0 -0
- /package/dist/esm/serialization/resources/{webhooks → events}/types/EventTypes.mjs +0 -0
package/dist/llms-full.txt
CHANGED
|
@@ -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.  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
|
|
@@ -312,7 +312,7 @@ Unlike traditional email providers that are designed for human scale, AgentMail
|
|
|
312
312
|
|
|
313
313
|
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
314
|
|
|
315
|
-
<img src="file:
|
|
315
|
+
<img src="file:5059430e-56d3-4f25-8e53-c039ee07eae3" alt="AgentMail Organizational Hierarchy" />
|
|
316
316
|
|
|
317
317
|
<Steps>
|
|
318
318
|
<Step title="Organization">
|
|
@@ -732,7 +732,7 @@ Here is an example of a well-structured and styled HTML header:
|
|
|
732
732
|
</CodeBlocks>
|
|
733
733
|
|
|
734
734
|
<Frame caption="Look how pretty this message looks!">
|
|
735
|
-
<img src="file:
|
|
735
|
+
<img src="file:c026b6cd-f41d-4bc0-9818-5058474f4b79" alt="rendered css" />
|
|
736
736
|
</Frame>
|
|
737
737
|
|
|
738
738
|
## Receiving `Messages`
|
|
@@ -1507,6 +1507,256 @@ Pod: "Marketing-Agent"
|
|
|
1507
1507
|
* Explore [Domains](/custom-domains) to set up custom email domains for your pods
|
|
1508
1508
|
|
|
1509
1509
|
|
|
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
|
+
# Replit
|
|
1532
|
+
|
|
1533
|
+
> AgentMail's Replit integration
|
|
1534
|
+
|
|
1535
|
+
## Getting started
|
|
1536
|
+
|
|
1537
|
+
Replit is a cloud-based app and agent builder with a built in IDE, AI assistant, and deployment infrastructure.
|
|
1538
|
+
|
|
1539
|
+
AgentMail is a "connector" integration on Replit, meaning your Replit apps and agents can use it directly.
|
|
1540
|
+
|
|
1541
|
+
### Setup
|
|
1542
|
+
|
|
1543
|
+
Navigate to the Intregrations tab in the Replit builder. Find AgentMail and click Connect/Sign in. Then paste in your AgentMail API key from the AgentMail Console. That's it.
|
|
1544
|
+
|
|
1545
|
+
## How it works
|
|
1546
|
+
|
|
1547
|
+
Replit uses Mastra, a TypeScript framework for building agents. Everytime you create a new app/agent Replit will generate a set of Mastra tools to interface with the AgentMail API, based on your use case and requirements.
|
|
1548
|
+
|
|
1549
|
+
Below is a collections of prebuilt tools that Replit can use out of the box to serve virtually any use case.
|
|
1550
|
+
|
|
1551
|
+
### Tools
|
|
1552
|
+
|
|
1553
|
+
<CodeBlocks>
|
|
1554
|
+
```typescript title="TypeScript"
|
|
1555
|
+
import { createTool } from '@mastra/core/tools'
|
|
1556
|
+
import { z } from 'zod'
|
|
1557
|
+
|
|
1558
|
+
import { AgentMailClient } from 'agentmail'
|
|
1559
|
+
|
|
1560
|
+
const ListItemsInput = z.object({
|
|
1561
|
+
limit: z.number().optional().describe('Max number of items to return'),
|
|
1562
|
+
pageToken: z.string().optional().describe('Pagination page token'),
|
|
1563
|
+
})
|
|
1564
|
+
|
|
1565
|
+
const InboxId = z.string().describe('ID of inbox')
|
|
1566
|
+
|
|
1567
|
+
const GetInboxInput = z.object({ inboxId: InboxId })
|
|
1568
|
+
|
|
1569
|
+
const CreateInboxInput = z.object({
|
|
1570
|
+
username: z.string().optional().describe('Username'),
|
|
1571
|
+
domain: z.string().optional().describe('Domain'),
|
|
1572
|
+
displayName: z.string().optional().describe('Display name'),
|
|
1573
|
+
})
|
|
1574
|
+
|
|
1575
|
+
const ListInboxItemsInput = ListItemsInput.extend({
|
|
1576
|
+
inboxId: InboxId,
|
|
1577
|
+
labels: z.array(z.string()).optional().describe('Filter items with labels'),
|
|
1578
|
+
before: z.coerce.date().optional().describe('Filter items before datetime'),
|
|
1579
|
+
after: z.coerce.date().optional().describe('Filter items after datetime'),
|
|
1580
|
+
})
|
|
1581
|
+
|
|
1582
|
+
const GetThreadInput = GetInboxInput.extend({
|
|
1583
|
+
threadId: z.string().describe('ID of thread'),
|
|
1584
|
+
})
|
|
1585
|
+
|
|
1586
|
+
const MessageId = z.string().describe('ID of message')
|
|
1587
|
+
|
|
1588
|
+
const BaseMessageInput = z.object({
|
|
1589
|
+
inboxId: InboxId,
|
|
1590
|
+
text: z.string().optional().describe('Plain text body'),
|
|
1591
|
+
html: z.string().optional().describe('HTML body'),
|
|
1592
|
+
labels: z.array(z.string()).optional().describe('Labels'),
|
|
1593
|
+
})
|
|
1594
|
+
|
|
1595
|
+
const SendMessageInput = BaseMessageInput.extend({
|
|
1596
|
+
to: z.union([z.string(), z.array(z.string())]).describe('To recipients'),
|
|
1597
|
+
cc: z
|
|
1598
|
+
.union([z.string(), z.array(z.string())])
|
|
1599
|
+
.optional()
|
|
1600
|
+
.describe('CC recipients'),
|
|
1601
|
+
bcc: z
|
|
1602
|
+
.union([z.string(), z.array(z.string())])
|
|
1603
|
+
.optional()
|
|
1604
|
+
.describe('BCC recipients'),
|
|
1605
|
+
})
|
|
1606
|
+
|
|
1607
|
+
const ReplyToMessageInput = BaseMessageInput.extend({ messageId: MessageId })
|
|
1608
|
+
|
|
1609
|
+
const UpdateMessageInput = z.object({
|
|
1610
|
+
inboxId: InboxId,
|
|
1611
|
+
messageId: MessageId,
|
|
1612
|
+
addLabels: z.array(z.string()).optional().describe('Labels to add'),
|
|
1613
|
+
removeLabels: z.array(z.string()).optional().describe('Labels to remove'),
|
|
1614
|
+
})
|
|
1615
|
+
|
|
1616
|
+
const listInboxesTool = createTool({
|
|
1617
|
+
id: 'list-inboxes',
|
|
1618
|
+
description: 'List inboxes',
|
|
1619
|
+
inputSchema: ListItemsInput,
|
|
1620
|
+
execute: ({ context }) => {
|
|
1621
|
+
const client = new AgentMailClient()
|
|
1622
|
+
return client.inboxes.list(context)
|
|
1623
|
+
},
|
|
1624
|
+
})
|
|
1625
|
+
|
|
1626
|
+
const createInboxTool = createTool({
|
|
1627
|
+
id: 'create-inbox',
|
|
1628
|
+
description: 'Create inbox',
|
|
1629
|
+
inputSchema: CreateInboxInput,
|
|
1630
|
+
execute: ({ context }) => {
|
|
1631
|
+
const client = new AgentMailClient()
|
|
1632
|
+
return client.inboxes.create(context)
|
|
1633
|
+
},
|
|
1634
|
+
})
|
|
1635
|
+
|
|
1636
|
+
const deleteInboxTool = createTool({
|
|
1637
|
+
id: 'delete-inbox',
|
|
1638
|
+
description: 'Delete inbox',
|
|
1639
|
+
inputSchema: GetInboxInput,
|
|
1640
|
+
execute: ({ context }) => {
|
|
1641
|
+
const client = new AgentMailClient()
|
|
1642
|
+
return client.inboxes.delete(context.inboxId)
|
|
1643
|
+
},
|
|
1644
|
+
})
|
|
1645
|
+
|
|
1646
|
+
const listThreadsTool = createTool({
|
|
1647
|
+
id: 'list-threads',
|
|
1648
|
+
description: 'List threads',
|
|
1649
|
+
inputSchema: ListInboxItemsInput,
|
|
1650
|
+
execute: ({ context }) => {
|
|
1651
|
+
const client = new AgentMailClient()
|
|
1652
|
+
return client.inboxes.threads.list(context.inboxId, context)
|
|
1653
|
+
},
|
|
1654
|
+
})
|
|
1655
|
+
|
|
1656
|
+
const getThreadTool = createTool({
|
|
1657
|
+
id: 'get-thread',
|
|
1658
|
+
description: 'Get thread and its messages',
|
|
1659
|
+
inputSchema: GetThreadInput,
|
|
1660
|
+
execute: ({ context }) => {
|
|
1661
|
+
const client = new AgentMailClient()
|
|
1662
|
+
return client.inboxes.threads.get(context.inboxId, context.threadId)
|
|
1663
|
+
},
|
|
1664
|
+
})
|
|
1665
|
+
|
|
1666
|
+
const sendMessageTool = createTool({
|
|
1667
|
+
id: 'send-message',
|
|
1668
|
+
description: 'Send message',
|
|
1669
|
+
inputSchema: SendMessageInput,
|
|
1670
|
+
execute: ({ context }) => {
|
|
1671
|
+
const client = new AgentMailClient()
|
|
1672
|
+
return client.inboxes.messages.send(context.inboxId, context)
|
|
1673
|
+
},
|
|
1674
|
+
})
|
|
1675
|
+
|
|
1676
|
+
const replyToMessageTool = createTool({
|
|
1677
|
+
id: 'reply-to-message',
|
|
1678
|
+
description: 'Reply to message',
|
|
1679
|
+
inputSchema: ReplyToMessageInput,
|
|
1680
|
+
execute: ({ context }) => {
|
|
1681
|
+
const client = new AgentMailClient()
|
|
1682
|
+
return client.inboxes.messages.reply(context.inboxId, context.messageId, context)
|
|
1683
|
+
},
|
|
1684
|
+
})
|
|
1685
|
+
|
|
1686
|
+
const updateMessageTool = createTool({
|
|
1687
|
+
id: 'update-message',
|
|
1688
|
+
description: 'Update message',
|
|
1689
|
+
inputSchema: UpdateMessageInput,
|
|
1690
|
+
execute: ({ context }) => {
|
|
1691
|
+
const client = new AgentMailClient()
|
|
1692
|
+
return client.inboxes.messages.update(context.inboxId, context.messageId, context)
|
|
1693
|
+
},
|
|
1694
|
+
})
|
|
1695
|
+
|
|
1696
|
+
export const tools = {
|
|
1697
|
+
listInboxesTool,
|
|
1698
|
+
createInboxTool,
|
|
1699
|
+
deleteInboxTool,
|
|
1700
|
+
listThreadsTool,
|
|
1701
|
+
getThreadTool,
|
|
1702
|
+
sendMessageTool,
|
|
1703
|
+
replyToMessageTool,
|
|
1704
|
+
updateMessageTool,
|
|
1705
|
+
}
|
|
1706
|
+
```
|
|
1707
|
+
</CodeBlocks>
|
|
1708
|
+
|
|
1709
|
+
## About AgentMail
|
|
1710
|
+
|
|
1711
|
+
AgentMail is the email inbox API for AI agents. It gives agents their own email inboxes, like Gmail does for humans. Unlike other email APIs, AgentMail is for both sending and receiving, supporting two-way email conversations.
|
|
1712
|
+
|
|
1713
|
+
Email is critical to identity and communication on the internet. Much of the context that people use for their work exists within email. AgentMail enables AI agents to meet people where they work and use the internet like humans do.
|
|
1714
|
+
|
|
1715
|
+
### Features
|
|
1716
|
+
|
|
1717
|
+
1. **Programmatic inboxes:** Create, manage, and delete inboxes via API
|
|
1718
|
+
2. **Threads and replies:** Facilitate 2-way emals conversations with persistant and relevant context
|
|
1719
|
+
3. **Attachments:** Send, receive, and download attachments so agents can work with documents
|
|
1720
|
+
4. **Realtime events:** Build event-driven agents and systems with Webhooks and Websockets
|
|
1721
|
+
5. **Custom domains:** Whitelabel your or your customers' inboxes to automate client-facing work
|
|
1722
|
+
6. **Language/Framework SDKs:** Use your prefered language and framework
|
|
1723
|
+
|
|
1724
|
+
### Use cases
|
|
1725
|
+
|
|
1726
|
+
1. **Process inbound:** Receive, triage, and process inbound emails
|
|
1727
|
+
2. **Automate outbound:** Draft, schedule, and send outbound emails
|
|
1728
|
+
3. **Join conversations:** Address an agent directly or CC it in an existing email thread
|
|
1729
|
+
4. **Identify and authenticate:** Agents can sign up, receive 2FA code, and authenticate with any application
|
|
1730
|
+
|
|
1731
|
+
### Verticals
|
|
1732
|
+
|
|
1733
|
+
1. **Operations:** Automate internal workflows, vendor communications, and cross-team coordination
|
|
1734
|
+
2. **Support:** Handle customer inquiries, ticket management, and automated responses at scale
|
|
1735
|
+
3. **Procurement:** Streamline vendor onboarding, RFP processes, and purchase order management
|
|
1736
|
+
4. **Sales:** Automate lead qualification, follow-ups, and customer outreach campaigns
|
|
1737
|
+
5. **Recruiting:** Automate candidate outreach, interview scheduling, and applicant communication
|
|
1738
|
+
|
|
1739
|
+
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
|
+
|
|
1741
|
+
|
|
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
|
+
|
|
1510
1760
|
# Guide: Sending & Receiving Email
|
|
1511
1761
|
|
|
1512
1762
|
> A step-by-step guide to the practical workflow of sending initial emails and handling replies to have a full conversation.
|
|
@@ -1759,7 +2009,7 @@ Configuring your domain is a three-step process: add the domain via API, copy th
|
|
|
1759
2009
|
After creating your domain in the AgentMail Console, click the "Download BIND Zone File" button to get the complete zone file.
|
|
1760
2010
|
|
|
1761
2011
|
<Frame caption="Downloading BIND zone file from AgentMail Console">
|
|
1762
|
-
<img src="file:
|
|
2012
|
+
<img src="file:abd861e7-e3c4-4253-843d-5e1877e84487" alt="Download BIND Zone File from Console" />
|
|
1763
2013
|
</Frame>
|
|
1764
2014
|
|
|
1765
2015
|
<Tabs>
|
|
@@ -1770,13 +2020,13 @@ Configuring your domain is a three-step process: add the domain via API, copy th
|
|
|
1770
2020
|
2. Click **"Import zone file"** in the top right corner
|
|
1771
2021
|
|
|
1772
2022
|
<Frame caption="Importing BIND zone file in AWS Route 53">
|
|
1773
|
-
<img src="file:
|
|
2023
|
+
<img src="file:1381b9e1-8945-463b-8211-f3cb7d8ff390" alt="AWS Route 53 BIND Import" />
|
|
1774
2024
|
</Frame>
|
|
1775
2025
|
|
|
1776
2026
|
3. Paste the CONTENTS of downloaded BIND zone file
|
|
1777
2027
|
|
|
1778
2028
|
<Frame caption="Open the file with text editor and paste the contents. It should look similar to what we have in this image.">
|
|
1779
|
-
<img src="file:
|
|
2029
|
+
<img src="file:a1ec7b55-2283-4e6c-af6f-5bfca7ad00d6" alt="AWS Route 53 BIND Import" />
|
|
1780
2030
|
</Frame>
|
|
1781
2031
|
|
|
1782
2032
|
4. Review the records and click **"Import"**
|
|
@@ -1789,13 +2039,13 @@ Configuring your domain is a three-step process: add the domain via API, copy th
|
|
|
1789
2039
|
2. Navigate to **DNS > Records**
|
|
1790
2040
|
|
|
1791
2041
|
<Frame caption="This is what the page looks like">
|
|
1792
|
-
<img src="file:
|
|
2042
|
+
<img src="file:ba36964f-3f3e-439c-80f0-c71884757f68" alt="Cloudflare BIND Import" />
|
|
1793
2043
|
</Frame>
|
|
1794
2044
|
|
|
1795
2045
|
3. Click **"Import and Export"**
|
|
1796
2046
|
|
|
1797
2047
|
<Frame caption="You should be able to just drop the file in">
|
|
1798
|
-
<img src="file:
|
|
2048
|
+
<img src="file:990c0430-f086-4365-813f-a3b6463d5e07" alt="Cloudflare BIND Import" />
|
|
1799
2049
|
</Frame>
|
|
1800
2050
|
|
|
1801
2051
|
4. Upload the downloaded BIND zone file as is
|
|
@@ -1808,13 +2058,13 @@ Configuring your domain is a three-step process: add the domain via API, copy th
|
|
|
1808
2058
|
2. Navigate to the **DNS** subtab of the domain you want to send from
|
|
1809
2059
|
|
|
1810
2060
|
<Frame caption="Click on this button!">
|
|
1811
|
-
<img src="file:
|
|
2061
|
+
<img src="file:86a3ef0e-6f6e-4eb3-a721-52c1730f0b49" alt="Porkbun DNS Management" />
|
|
1812
2062
|
</Frame>
|
|
1813
2063
|
|
|
1814
2064
|
3. Scroll down to the quick upload section
|
|
1815
2065
|
|
|
1816
2066
|
<Frame caption="Upload your BIND zone file here">
|
|
1817
|
-
<img src="file:
|
|
2067
|
+
<img src="file:295db837-0235-4696-b96d-5318f68b49f5" alt="Porkbun Zone File Import" />
|
|
1818
2068
|
</Frame>
|
|
1819
2069
|
|
|
1820
2070
|
4. Upload the downloaded BIND zone file as is
|
|
@@ -1898,7 +2148,7 @@ Configuring your domain is a three-step process: add the domain via API, copy th
|
|
|
1898
2148
|
* **Value:** Can directly copy paste the `value` from the API response (e.g., `{random_letters_numbers}.dkim.amazonses.com`).
|
|
1899
2149
|
|
|
1900
2150
|
<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!">
|
|
1901
|
-
<img src="file:
|
|
2151
|
+
<img src="file:e57473d0-08bd-4ddc-ba64-0ff6c2e49ccc" alt="AWS Route 53 Record Configuration" />
|
|
1902
2152
|
</Frame>
|
|
1903
2153
|
|
|
1904
2154
|
* **TXT (DMARC/SPF):**
|
|
@@ -2434,13 +2684,13 @@ Ngrok creates a secure tunnel from a public URL to your local development server
|
|
|
2434
2684
|
|
|
2435
2685
|
Visit [ngrok.com](https://ngrok.com/) and click "Sign up" to create a free account.
|
|
2436
2686
|
|
|
2437
|
-
<img src="file:
|
|
2687
|
+
<img src="file:b2e9355e-36a9-46dc-bbe0-8192253fc301" alt="Ngrok homepage" />
|
|
2438
2688
|
|
|
2439
2689
|
### 1.2 Choose your platform and install
|
|
2440
2690
|
|
|
2441
2691
|
After logging in, ngrok will guide you through the setup process. Select your operating system and follow the installation instructions.
|
|
2442
2692
|
|
|
2443
|
-
<img src="file:
|
|
2693
|
+
<img src="file:3905deb7-315f-48fe-adee-1f4e4a115bcd" alt="Ngrok setup instructions" />
|
|
2444
2694
|
|
|
2445
2695
|
For macOS, you can install ngrok via Homebrew:
|
|
2446
2696
|
|
|
@@ -2486,7 +2736,7 @@ ngrok http 3000
|
|
|
2486
2736
|
|
|
2487
2737
|
You should see output similar to this:
|
|
2488
2738
|
|
|
2489
|
-
<img src="file:
|
|
2739
|
+
<img src="file:96fe265e-bc8e-40fc-8bb1-a53acadb74ca" alt="Ngrok terminal output" />
|
|
2490
2740
|
|
|
2491
2741
|
Copy the **Forwarding URL** (e.g., `https://your-subdomain.ngrok-free.app`). This is the public URL that AgentMail will use to send webhooks.
|
|
2492
2742
|
|
|
@@ -2583,7 +2833,7 @@ python webhook_receiver.py
|
|
|
2583
2833
|
|
|
2584
2834
|
Open your browser and visit `http://127.0.0.1:3000` to see the status page confirming your webhook receiver is running:
|
|
2585
2835
|
|
|
2586
|
-
<img src="file:
|
|
2836
|
+
<img src="file:6e602847-1e91-47d2-8aa0-c4d8ca72fed4" alt="Webhook receiver status page" />
|
|
2587
2837
|
|
|
2588
2838
|
## Testing Your Setup
|
|
2589
2839
|
|
|
@@ -2705,7 +2955,7 @@ How you send your emails is just as important as what you send. If you're sendin
|
|
|
2705
2955
|
more natural to email providers. AgentMail's ability to create inboxes at
|
|
2706
2956
|
scale makes this strategy easy to implement.
|
|
2707
2957
|
|
|
2708
|
-
<img src="file:
|
|
2958
|
+
<img src="file:d79176d8-08fb-4eba-b880-66bfcf164f59" alt="Diagram comparing one inbox sending 1000 emails vs. five inboxes sending 200 each." />
|
|
2709
2959
|
</Step>
|
|
2710
2960
|
|
|
2711
2961
|
<Step title="Protect Your Reputation with Multiple Domains">
|
|
@@ -4724,7 +4974,7 @@ Done
|
|
|
4724
4974
|
|
|
4725
4975
|
Go to your AgentMail inbox and filter by labels to organize your emails:
|
|
4726
4976
|
|
|
4727
|
-
<img src="file:
|
|
4977
|
+
<img src="file:19536629-9971-42f0-b8c1-ffa1f9849fd5" alt="Test image" />
|
|
4728
4978
|
|
|
4729
4979
|
**Filter by sentiment:**
|
|
4730
4980
|
|
|
@@ -5636,6 +5886,8 @@ components:
|
|
|
5636
5886
|
type: string
|
|
5637
5887
|
type_:Count:
|
|
5638
5888
|
type: integer
|
|
5889
|
+
type_pods:PodId:
|
|
5890
|
+
type: string
|
|
5639
5891
|
type_inboxes:InboxId:
|
|
5640
5892
|
type: string
|
|
5641
5893
|
type_inboxes:DisplayName:
|
|
@@ -5645,6 +5897,8 @@ components:
|
|
|
5645
5897
|
type_inboxes:Inbox:
|
|
5646
5898
|
type: object
|
|
5647
5899
|
properties:
|
|
5900
|
+
pod_id:
|
|
5901
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
5648
5902
|
inbox_id:
|
|
5649
5903
|
$ref: '#/components/schemas/type_inboxes:InboxId'
|
|
5650
5904
|
display_name:
|
|
@@ -5658,6 +5912,7 @@ components:
|
|
|
5658
5912
|
type: string
|
|
5659
5913
|
format: date-time
|
|
5660
5914
|
required:
|
|
5915
|
+
- pod_id
|
|
5661
5916
|
- inbox_id
|
|
5662
5917
|
- updated_at
|
|
5663
5918
|
- created_at
|
|
@@ -5851,6 +6106,8 @@ components:
|
|
|
5851
6106
|
schemas:
|
|
5852
6107
|
type_inboxes:InboxId:
|
|
5853
6108
|
type: string
|
|
6109
|
+
type_pods:PodId:
|
|
6110
|
+
type: string
|
|
5854
6111
|
type_inboxes:DisplayName:
|
|
5855
6112
|
type: string
|
|
5856
6113
|
type_inboxes:ClientId:
|
|
@@ -5858,6 +6115,8 @@ components:
|
|
|
5858
6115
|
type_inboxes:Inbox:
|
|
5859
6116
|
type: object
|
|
5860
6117
|
properties:
|
|
6118
|
+
pod_id:
|
|
6119
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
5861
6120
|
inbox_id:
|
|
5862
6121
|
$ref: '#/components/schemas/type_inboxes:InboxId'
|
|
5863
6122
|
display_name:
|
|
@@ -5871,6 +6130,7 @@ components:
|
|
|
5871
6130
|
type: string
|
|
5872
6131
|
format: date-time
|
|
5873
6132
|
required:
|
|
6133
|
+
- pod_id
|
|
5874
6134
|
- inbox_id
|
|
5875
6135
|
- updated_at
|
|
5876
6136
|
- created_at
|
|
@@ -6064,11 +6324,15 @@ components:
|
|
|
6064
6324
|
$ref: '#/components/schemas/type_inboxes:DisplayName'
|
|
6065
6325
|
client_id:
|
|
6066
6326
|
$ref: '#/components/schemas/type_inboxes:ClientId'
|
|
6327
|
+
type_pods:PodId:
|
|
6328
|
+
type: string
|
|
6067
6329
|
type_inboxes:InboxId:
|
|
6068
6330
|
type: string
|
|
6069
6331
|
type_inboxes:Inbox:
|
|
6070
6332
|
type: object
|
|
6071
6333
|
properties:
|
|
6334
|
+
pod_id:
|
|
6335
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
6072
6336
|
inbox_id:
|
|
6073
6337
|
$ref: '#/components/schemas/type_inboxes:InboxId'
|
|
6074
6338
|
display_name:
|
|
@@ -6082,6 +6346,7 @@ components:
|
|
|
6082
6346
|
type: string
|
|
6083
6347
|
format: date-time
|
|
6084
6348
|
required:
|
|
6349
|
+
- pod_id
|
|
6085
6350
|
- inbox_id
|
|
6086
6351
|
- updated_at
|
|
6087
6352
|
- created_at
|
|
@@ -6293,11 +6558,15 @@ components:
|
|
|
6293
6558
|
$ref: '#/components/schemas/type_inboxes:DisplayName'
|
|
6294
6559
|
required:
|
|
6295
6560
|
- display_name
|
|
6561
|
+
type_pods:PodId:
|
|
6562
|
+
type: string
|
|
6296
6563
|
type_inboxes:ClientId:
|
|
6297
6564
|
type: string
|
|
6298
6565
|
type_inboxes:Inbox:
|
|
6299
6566
|
type: object
|
|
6300
6567
|
properties:
|
|
6568
|
+
pod_id:
|
|
6569
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
6301
6570
|
inbox_id:
|
|
6302
6571
|
$ref: '#/components/schemas/type_inboxes:InboxId'
|
|
6303
6572
|
display_name:
|
|
@@ -6311,6 +6580,7 @@ components:
|
|
|
6311
6580
|
type: string
|
|
6312
6581
|
format: date-time
|
|
6313
6582
|
required:
|
|
6583
|
+
- pod_id
|
|
6314
6584
|
- inbox_id
|
|
6315
6585
|
- updated_at
|
|
6316
6586
|
- created_at
|
|
@@ -8951,6 +9221,10 @@ components:
|
|
|
8951
9221
|
type: array
|
|
8952
9222
|
items:
|
|
8953
9223
|
$ref: '#/components/schemas/type_attachments:SendAttachment'
|
|
9224
|
+
type_messages:SendMessageHeaders:
|
|
9225
|
+
type: object
|
|
9226
|
+
additionalProperties:
|
|
9227
|
+
type: string
|
|
8954
9228
|
type_messages:SendMessageRequest:
|
|
8955
9229
|
type: object
|
|
8956
9230
|
properties:
|
|
@@ -8972,6 +9246,8 @@ components:
|
|
|
8972
9246
|
$ref: '#/components/schemas/type_messages:MessageHtml'
|
|
8973
9247
|
attachments:
|
|
8974
9248
|
$ref: '#/components/schemas/type_messages:SendMessageAttachments'
|
|
9249
|
+
headers:
|
|
9250
|
+
$ref: '#/components/schemas/type_messages:SendMessageHeaders'
|
|
8975
9251
|
type_messages:MessageId:
|
|
8976
9252
|
type: string
|
|
8977
9253
|
type_threads:ThreadId:
|
|
@@ -9244,6 +9520,10 @@ components:
|
|
|
9244
9520
|
type: array
|
|
9245
9521
|
items:
|
|
9246
9522
|
$ref: '#/components/schemas/type_attachments:SendAttachment'
|
|
9523
|
+
type_messages:SendMessageHeaders:
|
|
9524
|
+
type: object
|
|
9525
|
+
additionalProperties:
|
|
9526
|
+
type: string
|
|
9247
9527
|
type_messages:ReplyToMessageRequest:
|
|
9248
9528
|
type: object
|
|
9249
9529
|
properties:
|
|
@@ -9263,6 +9543,8 @@ components:
|
|
|
9263
9543
|
$ref: '#/components/schemas/type_messages:MessageHtml'
|
|
9264
9544
|
attachments:
|
|
9265
9545
|
$ref: '#/components/schemas/type_messages:SendMessageAttachments'
|
|
9546
|
+
headers:
|
|
9547
|
+
$ref: '#/components/schemas/type_messages:SendMessageHeaders'
|
|
9266
9548
|
type_threads:ThreadId:
|
|
9267
9549
|
type: string
|
|
9268
9550
|
type_messages:SendMessageResponse:
|
|
@@ -13476,6 +13758,8 @@ components:
|
|
|
13476
13758
|
type: string
|
|
13477
13759
|
type_:Count:
|
|
13478
13760
|
type: integer
|
|
13761
|
+
type_pods:PodId:
|
|
13762
|
+
type: string
|
|
13479
13763
|
type_domains:DomainId:
|
|
13480
13764
|
type: string
|
|
13481
13765
|
type_domains:FeedbackEnabled:
|
|
@@ -13485,6 +13769,8 @@ components:
|
|
|
13485
13769
|
type_domains:DomainItem:
|
|
13486
13770
|
type: object
|
|
13487
13771
|
properties:
|
|
13772
|
+
pod_id:
|
|
13773
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
13488
13774
|
domain_id:
|
|
13489
13775
|
$ref: '#/components/schemas/type_domains:DomainId'
|
|
13490
13776
|
feedback_enabled:
|
|
@@ -13692,6 +13978,8 @@ components:
|
|
|
13692
13978
|
schemas:
|
|
13693
13979
|
type_domains:DomainId:
|
|
13694
13980
|
type: string
|
|
13981
|
+
type_pods:PodId:
|
|
13982
|
+
type: string
|
|
13695
13983
|
type_domains:VerificationStatus:
|
|
13696
13984
|
type: string
|
|
13697
13985
|
enum:
|
|
@@ -13734,6 +14022,8 @@ components:
|
|
|
13734
14022
|
type_domains:Domain:
|
|
13735
14023
|
type: object
|
|
13736
14024
|
properties:
|
|
14025
|
+
pod_id:
|
|
14026
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
13737
14027
|
domain_id:
|
|
13738
14028
|
$ref: '#/components/schemas/type_domains:DomainId'
|
|
13739
14029
|
status:
|
|
@@ -14125,6 +14415,8 @@ components:
|
|
|
14125
14415
|
required:
|
|
14126
14416
|
- domain
|
|
14127
14417
|
- feedback_enabled
|
|
14418
|
+
type_pods:PodId:
|
|
14419
|
+
type: string
|
|
14128
14420
|
type_domains:DomainId:
|
|
14129
14421
|
type: string
|
|
14130
14422
|
type_domains:VerificationStatus:
|
|
@@ -14167,6 +14459,8 @@ components:
|
|
|
14167
14459
|
type_domains:Domain:
|
|
14168
14460
|
type: object
|
|
14169
14461
|
properties:
|
|
14462
|
+
pod_id:
|
|
14463
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
14170
14464
|
domain_id:
|
|
14171
14465
|
$ref: '#/components/schemas/type_domains:DomainId'
|
|
14172
14466
|
status:
|
|
@@ -14751,7 +15045,7 @@ components:
|
|
|
14751
15045
|
type: string
|
|
14752
15046
|
type_webhooks:Url:
|
|
14753
15047
|
type: string
|
|
14754
|
-
|
|
15048
|
+
type_events:EventType:
|
|
14755
15049
|
type: string
|
|
14756
15050
|
enum:
|
|
14757
15051
|
- value: message.received
|
|
@@ -14760,10 +15054,11 @@ components:
|
|
|
14760
15054
|
- value: message.bounced
|
|
14761
15055
|
- value: message.complained
|
|
14762
15056
|
- value: message.rejected
|
|
14763
|
-
|
|
15057
|
+
- value: domain.verified
|
|
15058
|
+
type_events:EventTypes:
|
|
14764
15059
|
type: array
|
|
14765
15060
|
items:
|
|
14766
|
-
$ref: '#/components/schemas/
|
|
15061
|
+
$ref: '#/components/schemas/type_events:EventType'
|
|
14767
15062
|
type_webhooks:InboxIds:
|
|
14768
15063
|
type: array
|
|
14769
15064
|
items:
|
|
@@ -14778,7 +15073,7 @@ components:
|
|
|
14778
15073
|
url:
|
|
14779
15074
|
$ref: '#/components/schemas/type_webhooks:Url'
|
|
14780
15075
|
event_types:
|
|
14781
|
-
$ref: '#/components/schemas/
|
|
15076
|
+
$ref: '#/components/schemas/type_events:EventTypes'
|
|
14782
15077
|
inbox_ids:
|
|
14783
15078
|
$ref: '#/components/schemas/type_webhooks:InboxIds'
|
|
14784
15079
|
secret:
|
|
@@ -14992,7 +15287,7 @@ components:
|
|
|
14992
15287
|
type: string
|
|
14993
15288
|
type_webhooks:Url:
|
|
14994
15289
|
type: string
|
|
14995
|
-
|
|
15290
|
+
type_events:EventType:
|
|
14996
15291
|
type: string
|
|
14997
15292
|
enum:
|
|
14998
15293
|
- value: message.received
|
|
@@ -15001,10 +15296,11 @@ components:
|
|
|
15001
15296
|
- value: message.bounced
|
|
15002
15297
|
- value: message.complained
|
|
15003
15298
|
- value: message.rejected
|
|
15004
|
-
|
|
15299
|
+
- value: domain.verified
|
|
15300
|
+
type_events:EventTypes:
|
|
15005
15301
|
type: array
|
|
15006
15302
|
items:
|
|
15007
|
-
$ref: '#/components/schemas/
|
|
15303
|
+
$ref: '#/components/schemas/type_events:EventType'
|
|
15008
15304
|
type_webhooks:InboxIds:
|
|
15009
15305
|
type: array
|
|
15010
15306
|
items:
|
|
@@ -15019,7 +15315,7 @@ components:
|
|
|
15019
15315
|
url:
|
|
15020
15316
|
$ref: '#/components/schemas/type_webhooks:Url'
|
|
15021
15317
|
event_types:
|
|
15022
|
-
$ref: '#/components/schemas/
|
|
15318
|
+
$ref: '#/components/schemas/type_events:EventTypes'
|
|
15023
15319
|
inbox_ids:
|
|
15024
15320
|
$ref: '#/components/schemas/type_webhooks:InboxIds'
|
|
15025
15321
|
secret:
|
|
@@ -15218,7 +15514,7 @@ components:
|
|
|
15218
15514
|
schemas:
|
|
15219
15515
|
type_webhooks:Url:
|
|
15220
15516
|
type: string
|
|
15221
|
-
|
|
15517
|
+
type_events:EventType:
|
|
15222
15518
|
type: string
|
|
15223
15519
|
enum:
|
|
15224
15520
|
- value: message.received
|
|
@@ -15227,10 +15523,11 @@ components:
|
|
|
15227
15523
|
- value: message.bounced
|
|
15228
15524
|
- value: message.complained
|
|
15229
15525
|
- value: message.rejected
|
|
15230
|
-
|
|
15526
|
+
- value: domain.verified
|
|
15527
|
+
type_events:EventTypes:
|
|
15231
15528
|
type: array
|
|
15232
15529
|
items:
|
|
15233
|
-
$ref: '#/components/schemas/
|
|
15530
|
+
$ref: '#/components/schemas/type_events:EventType'
|
|
15234
15531
|
type_webhooks:InboxIds:
|
|
15235
15532
|
type: array
|
|
15236
15533
|
items:
|
|
@@ -15243,7 +15540,7 @@ components:
|
|
|
15243
15540
|
url:
|
|
15244
15541
|
$ref: '#/components/schemas/type_webhooks:Url'
|
|
15245
15542
|
event_types:
|
|
15246
|
-
$ref: '#/components/schemas/
|
|
15543
|
+
$ref: '#/components/schemas/type_events:EventTypes'
|
|
15247
15544
|
inbox_ids:
|
|
15248
15545
|
$ref: '#/components/schemas/type_webhooks:InboxIds'
|
|
15249
15546
|
client_id:
|
|
@@ -15261,7 +15558,7 @@ components:
|
|
|
15261
15558
|
url:
|
|
15262
15559
|
$ref: '#/components/schemas/type_webhooks:Url'
|
|
15263
15560
|
event_types:
|
|
15264
|
-
$ref: '#/components/schemas/
|
|
15561
|
+
$ref: '#/components/schemas/type_events:EventTypes'
|
|
15265
15562
|
inbox_ids:
|
|
15266
15563
|
$ref: '#/components/schemas/type_webhooks:InboxIds'
|
|
15267
15564
|
secret:
|
|
@@ -16407,6 +16704,159 @@ components:
|
|
|
16407
16704
|
|
|
16408
16705
|
```
|
|
16409
16706
|
|
|
16707
|
+
# Domain Verified
|
|
16708
|
+
|
|
16709
|
+
POST
|
|
16710
|
+
|
|
16711
|
+
Reference: https://docs.agentmail.to/api-reference/webhooks/events/domain-verified
|
|
16712
|
+
|
|
16713
|
+
## OpenAPI 3.1 Webhook Specification
|
|
16714
|
+
|
|
16715
|
+
```yaml
|
|
16716
|
+
openapi: 3.1.1
|
|
16717
|
+
info:
|
|
16718
|
+
title: Domain Verified
|
|
16719
|
+
version: subpackage_webhooks/events.domainVerified
|
|
16720
|
+
webhooks:
|
|
16721
|
+
domain-verified:
|
|
16722
|
+
post:
|
|
16723
|
+
operationId: domain-verified
|
|
16724
|
+
summary: Domain Verified
|
|
16725
|
+
tags:
|
|
16726
|
+
- subpackage_webhooks,subpackage_webhooks/events
|
|
16727
|
+
parameters:
|
|
16728
|
+
- name: svix-id
|
|
16729
|
+
in: header
|
|
16730
|
+
required: true
|
|
16731
|
+
schema:
|
|
16732
|
+
$ref: '#/components/schemas/type_webhooks/events:SvixId'
|
|
16733
|
+
- name: svix-signature
|
|
16734
|
+
in: header
|
|
16735
|
+
required: true
|
|
16736
|
+
schema:
|
|
16737
|
+
$ref: '#/components/schemas/type_webhooks/events:SvixSignature'
|
|
16738
|
+
- name: svix-timestamp
|
|
16739
|
+
in: header
|
|
16740
|
+
required: true
|
|
16741
|
+
schema:
|
|
16742
|
+
$ref: '#/components/schemas/type_webhooks/events:SvixTimestamp'
|
|
16743
|
+
responses:
|
|
16744
|
+
'200':
|
|
16745
|
+
description: Webhook received successfully
|
|
16746
|
+
requestBody:
|
|
16747
|
+
content:
|
|
16748
|
+
application/json:
|
|
16749
|
+
schema:
|
|
16750
|
+
$ref: '#/components/schemas/type_events:DomainVerifiedEvent'
|
|
16751
|
+
components:
|
|
16752
|
+
schemas:
|
|
16753
|
+
type_webhooks/events:SvixId:
|
|
16754
|
+
type: string
|
|
16755
|
+
type_webhooks/events:SvixSignature:
|
|
16756
|
+
type: string
|
|
16757
|
+
type_webhooks/events:SvixTimestamp:
|
|
16758
|
+
type: string
|
|
16759
|
+
format: date-time
|
|
16760
|
+
type_events:EventId:
|
|
16761
|
+
type: string
|
|
16762
|
+
type_pods:PodId:
|
|
16763
|
+
type: string
|
|
16764
|
+
type_domains:DomainId:
|
|
16765
|
+
type: string
|
|
16766
|
+
type_domains:VerificationStatus:
|
|
16767
|
+
type: string
|
|
16768
|
+
enum:
|
|
16769
|
+
- value: PENDING
|
|
16770
|
+
- value: VERIFYING
|
|
16771
|
+
- value: READY
|
|
16772
|
+
type_domains:FeedbackEnabled:
|
|
16773
|
+
type: boolean
|
|
16774
|
+
type_domains:RecordType:
|
|
16775
|
+
type: string
|
|
16776
|
+
enum:
|
|
16777
|
+
- value: TXT
|
|
16778
|
+
- value: CNAME
|
|
16779
|
+
- value: MX
|
|
16780
|
+
type_domains:RecordStatus:
|
|
16781
|
+
type: string
|
|
16782
|
+
enum:
|
|
16783
|
+
- value: MISSING
|
|
16784
|
+
- value: VERIFIED
|
|
16785
|
+
type_domains:VerificationRecord:
|
|
16786
|
+
type: object
|
|
16787
|
+
properties:
|
|
16788
|
+
type:
|
|
16789
|
+
$ref: '#/components/schemas/type_domains:RecordType'
|
|
16790
|
+
name:
|
|
16791
|
+
type: string
|
|
16792
|
+
value:
|
|
16793
|
+
type: string
|
|
16794
|
+
status:
|
|
16795
|
+
$ref: '#/components/schemas/type_domains:RecordStatus'
|
|
16796
|
+
priority:
|
|
16797
|
+
type: integer
|
|
16798
|
+
required:
|
|
16799
|
+
- type
|
|
16800
|
+
- name
|
|
16801
|
+
- value
|
|
16802
|
+
- status
|
|
16803
|
+
type_domains:ClientId:
|
|
16804
|
+
type: string
|
|
16805
|
+
type_domains:Domain:
|
|
16806
|
+
type: object
|
|
16807
|
+
properties:
|
|
16808
|
+
pod_id:
|
|
16809
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
16810
|
+
domain_id:
|
|
16811
|
+
$ref: '#/components/schemas/type_domains:DomainId'
|
|
16812
|
+
status:
|
|
16813
|
+
$ref: '#/components/schemas/type_domains:VerificationStatus'
|
|
16814
|
+
feedback_enabled:
|
|
16815
|
+
$ref: '#/components/schemas/type_domains:FeedbackEnabled'
|
|
16816
|
+
records:
|
|
16817
|
+
type: array
|
|
16818
|
+
items:
|
|
16819
|
+
$ref: '#/components/schemas/type_domains:VerificationRecord'
|
|
16820
|
+
client_id:
|
|
16821
|
+
$ref: '#/components/schemas/type_domains:ClientId'
|
|
16822
|
+
updated_at:
|
|
16823
|
+
type: string
|
|
16824
|
+
format: date-time
|
|
16825
|
+
created_at:
|
|
16826
|
+
type: string
|
|
16827
|
+
format: date-time
|
|
16828
|
+
required:
|
|
16829
|
+
- domain_id
|
|
16830
|
+
- status
|
|
16831
|
+
- feedback_enabled
|
|
16832
|
+
- records
|
|
16833
|
+
- updated_at
|
|
16834
|
+
- created_at
|
|
16835
|
+
type_events:DomainVerifiedEvent:
|
|
16836
|
+
type: object
|
|
16837
|
+
properties:
|
|
16838
|
+
type:
|
|
16839
|
+
type: string
|
|
16840
|
+
enum:
|
|
16841
|
+
- type: stringLiteral
|
|
16842
|
+
value: event
|
|
16843
|
+
event_type:
|
|
16844
|
+
type: string
|
|
16845
|
+
enum:
|
|
16846
|
+
- type: stringLiteral
|
|
16847
|
+
value: domain.verified
|
|
16848
|
+
event_id:
|
|
16849
|
+
$ref: '#/components/schemas/type_events:EventId'
|
|
16850
|
+
domain:
|
|
16851
|
+
$ref: '#/components/schemas/type_domains:Domain'
|
|
16852
|
+
required:
|
|
16853
|
+
- type
|
|
16854
|
+
- event_type
|
|
16855
|
+
- event_id
|
|
16856
|
+
- domain
|
|
16857
|
+
|
|
16858
|
+
```
|
|
16859
|
+
|
|
16410
16860
|
# Connect
|
|
16411
16861
|
|
|
16412
16862
|
GET /v0
|
|
@@ -16448,6 +16898,8 @@ channels:
|
|
|
16448
16898
|
#/components/messages/subpackage_websockets.websockets-server-5-message_complained
|
|
16449
16899
|
- $ref: >-
|
|
16450
16900
|
#/components/messages/subpackage_websockets.websockets-server-6-message_rejected
|
|
16901
|
+
- $ref: >-
|
|
16902
|
+
#/components/messages/subpackage_websockets.websockets-server-7-domain_verified
|
|
16451
16903
|
subscribe:
|
|
16452
16904
|
operationId: websockets-subscribe
|
|
16453
16905
|
summary: Client message
|
|
@@ -16493,7 +16945,25 @@ components:
|
|
|
16493
16945
|
name: message_rejected
|
|
16494
16946
|
payload:
|
|
16495
16947
|
$ref: '#/components/schemas/type_events:MessageRejectedEvent'
|
|
16948
|
+
subpackage_websockets.websockets-server-7-domain_verified:
|
|
16949
|
+
name: domain_verified
|
|
16950
|
+
payload:
|
|
16951
|
+
$ref: '#/components/schemas/type_events:DomainVerifiedEvent'
|
|
16496
16952
|
schemas:
|
|
16953
|
+
type_events:EventType:
|
|
16954
|
+
type: string
|
|
16955
|
+
enum:
|
|
16956
|
+
- value: message.received
|
|
16957
|
+
- value: message.sent
|
|
16958
|
+
- value: message.delivered
|
|
16959
|
+
- value: message.bounced
|
|
16960
|
+
- value: message.complained
|
|
16961
|
+
- value: message.rejected
|
|
16962
|
+
- value: domain.verified
|
|
16963
|
+
type_events:EventTypes:
|
|
16964
|
+
type: array
|
|
16965
|
+
items:
|
|
16966
|
+
$ref: '#/components/schemas/type_events:EventType'
|
|
16497
16967
|
type_websockets:Subscribed:
|
|
16498
16968
|
type: object
|
|
16499
16969
|
properties:
|
|
@@ -16502,13 +16972,18 @@ components:
|
|
|
16502
16972
|
enum:
|
|
16503
16973
|
- type: stringLiteral
|
|
16504
16974
|
value: subscribed
|
|
16975
|
+
event_types:
|
|
16976
|
+
$ref: '#/components/schemas/type_events:EventTypes'
|
|
16505
16977
|
inbox_ids:
|
|
16506
16978
|
type: array
|
|
16507
16979
|
items:
|
|
16508
16980
|
type: string
|
|
16981
|
+
pod_ids:
|
|
16982
|
+
type: array
|
|
16983
|
+
items:
|
|
16984
|
+
type: string
|
|
16509
16985
|
required:
|
|
16510
16986
|
- type
|
|
16511
|
-
- inbox_ids
|
|
16512
16987
|
type_events:EventId:
|
|
16513
16988
|
type: string
|
|
16514
16989
|
type_inboxes:InboxId:
|
|
@@ -16907,6 +17382,101 @@ components:
|
|
|
16907
17382
|
- event_type
|
|
16908
17383
|
- event_id
|
|
16909
17384
|
- reject
|
|
17385
|
+
type_pods:PodId:
|
|
17386
|
+
type: string
|
|
17387
|
+
type_domains:DomainId:
|
|
17388
|
+
type: string
|
|
17389
|
+
type_domains:VerificationStatus:
|
|
17390
|
+
type: string
|
|
17391
|
+
enum:
|
|
17392
|
+
- value: PENDING
|
|
17393
|
+
- value: VERIFYING
|
|
17394
|
+
- value: READY
|
|
17395
|
+
type_domains:FeedbackEnabled:
|
|
17396
|
+
type: boolean
|
|
17397
|
+
type_domains:RecordType:
|
|
17398
|
+
type: string
|
|
17399
|
+
enum:
|
|
17400
|
+
- value: TXT
|
|
17401
|
+
- value: CNAME
|
|
17402
|
+
- value: MX
|
|
17403
|
+
type_domains:RecordStatus:
|
|
17404
|
+
type: string
|
|
17405
|
+
enum:
|
|
17406
|
+
- value: MISSING
|
|
17407
|
+
- value: VERIFIED
|
|
17408
|
+
type_domains:VerificationRecord:
|
|
17409
|
+
type: object
|
|
17410
|
+
properties:
|
|
17411
|
+
type:
|
|
17412
|
+
$ref: '#/components/schemas/type_domains:RecordType'
|
|
17413
|
+
name:
|
|
17414
|
+
type: string
|
|
17415
|
+
value:
|
|
17416
|
+
type: string
|
|
17417
|
+
status:
|
|
17418
|
+
$ref: '#/components/schemas/type_domains:RecordStatus'
|
|
17419
|
+
priority:
|
|
17420
|
+
type: integer
|
|
17421
|
+
required:
|
|
17422
|
+
- type
|
|
17423
|
+
- name
|
|
17424
|
+
- value
|
|
17425
|
+
- status
|
|
17426
|
+
type_domains:ClientId:
|
|
17427
|
+
type: string
|
|
17428
|
+
type_domains:Domain:
|
|
17429
|
+
type: object
|
|
17430
|
+
properties:
|
|
17431
|
+
pod_id:
|
|
17432
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
17433
|
+
domain_id:
|
|
17434
|
+
$ref: '#/components/schemas/type_domains:DomainId'
|
|
17435
|
+
status:
|
|
17436
|
+
$ref: '#/components/schemas/type_domains:VerificationStatus'
|
|
17437
|
+
feedback_enabled:
|
|
17438
|
+
$ref: '#/components/schemas/type_domains:FeedbackEnabled'
|
|
17439
|
+
records:
|
|
17440
|
+
type: array
|
|
17441
|
+
items:
|
|
17442
|
+
$ref: '#/components/schemas/type_domains:VerificationRecord'
|
|
17443
|
+
client_id:
|
|
17444
|
+
$ref: '#/components/schemas/type_domains:ClientId'
|
|
17445
|
+
updated_at:
|
|
17446
|
+
type: string
|
|
17447
|
+
format: date-time
|
|
17448
|
+
created_at:
|
|
17449
|
+
type: string
|
|
17450
|
+
format: date-time
|
|
17451
|
+
required:
|
|
17452
|
+
- domain_id
|
|
17453
|
+
- status
|
|
17454
|
+
- feedback_enabled
|
|
17455
|
+
- records
|
|
17456
|
+
- updated_at
|
|
17457
|
+
- created_at
|
|
17458
|
+
type_events:DomainVerifiedEvent:
|
|
17459
|
+
type: object
|
|
17460
|
+
properties:
|
|
17461
|
+
type:
|
|
17462
|
+
type: string
|
|
17463
|
+
enum:
|
|
17464
|
+
- type: stringLiteral
|
|
17465
|
+
value: event
|
|
17466
|
+
event_type:
|
|
17467
|
+
type: string
|
|
17468
|
+
enum:
|
|
17469
|
+
- type: stringLiteral
|
|
17470
|
+
value: domain.verified
|
|
17471
|
+
event_id:
|
|
17472
|
+
$ref: '#/components/schemas/type_events:EventId'
|
|
17473
|
+
domain:
|
|
17474
|
+
$ref: '#/components/schemas/type_domains:Domain'
|
|
17475
|
+
required:
|
|
17476
|
+
- type
|
|
17477
|
+
- event_type
|
|
17478
|
+
- event_id
|
|
17479
|
+
- domain
|
|
16910
17480
|
type_websockets:Subscribe:
|
|
16911
17481
|
type: object
|
|
16912
17482
|
properties:
|
|
@@ -16915,13 +17485,18 @@ components:
|
|
|
16915
17485
|
enum:
|
|
16916
17486
|
- type: stringLiteral
|
|
16917
17487
|
value: subscribe
|
|
17488
|
+
event_types:
|
|
17489
|
+
$ref: '#/components/schemas/type_events:EventTypes'
|
|
16918
17490
|
inbox_ids:
|
|
16919
17491
|
type: array
|
|
16920
17492
|
items:
|
|
16921
17493
|
type: string
|
|
17494
|
+
pod_ids:
|
|
17495
|
+
type: array
|
|
17496
|
+
items:
|
|
17497
|
+
type: string
|
|
16922
17498
|
required:
|
|
16923
17499
|
- type
|
|
16924
|
-
- inbox_ids
|
|
16925
17500
|
|
|
16926
17501
|
```
|
|
16927
17502
|
|
|
@@ -18725,6 +19300,8 @@ components:
|
|
|
18725
19300
|
type_inboxes:Inbox:
|
|
18726
19301
|
type: object
|
|
18727
19302
|
properties:
|
|
19303
|
+
pod_id:
|
|
19304
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
18728
19305
|
inbox_id:
|
|
18729
19306
|
$ref: '#/components/schemas/type_inboxes:InboxId'
|
|
18730
19307
|
display_name:
|
|
@@ -18738,6 +19315,7 @@ components:
|
|
|
18738
19315
|
type: string
|
|
18739
19316
|
format: date-time
|
|
18740
19317
|
required:
|
|
19318
|
+
- pod_id
|
|
18741
19319
|
- inbox_id
|
|
18742
19320
|
- updated_at
|
|
18743
19321
|
- created_at
|
|
@@ -18948,6 +19526,8 @@ components:
|
|
|
18948
19526
|
type_inboxes:Inbox:
|
|
18949
19527
|
type: object
|
|
18950
19528
|
properties:
|
|
19529
|
+
pod_id:
|
|
19530
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
18951
19531
|
inbox_id:
|
|
18952
19532
|
$ref: '#/components/schemas/type_inboxes:InboxId'
|
|
18953
19533
|
display_name:
|
|
@@ -18961,6 +19541,7 @@ components:
|
|
|
18961
19541
|
type: string
|
|
18962
19542
|
format: date-time
|
|
18963
19543
|
required:
|
|
19544
|
+
- pod_id
|
|
18964
19545
|
- inbox_id
|
|
18965
19546
|
- updated_at
|
|
18966
19547
|
- created_at
|
|
@@ -19168,6 +19749,8 @@ components:
|
|
|
19168
19749
|
type_inboxes:Inbox:
|
|
19169
19750
|
type: object
|
|
19170
19751
|
properties:
|
|
19752
|
+
pod_id:
|
|
19753
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
19171
19754
|
inbox_id:
|
|
19172
19755
|
$ref: '#/components/schemas/type_inboxes:InboxId'
|
|
19173
19756
|
display_name:
|
|
@@ -19181,6 +19764,7 @@ components:
|
|
|
19181
19764
|
type: string
|
|
19182
19765
|
format: date-time
|
|
19183
19766
|
required:
|
|
19767
|
+
- pod_id
|
|
19184
19768
|
- inbox_id
|
|
19185
19769
|
- updated_at
|
|
19186
19770
|
- created_at
|
|
@@ -21250,6 +21834,8 @@ components:
|
|
|
21250
21834
|
type_domains:DomainItem:
|
|
21251
21835
|
type: object
|
|
21252
21836
|
properties:
|
|
21837
|
+
pod_id:
|
|
21838
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
21253
21839
|
domain_id:
|
|
21254
21840
|
$ref: '#/components/schemas/type_domains:DomainId'
|
|
21255
21841
|
feedback_enabled:
|
|
@@ -21522,6 +22108,8 @@ components:
|
|
|
21522
22108
|
type_domains:Domain:
|
|
21523
22109
|
type: object
|
|
21524
22110
|
properties:
|
|
22111
|
+
pod_id:
|
|
22112
|
+
$ref: '#/components/schemas/type_pods:PodId'
|
|
21525
22113
|
domain_id:
|
|
21526
22114
|
$ref: '#/components/schemas/type_domains:DomainId'
|
|
21527
22115
|
status:
|
|
@@ -21886,25 +22474,3 @@ let dataTask = session.dataTask(with: request as URLRequest, completionHandler:
|
|
|
21886
22474
|
dataTask.resume()
|
|
21887
22475
|
```
|
|
21888
22476
|
|
|
21889
|
-
# August 13, 2025
|
|
21890
|
-
|
|
21891
|
-
## Summary
|
|
21892
|
-
|
|
21893
|
-
We're excited to introduce **Metrics Endpoints** - two new powerful endpoints that give you deep insights into your email deliverability and agent performance. Track critical events like bounces, deliveries, rejections, and complaints with detailed timestamps.
|
|
21894
|
-
|
|
21895
|
-
### What's new?
|
|
21896
|
-
|
|
21897
|
-
New endpoints:
|
|
21898
|
-
|
|
21899
|
-
* `GET /metrics` - Get comprehensive metrics across all your inboxes
|
|
21900
|
-
* `GET /inboxes/{inbox_id}/metrics` - Get metrics for a specific inbox
|
|
21901
|
-
|
|
21902
|
-
Build smarter agents that monitor their own bounce rates, optimize send timing, and automatically adjust behavior based on deliverability metrics. This unlocks exciting possibilities for self-optimizing agents that can pause campaigns when performance drops or implement intelligent retry strategies.
|
|
21903
|
-
|
|
21904
|
-
<Note>
|
|
21905
|
-
Ready to build smarter agents? Check out our [metrics
|
|
21906
|
-
documentation](https://docs.agentmail.to/api-reference/metrics) to get
|
|
21907
|
-
started.
|
|
21908
|
-
</Note>
|
|
21909
|
-
|
|
21910
|
-
|