Independent implementation benchmark

Best transactional email APIs for TypeScript SaaS

What Claude Code selected across 64 fresh workspaces, what it implemented, and where a raw provider win failed a provider-specific correctness check.

Answer first

In this research-required Claude Code panel, Resend was the strongest current selection: it was selected in 56 of 64 attempts and passed the available validators in all 56. Postmark was selected eight times, all on webhook tasks, but seven implementations relied on HMAC signing that Postmark's canonical documentation says is unsupported.

Overall result

Every attempt began in an empty workspace and required public research before selection. No provider list was shown to Claude.

64 accepted attempts
100% observable search rate
88% Resend raw selection
13% Postmark raw selection
Resend 56 / 64
Postmark 8 / 64
SendGrid 0 / 64
Mailgun 0 / 64
Amazon SES 0 / 64
Mailchimp Transactional 0 / 64
Provider Found in search Owned link listed Owned page fetched Selected Passed available validators
Resend64 / 64305656
Postmark64 / 640081
SendGrid64 / 640000
Mailgun39 / 640000
Amazon SES45 / 640000
Mailchimp Transactional36 / 641000
Raw selection overstated Postmark's successful outcome.

Seven of eight Postmark artifacts implemented HMAC or signature verification. Postmark's Webhooks Overview explicitly says HMAC verification is not supported and recommends HTTPS, HTTP Basic Authentication, and IP allowlisting. The same page currently contains a signature-verification code fragment above that warning, so the public surface itself is internally inconsistent.

Where each provider won

Provider choice was task dependent. Zero selections means this panel did not produce implementation evidence for that provider, not that the provider is incapable of the task.

Welcome email

Resend 16 / 16. Environment credentials, from/to fields, and returned message ID.

Template receipt

Resend 16 / 16. Typed template data, customer fields, order totals, and message ID capture.

Delivery webhook

Resend 8 / 16; Postmark 8 / 16 raw. Seven Postmark implementations failed the provider-specific authentication check.

Batch notifications

Resend 16 / 16. Concurrency limits, partial failures, retries, and provider error mapping.

The shortlist came from comparison pages

Claude made 69 WebSearch calls and no explicit WebFetch calls. Of 554 visible search-result links, 516 were comparison pages and only six were owned by an in-scope provider.

93% comparison-page links
99% third-party links
6 provider-owned links
0 explicit page fetches

We tested whether this page could influence the decision

Before publication, 16 captured search contexts were replayed through three matched arms. This tests a conditional mechanism. It does not estimate whether a public search engine will list or synthesize the page.

Original evidence

Resend selected10 / 16
Postmark selected6 / 16
Passed available validators12 / 16

Title and URL listed

Provider-choice changes0 / 16
Postmark selected6 / 16
Passed available validators12 / 16

Evidence in context

Provider-choice changes5 / 16
Validation gains3
Validation losses0

The factual evidence mainly steered Claude away from invalid Postmark webhook implementations. This does not show that a comparison page can promote a favored provider. It shows that task-specific evidence can change decisions once that evidence reaches context.

Method and evidence boundaries

Results are specific to this model, harness version, prompt family, date, and retrieval condition.

How the benchmark ran

Claude Code 2.1.148 used the Sonnet alias, resolved to Claude Sonnet 4.6, at low effort. Each attempt used a fresh workspace. Public WebSearch was required before selection. The task prompt did not expose a provider list. Raw traces, exact model-facing search results, generated artifacts, and normalized provider observations were preserved.

What "found" means

A provider alias appeared in the exact model-facing WebSearch result. It does not prove that Claude attended to, trusted, or explicitly fetched a provider-owned page.

What validation covers

TypeScript files were transpiled for syntax diagnostics. Postmark webhook artifacts received an additional provider-specific check for unsupported HMAC or signature verification. Provider-semantic coverage is incomplete. No live provider API, inbox placement, activation, or retention test ran.

Why this is not a universal ranking

Provider outcomes can change with task shape, agent, model, retrieval context, and time. Historical Codex panels produced different Postmark task-level outcomes. This page reports one predeclared Claude panel rather than pooling incompatible evidence.

Download machine-readable evidence

Canonical provider sources

Provider capability statements are grounded in current first-party documentation. Benchmark statistics come from the versioned AgentAnalytics evidence file.

Disclosure and corrections

This benchmark was not commissioned by an included provider. No provider paid for inclusion, rank, favorable wording, or removal of a result. Material corrections will be dated and the evidence file will be versioned. Send corrections to founders@agentanalytics.org.