Robotomail is one API call for a mailbox with inbound webhooks. MCPmailer holds the thread, the history, and the tools so your code does not.
Agent inbox APIs · Robotomail claims checked July 2026
Robotomail promises a real mailbox from a single API call: sending, inbound webhooks, threading, and deliverability handled for you. It is a lean entrant in the same 2026 cohort as AgentMail and OpenMail, and the pitch is speed to first send.
If your integration is a webhook handler inside a service you already run, and you want the smallest possible API to learn, Robotomail is exactly that shape. There is nothing wrong with wanting less product.
A webhook handler means you own the conversation state machine: correlating a reply to its thread, deciding when the agent should wake, keeping history somewhere searchable. We hold all three and hand them to the agent as tools, which is the difference between an afternoon and a sprint.
A webhook needs a public URL, TLS, signature verification, a retry policy, and something awake to receive it. wait_for_reply needs an outbound call. For an agent running in a chat client, a Durable Object, or a nightly job, that removes the entire deployment question.
get_thread returns a conversation, search_inbox runs full-text across the workspace, and list_messages filters by unread or thread. You are not maintaining a messages table and an index to answer "what did we already tell this person".
One flat send limit punishes the useful case. Ours classifies every outbound message: a reply into a thread the recipient started is near-unrestricted, a first contact with a stranger is quota gated. A support agent never gets rate limited for doing its job.
Every row is a claim we could defend with their documentation open beside it. Where they are ahead, the row says so.
The mailbox moves; the code around it mostly disappears.
Create the agents
One mailbox each, one scoped key each.
Retire the webhook endpoint
Replace it with wait_for_reply for synchronous conversations, or list_messages with unread_only for a polling agent.
Drop your messages table
Threads, bodies, and attachments are already stored and searchable, so the store you were keeping becomes read-through.
No. Threads, message bodies, attachments, and a full-text index are part of the workspace, and the agent reaches them with read_message, get_thread, and search_inbox.
Yes, and this is the main practical difference. wait_for_reply is an outbound long-poll, so an agent behind NAT, in a chat client, or in a cron job needs no inbound reachability at all.
Both are minutes. Ours is one MCP server entry if your client speaks MCP; theirs is one HTTP call plus somewhere to receive the webhook.
You get a structured reason like daily_send_quota_exhausted with a reset time, so the agent can wait or explain rather than retry blindly.
If you are choosing between agent inbox APIs, the deciding question is usually where the conversation state lives. Ours lives in the mailbox, and your agent reaches it with tools instead of with a schema you maintain.
The free tier is 3,000 emails a month across three agent inboxes, no card, with receiving, threading, and search included. Enough to watch a real conversation happen before you decide.
More Agent inbox APIs