Compare

Every edge we hold, against the whole field.

A dash means not offered or not documented on the day we looked.

It is not a claim that it cannot be done. Where a competitor is the better choice, its page says so.

Last checked 16 September 2026.

EdgeSendRavenResendPostmarkMailgunSendGridAgentMailLoopsMailchimp
Priced per email sent, never per contactPricing by list size charges most to the customer whose list is growing, which is the point of the product.transactional by volume; marketing $40–$650/mo by contactsEmail API by volume; Marketing Campaigns by contactsper inbox and per plan: $20/mo for 10 inboxes and 10,000 emailsby subscribed contacts; sends unlimitedby contacts
Transactional, campaigns and automations on one planTwo products means two suppression lists that disagree and a price gap that rewards mislabelling campaigns as transactional.two plans, one dashboardbroadcast stream; no audiences or automationsmarketing is Mailjet, a separate producttwo productsno campaigns or automationsmarketing and transactional together; no inboundtransactional is Mandrill, a paid add-on
The reply is a thread, not a webhookA webhook hands you a raw message and leaves you to work out which conversation it belongs to.a received-email event; you fetch the message and set reply headers yourselfinbound JSON to a webhookroutes post to a webhookInbound Parse posts to a webhook
Quoted history stripped from repliesThe third reply in a thread is mostly the first two quoted back. A model reading it pays for that and gets confused by it.text and html, no stripped fieldStrippedTextReplystripped-text on inboundextracted_text
One query for what is awaiting a replyThis is the poll an agent actually runs. Without it you build a state machine over inbound events.labels and drafts; no awaiting-reply query documented
Per-key daily cap and recipient allowlistA workspace quota trips after an agent has mailed thousands of people. A key limit trips before.keys scope to a domain and to send-only; no cap or allowlistdomain sending keys; no cap or allowlistkey permissions; no cap or allowlistper-key permissions and inbox scope; allow and block lists sit on inboxes, not keys
Human approval hold on a keyThe only way to let an agent write mail without letting it send mail.a key can write drafts it cannot send; a person sends them
Campaign refused before it starts on bounce or complaint rateReputation dashboards report the damage. A gate prevents it.
Unsubscribe cancels queued sends and ends the sequenceDoing only the first is how a working unsubscribe still delivers day three of a welcome series.an automation skips its remaining send steps for an unsubscribed contactnot documentednot documentednot documentedno sequencesan unsubscribed contact gets no further campaign or workflow emailnot documented
Opt down by topic, per personGiven only all-or-nothing, people press spam instead, and a complaint costs the domain far more than an opt-out.topics on broadcastslist-level unsubscribesunsubscribe groupsmailing listsgroups and preferences
Remote MCP server with no stored credentialsA server that holds its own database credentials is a shared identity for every caller.official, local or hosted, covering the whole APIofficial local server, 24 tools; none reads inboundofficial local serverTwilio's official server reads the docs; it does not call the APIofficial remote serverofficial remote serverMandrill only, an official remote server; none for marketing
llms.txt and an unauthenticated OpenAPI documentA model decides what it is holding from the description document. Generated ones say what, not which.llms.txt; OpenAPI on GitHubllms.txt; Swagger 2.0 at /swagger/server.ymlllms.txt and OpenAPI 3.1a section in Twilio's llms.txt; OpenAPI on GitHubllms.txt and OpenAPIllms.txt and OpenAPIllms.txt
Errors written for an agentA client that backs off on 429 retries a payment problem forever. A model that sees an error retries a held draft.
Inbound included and freeCharging for the reply discourages the half of email that makes it a conversation.on all plans; each received email counts against the sending quotaPro and Platform plans1 route free, 5 on Basic, full from FoundationInbound Parse on every planthe core productMandrill only, parsed JSON to a webhook
Free tier that does not expire or throttle by the dayA trial that expires is a deadline, not a tier, and a 100-a-day cap is a tier you cannot test a campaign on.3,000/mo, capped at 100 a day100 emails a month100 a day60-day trial, 100 a day3 inboxes, 3,000 a month, 100 a day1,000 contacts, 4,000 sends, branded footer250 contacts, 500 sends a month
Rate per 1,000 past the entry paid tierThe rate past the allowance is the real price for anyone who grows.$0.90 per 1,000 on Pro$1.80 per 1,000 on Basic$1.80 per 1,000 on Basictiered, $0.0013 to $0.0005 per email by planplan-capped
Usage pricing without tier cliffsTiers do not hurt at the boundaries. They hurt in the middle, which is where most senders live.tiers, with pay-as-you-go overage between themsteps by contact countsteps by contact count
  • Offered
  • Partly, or with a condition
  • Not offered, or not documented

Competitor figures are published list prices and public documentation on the date shown.

Pick the page for the tool you are on.

Already decided? The migration guides cover the export, the column mapping and the opt-outs for each tool.