| name | agent-mail |
| description | Agent Mail enables developers to give AI agents unique, programmable email inboxes that can send, receive, and act on emails at scale—featuring API-first integration, custom domains, and built-in deliverability safeguards. Read and write AgentMail data through One: webhooks, inboxes, drafts, domains, messages, threads and more, 91 actions with real parameter documentation. Use whenever the user asks to look something up in AgentMail, create or update a record there, or build code against the AgentMail API. |
AgentMail through One
Agent Mail enables developers to give AI agents unique, programmable email inboxes that can send, receive, and act on emails at scale—featuring API-first integration, custom domains, and built-in deliverability safeguards.
One exposes AgentMail through four MCP tools. The table below carries real action ids from One's knowledge base, so for a common operation you can skip search and go straight to reading the action's parameters.
How to run an action
- Find the action in the table below, or call
search_one_platform_actions with platform agent-mail if it is not listed.
- Call
get_one_action_knowledge with the action id. Do this every time, including for actions in this table. The table gives you the id, not the parameters.
- Call
execute_one_action with parameters copied from that knowledge.
Never guess a parameter name, a body field, or an enum value. The knowledge has the real schema, and a guessed field is either a 400 or a silent write of the wrong thing.
Before you start
Call list_one_integrations once and confirm AgentMail is connected. If it is missing, the user has not connected it: say so and point them at https://app.withone.ai rather than reaching for raw HTTP.
Each connection carries an access field. If it reports {"policy": "methods", "methods": ["GET"]} the agent is read-only here, so plan a read-only answer instead of attempting a write that will be refused.
Before a write
Creates, updates, deletes and sends land on a real AgentMail account and cannot be recalled. State the action and the specific target in one line before the first write in a task, and let the user stop you. Reads need no confirmation.
Actions
Webhooks
| Action | Method | Path | Action id |
|---|
| Get a Webhook | GET | /v0/webhooks/{{webhookId}} | conn_mod_def::GJz8Fx3wYKw::n7c1CqozSt69qvgGnYVccQ |
| List Webhooks | GET | /v0/webhooks | conn_mod_def::GJz8F9KfF8Q::M3GmKlCsSZ-6OJX1PiAttw |
| Create a Webhook | POST | /v0/webhooks | conn_mod_def::GJz8FhvKqbM::hiH5HyAtQF2U1uk_lsB7rA |
| Delete a Webhook | DELETE | /v0/webhooks/{{webhookId}} | conn_mod_def::GJz8Fp1T2wk::HHoSQM50RoiMVHmqeqmpnQ |
| Domain Verified (Webhook Event) | POST | /webhooks/domain-verified | conn_mod_def::GJz7-rTyssg::LvdrQxxPRdih0T9ZslxTsg |
| Message Bounced (Webhook Event) | POST | /webhooks/message-bounced | conn_mod_def::GJz7-zoKySI::4Tb8NY8TQiO3r8b-fb1lWQ |
| Message Delivered (Webhook Event) | POST | /webhooks/message-delivered | conn_mod_def::GJz7_EV3yVo::jFstAxZqRjqDHG4k6n9J8A |
| Message Rejected (Webhook Event) | POST | /webhooks/message-rejected | conn_mod_def::GJz7_TUsZv8::SWhZULAFQyGnfkhyvQ6rGw |
| Message Sent (Webhook Event) | POST | `` | conn_mod_def::GJz7_b9QkXQ::gd13n83eTRGvemrfj-fztw |
| Update a Webhook | PATCH | /v0/webhooks/{{webhookId}} | conn_mod_def::GJz8GEOcwik::HzjW8eN5Tf6xE21TG5qC8w |
Inboxes
| Action | Method | Path | Action id |
|---|
| Get a Pod’s Inbox | GET | /v0/pods/{{podId}}/inboxes/{{inboxId}} | conn_mod_def::GJz8AMy2Xzk::-gAjib6xQUGQ41x0wmQM4A |
| List a Pod’s Inboxes | GET | /v0/pods/{{podId}}/inboxes | conn_mod_def::GJz8AbNip1A::ZE12FuSkR8CLJcSGatSobg |
| List Inboxes | GET | /v0/inboxes | conn_mod_def::GJz8AT-8xSU::2kNV465fS-24M_n9XoVA7w |
| Query an Inbox’s Metrics | GET | /v0/inboxes/{{inboxId}}/metrics | conn_mod_def::GJz8DBiQywY::-CtTh4TITT6P6dS4yr5zZg |
| Create a Pod’s Inbox | POST | /v0/pods/{{podId}}/inboxes | conn_mod_def::GJz7_sIIlgk::ylykS2SLSQ-g-n-pqUS4tw |
| Create Inbox | POST | /inboxes | conn_mod_def::GJz7_ivMY6E::Pw90sLtbQq-AZLv_bwuyPw |
| Delete an Inbox | DELETE | /v0/inboxes/{{inboxId}} | conn_mod_def::GJz7_y2tl_s::WN0PPTz6QJG5dlVxtILEkA |
| Delete an Inbox in a Pod | DELETE | /v0/pods/{{podId}}/inboxes/{{inboxId}} | conn_mod_def::GJz7_7ZyLnw::lEEu2i-OSP-ZougEX5WveA |
| Update a Pod’s Inbox | PATCH | /v0/pods/{{podId}}/inboxes/{{inboxId}} | conn_mod_def::GJz8AqSIiNc::RFyUwanAQBCnOBho7eL-fw |
| Update an Inbox | PATCH | /v0/inboxes/{{inboxId}} | conn_mod_def::GJz8Ahub3Uw::WAyoZjIcQ52psS3UEcMzgw |
Drafts
| Action | Method | Path | Action id |
|---|
| Get a Draft | GET | /v0/drafts/{{draftId}} | conn_mod_def::GJz790qayzs::My3rYo4pR8S7cDz60XTdgA |
| Get a Pod Draft | GET | /v0/pods/{{podId}}/drafts/{{draftId}} | conn_mod_def::GJz797AAsqA::y7APVbLCSNqzhndN4cHvfA |
| List a Pod’s Drafts | GET | /v0/pods/{{podId}}/drafts | conn_mod_def::GJz7-TmXyII::ig-nd8tRQu6kFz_rKgkfnA |
| List an Inbox’s Drafts | GET | /v0/inboxes/{{inboxId}}/drafts | conn_mod_def::GJz7-DTmM-w::3NYLXLUpS12FkhSIP5Ditw |
| List Drafts | GET | /v0/drafts | conn_mod_def::GJz7-LMTQ_E::WOI4VWm_RbuuG9E1USWOLg |
| Create a Draft in an Inbox | POST | /v0/inboxes/{{inboxId}}/drafts | conn_mod_def::GJz79HUGpGQ::vBuQSh2kRA-gUKKcMX2JXA |
| Delete an Inbox Draft | DELETE | /v0/inboxes/{{inboxId}}/drafts/{{draftId}} | conn_mod_def::GJz79N9U648::kdRmKQFEQVyylq1WKTZXDA |
| Send a Draft from an Inbox | POST | /v0/inboxes/{{inboxId}}/drafts/{{draftId}}/send | conn_mod_def::GJz7-a-V7OI::AoE2KlqiREqMALPHKmENfw |
Domains
| Action | Method | Path | Action id |
|---|
| Get a Domain | GET | /v0/domains/{{domainId}} | conn_mod_def::GJz775VRfZI::MJg0mRheQa-GdXqrpFrTRw |
| Get a Domain's Zone File | GET | /v0/domains/{{domainId}}/zone-file | conn_mod_def::GJz78HPdiV0::IO5kQ6W3QCeH-efdCCp-jg |
| List Domains | GET | /domains | conn_mod_def::GJz78W4IxeI::yXn9TDASSHyuUjsOuPo-Gg |
| Create Domain | POST | /domains | conn_mod_def::GJz77e5ng4I::ykM1fm0BSymdKx_EdP2HTA |
| Delete a Domain | DELETE | /v0/domains/{{domainId}} | conn_mod_def::GJz77sUn58c::n0m1wTf9T6K0VDzYBP0dvA |
| Update a Domain | PATCH | /v0/domains/{{domainId}} | conn_mod_def::GJz78p1ihJc::w6INtrDsT9aWW7A2m0xnnw |
| Verify a Domain | POST | /v0/domains/{{domainId}}/verify | conn_mod_def::GJz785ajzm0::lfZVYkPES1qVkLWxe0Q-vg |
Messages
| Action | Method | Path | Action id |
|---|
| Get a Message from an Inbox | GET | /v0/inboxes/{{inboxId}}/messages/{{messageId}} | conn_mod_def::GJz8CE8lDBY::IftjYoiMQDKOv4hERGmPww |
| List an Inbox’s Messages | GET | /v0/inboxes/{{inboxId}}/messages | conn_mod_def::GJz8CY-N4Dw::9MgcgZrxTViYsNG1wgVHcw |
| Forward a Message from an Inbox | POST | /v0/inboxes/{{inboxId}}/messages/{{messageId}}/forward | conn_mod_def::GJz8B1hR-5M::lzVDSINrQFeWvQLniAxdkA |
| Reply All to a Message in an Inbox | POST | /v0/inboxes/{{inboxId}}/messages/{{messageId}}/reply-all | conn_mod_def::GJz8CiZvJw4::ite_T4FITxaR0bmj8rWaBg |
| Reply to a Message in an Inbox | POST | /v0/inboxes/{{inboxId}}/messages/{{messageId}}/reply | conn_mod_def::GJz8CpVmY3w::WDx9mHQuSeGzCiJPJLmJAQ |
| Send a Message from an Inbox | POST | /v0/inboxes/{{inboxId}}/messages/send | conn_mod_def::GJz8Cx1aM_M::yNe27ai6SuSWduFeY2jLzg |
| Update an Inbox Message | PATCH | /v0/inboxes/{{inboxId}}/messages/{{messageId}} | conn_mod_def::GJz8C6MlBQc::AopK7rLhRtCi4UQyzoocjA |
Threads
| Action | Method | Path | Action id |
|---|
| Get a Pod’s Thread | GET | /v0/pods/{{podId}}/threads/{{threadId}} | conn_mod_def::GJz8FBYZRLY::z9fm0iKYS6mAVe7Nd0J0ow |
| Get a Thread | GET | /v0/threads/{{threadId}} | conn_mod_def::GJz8E627IXc::IQgSgCP_Que6Qx3UIVEG3g |
| Get an Inbox Thread | GET | /v0/inboxes/{{inboxId}}/threads/{{threadId}} | conn_mod_def::GJz8EzzhCWY::Us8WwVAxSRuhjK02QQAxKg |
| List a Pod’s Threads | GET | /v0/pods/{{podId}}/threads | conn_mod_def::GJz8FbaMbdY::LYhzSPyxSzidI4Npm395tQ |
| List an Inbox’s Threads | GET | /v0/inboxes/{{inboxId}}/threads | conn_mod_def::GJz8FLcPNrM::nVnvo5x_TxuyOcMi1kr6TA |
| List Threads | GET | /threads | conn_mod_def::GJz8FTm0t5k::Ka-RUkPuQMq2r--9i7hj0Q |
| Delete a Thread | DELETE | /v0/threads/{{threadId}} | conn_mod_def::GJz8EMiMUEg::eLTdJ37ySsulfZiEo-2jow |
ApiKeys
| Action | Method | Path | Action id |
|---|
| List a Pod's API Keys | GET | /v0/pods/{{podId}}/api-keys | conn_mod_def::GJz77YJJWzk::DtP3zvhTSX6eQvoLSc-O5w |
| List API Keys | GET | /v0/api-keys | conn_mod_def::GJz77Q2lrbo::89upfX1uS0OLFmRaO5Lmdw |
| Create an API Key for a Pod | POST | /v0/pods/{{podId}}/api-keys | conn_mod_def::GJz763LlpnE::QgywK9vfR7OzHM120SVkvQ |
| Create API Key | POST | /api-keys | conn_mod_def::GJz76wM3_2E::7EtaPayaRBOqWL1uPjfqJA |
| Delete an API Key | DELETE | /v0/api-keys/{{apiKey}} | conn_mod_def::GJz769pxBRc::S9AELphXT1e2qxXBLdo-xw |
PodDomains
| Action | Method | Path | Action id |
|---|
| Get a Pod Domain's Zone File | GET | /v0/pods/{{podId}}/domains/{{domainId}}/zone-file | conn_mod_def::GJz78P0vw8k::OVjWj4UyQDiEVTMcR-wSJQ |
| List a Pod’s Domains | GET | /v0/pods/{{podId}}/domains | conn_mod_def::GJz78eVdxA0::7ohZ9JN7Sbem1PR0FbDlNQ |
| Create a Pod Domain | POST | /v0/pods/{{podId}}/domains | conn_mod_def::GJz77lye1fE::GFxgsk1rRlu-M0MXEXoWzQ |
| Delete a Pod Domain | DELETE | /v0/pods/{{podId}}/domains/{{domainId}} | conn_mod_def::GJz77zgQw5Q::6fD4eJzASBaWke4Q0JHC9Q |
| Verify a Pod Domain | POST | /v0/pods/{{podId}}/domains/{{domainId}}/verify | conn_mod_def::GJz79AP70Is::1Ibl97wwRRWFYeqmkqlu8Q |
Lists
| Action | Method | Path | Action id |
|---|
| Get a List Entry | GET | /v0/lists/{{direction}}/{{type}}/{{entry}} | conn_mod_def::GJz8BT3iQKM::lHzN_Gf9R32vqeSqc0SE0g |
| List List Entries | GET | /v0/lists/{{direction}}/{{type}} | conn_mod_def::GJz8Bky_m1s::5FliY0VJQVyTJsafTmmLRg |
| Create a List Entry | POST | /v0/lists/{{direction}}/{{type}} | conn_mod_def::GJz8AwnA06o::FB_1dDXNS2ycElthYFtzOg |
| Delete a List Entry | DELETE | /v0/lists/{{direction}}/{{type}}/{{entry}} | conn_mod_def::GJz8BEHjQg0::mwPeG0MvT7yQVRCPhObpTw |
Pods
| Action | Method | Path | Action id |
|---|
| Get a Pod | GET | /v0/pods/{{podId}} | conn_mod_def::GJz8DzqeZvU::5Z425prMSoeIu8HZZaTpjQ |
| List Pods | GET | /pods | conn_mod_def::GJz8D83qaVY::u_Ec4rt8R52EOvmrzUzh1Q |
| Create a Pod | POST | /v0/pods | conn_mod_def::GJz8DjxjvgE::bSo7zufaTfuiqg3zJMfo9Q |
| Delete a Pod | DELETE | /v0/pods/{{podId}} | conn_mod_def::GJz8DthZYwo::SmjSar8VS8GwXwXRl09QXQ |
DraftAttachments
| Action | Method | Path | Action id |
|---|
| Get a Draft Attachment | GET | /v0/drafts/{{draftId}}/attachments/{{attachmentId}} | conn_mod_def::GJz79dsTYuo::q_NVqmxeR36qQKfVNju9ow |
| Get a Draft Attachment | GET | /v0/pods/{{podId}}/drafts/{{draftId}}/attachments/{{attachmentId}} | conn_mod_def::GJz79klXTuo::neN-dF9XRkCVp0vXK5dECA |
| Get a Draft Attachment (Metadata + Download URL) | GET | /v0/inboxes/{{inboxId}}/drafts/{{draftId}}/attachments/{{attachmentId}} | conn_mod_def::GJz79Ww5R5I::RyMFbDzhQPGBwh4E9jQhPg |
PodListEntries
| Action | Method | Path | Action id |
|---|
| Get a Pod List Entry | GET | /v0/pods/{{podId}}/lists/{{direction}}/{{type}}/{{entry}} | conn_mod_def::GJz8BafhCo0::zZpQ7338Ts-RQL5k5HD_xA |
| List a Pod’s List Entries | GET | /v0/pods/{{podId}}/lists/{{direction}}/{{type}} | conn_mod_def::GJz8Bs-Cwig::B2zu-MQFSbKcW_bcloF__Q |
| Delete a Pod List Entry | DELETE | /v0/pods/{{podId}}/lists/{{direction}}/{{type}}/{{entry}} | conn_mod_def::GJz8BLlHEgM::GUWKsUKzR-GJv1ajmxbq6w |
PodsDomains
| Action | Method | Path | Action id |
|---|
| Get a Pod’s Domain | GET | /v0/pods/{{podId}}/domains/{{domainId}} | conn_mod_def::GJz78BCOxUU::KJQ-S3hVTXyQvaqUqkCL7w |
| Update a Pod’s Domain | PATCH | /v0/pods/{{podId}}/domains/{{domainId}} | conn_mod_def::GJz78ykbnyQ::SowSqh38T_W_hYWJbR9Low |
InboxDrafts
| Action | Method | Path | Action id |
|---|
| Get an Inbox Draft | GET | /v0/inboxes/{{inboxId}}/drafts/{{draftId}} | conn_mod_def::GJz79s0JMBM::jaZjN1wIRNuLX9Vd4b7q0Q |
| Update an Inbox Draft | PATCH | /v0/inboxes/{{inboxId}}/drafts/{{draftId}} | conn_mod_def::GJz7-jRbWok::yBmK1vetQd2udRi90vmeYQ |
ThreadAttachments
| Action | Method | Path | Action id |
|---|
| Get a Thread Attachment | GET | /v0/threads/{{threadId}}/attachments/{{attachmentId}} | conn_mod_def::GJz8Ei8BXu4::7x-JfCeKSeGvOZwJAeb4vw |
| Get a Thread Attachment (Download URL) | GET | /v0/pods/{{podId}}/threads/{{threadId}}/attachments/{{attachmentId}} | conn_mod_def::GJz8EqwF_tU::UzSv5puOTx6pF-FcDBC9qA |
PodApiKeys
| Action | Method | Path | Action id |
|---|
| Delete a Pod’s API Key | DELETE | /v0/pods/{{podId}}/api-keys/{{apiKey}} | conn_mod_def::GJz77H3nU-w::hWCgZR5dSq2J7EXSwbFe5w |
MessageComplained
| Action | Method | Path | Action id |
|---|
| Message Complained (Webhook Event) | POST | /message-complained | conn_mod_def::GJz7-8zJzxQ::ttyWQCvASY2GVlaI93kIPA |
MessageReceivedEvents
| Action | Method | Path | Action id |
|---|
| Message Received (Webhook Event) | POST | {{webhookPath}} | conn_mod_def::GJz7_LuBD1E::Dyp634ZcRMmkrPSdRO2Fsg |
InboxMessageAttachments
| Action | Method | Path | Action id |
|---|
| Get an Inbox Message Attachment | GET | /v0/inboxes/{{inboxId}}/messages/{{messageId}}/attachments/{{attachmentId}} | conn_mod_def::GJz8B8MYxqI::0v7EozQhQZemFpgnIHcMrg |
InboxMessages
| Action | Method | Path | Action id |
|---|
| Get an Inbox Message’s Raw Content Download URL | GET | /v0/inboxes/{{inboxId}}/messages/{{messageId}}/raw | conn_mod_def::GJz8CONXf0k::MRpLMxmhSzOHWojyxJ1gcg |
PodMetrics
| Action | Method | Path | Action id |
|---|
| Query a Pod’s Metrics | GET | /v0/pods/{{podId}}/metrics | conn_mod_def::GJz8DTLL5Bw::tmtwg-hySPeddO9P2Eoq3w |
Organizations
| Action | Method | Path | Action id |
|---|
| Get Current Organization | GET | /v0/organizations | conn_mod_def::GJz8Dbg0NpA::H8Ku9RATSJCk3YiiOk-iTQ |
InboxThreads
| Action | Method | Path | Action id |
|---|
| Delete an Inbox Thread | DELETE | /v0/inboxes/{{inboxId}}/threads/{{threadId}} | conn_mod_def::GJz8ED_2IhE::gGx4eGFGShC-x2bG30n1xg |
PodThreads
| Action | Method | Path | Action id |
|---|
| Delete a Pod Thread | DELETE | /v0/pods/{{podId}}/threads/{{threadId}} | conn_mod_def::GJz8ETj6sPc::qa168OPbTn6UKamuKhN6YA |
Attachments
| Action | Method | Path | Action id |
|---|
| Get an Attachment for a Thread in an Inbox | GET | /v0/inboxes/{{inboxId}}/threads/{{threadId}}/attachments/{{attachmentId}} | conn_mod_def::GJz8EauMc-M::6gPzKk6zSNStI26RFdt7Dw |
WebSocketEventStream
| Action | Method | Path | Action id |
|---|
| Connect to WebSocket Event Stream | GET | /v0 | conn_mod_def::GJz8GM_TKhY::sRD9nCCyQaGcYfrOFhhA5A |
This lists 90 of 91 actions. For anything not here, call search_one_platform_actions with platform agent-mail. The full catalog is at https://www.withone.ai/knowledge/agent-mail.
When a call fails
The error comes from AgentMail, not from One. A 400 or 422 means your parameters do not match the schema, so re-read the knowledge and fix the field. A 401 or 403 means the connection needs re-authorizing, which no retry will fix. A 404 means the id is not on this account. A 429 means slow down. Never retry a write more than once: the first attempt may have landed.
Full catalog: https://www.withone.ai/knowledge/agent-mail
Integration knowledge by One (withone.ai), licensed under One-Knowledge-1.0. Attribution must be preserved in derivative works.