Skip to content

Resend

EmailREST · resend-rest-v1

Transactional email API for developers.

Overall score

76.4/100

resend-rest-v1

Measured Sep 21, 2026

Status

Ranked

Complete benchmark. `overall` is a weighted average of the applicable criteria, comparable to other surfaces in the same category and the same rubric version.

Coverage

98% of the rubric

Surfaces
evaluated.

We score a surface, not a product. One product often exposes several, and they are not worth the same.

resend-rest-v1restprimary

98% coverage

76.4/100

Criterion
by criterion.

Measured on resend-rest-v1, rubric v0.2.0. A criterion with no score is not counted as zero: it is excluded and the weights are renormalised.

Offload Valuejudged · weight 15 · Oct 5, 2026

92/100

Resend performs a real, irreversible external side effect: actually delivering email over SMTP infrastructure with domain authentication (DKIM/verification), suppression lists, deliverability, and inbound receiving. An agent cannot approximate sending a real email through inference at any token cost. Beyond sending, it provides domain verification, suppression management, webhooks, and delivery metrics capabilities impossible to synthesize locally. Some endpoints are CRUD (templates, contacts, labels), but the core value is the side effect.

Interaction Costmeasured · weight 15 · Sep 21, 2026

100/100

Median over 2 successful run(s): 5100.5 tokens, 1 calls. Ratio to the best in "transactional-email" (3 surfaces measured, v0.2 scale). Cold, without documentation: 1/1 succeeded.

Error Recoverabilityprobed · weight 15 · Oct 5, 2026

42/100

unknown_endpoint → HTTP 422, clarity 50/100 (field named: no, allowed values: yes, RFC 9457: no) · wrong_type → HTTP 422, clarity 75/100 (field named: yes, allowed values: yes, RFC 9457: no) · hallucinated_enum → HTTP 200, clarity 30/100 (field named: no, allowed values: no, RFC 9457: no) · unknown_field → HTTP 200, clarity 30/100 (field named: no, allowed values: no, RFC 9457: no) · missing_required_param → HTTP 422, clarity 25/100 (field named: no, allowed values: no, RFC 9457: no) · idempotency_replay → HTTP 200, clarity 25/100 (field named: no, allowed values: no, RFC 9457: no)

Doc Legibilitymeasured · weight 12 · Oct 5, 2026

54/100

text/markup ratio 1.5% (weight 30) · rendering without JavaScript undetermined (excluded from the calculation) (weight 25) · machine-readable spec: https://resend.com/openapi.json (weight 25) · llms.txt: https://resend.com/llms.txt (weight 10) · 1 runnable example(s) (weight 10). Weighted average over 75 points of available sub-criteria.

Auth Frictionmeasured · weight 10 · Oct 5, 2026

95/100

Authorization: Bearer <key>, verified by a successful call. One header, no ceremony.

Safety & Reversibilityprobed · weight 10 · Oct 5, 2026

58/100

Two identical POSTs with the same Idempotency-Key header return the same resource (01a10bfd-3437-7548-9431-cb260319e0a5). An agent can retry without risking a duplicate. (weight 35) · No isolated test environment: any experiment hits production. (weight 25). Weighted average over 60 points of measured sub-criteria.

Payload Efficiencyprobed · weight 8 · Oct 5, 2026

63/100

No discoverable field selection (tested fields, select, _fields, expand, properties): the agent swallows the whole resource. (weight 35) · 262 bytes per returned object (3 object(s) in the control response). (weight 25) · Cursor pagination detected ("has_more"). (weight 20) · One list envelope, standard. (weight 10) · ETag present: an agent can avoid re-downloading. (weight 10). Weighted average over 100 points of measured sub-criteria.

Task Atomicitymeasured · weight 6 · Sep 21, 2026

100/100

Median over 2 successful run(s): 5100.5 tokens, 1 calls. Ratio to the best in "transactional-email" (3 surfaces measured, v0.2 scale). Cold, without documentation: 1/1 succeeded.

Prior Knowledge Coveragemeasured · weight 5 · Sep 21, 2026

100/100

Median over 2 successful run(s): 5100.5 tokens, 1 calls. Ratio to the best in "transactional-email" (3 surfaces measured, v0.2 scale). Cold, without documentation: 1/1 succeeded.

Async Compatibilityprobed · weight 2 · Oct 5, 2026

100/100

POST /emails returns an identifier, and GET /emails/{id} reads it back (HTTP 200): the result can be retrieved by polling, with no server to host. Long-polling / SSE not probed, excluded from the weighting.

Tool-Native (MCP)binary · weight 2

—/100

Does the vendor publish an official, maintained MCP server?

Runs, verified
never on the agent’s word.

Every row is a real attempt at the category’s canonical task. Success is verified by reading the created resource back.

TaskTokensCallsErrorsDocsResult
send-transactional-email4,18720withoutverified
send-transactional-email4,25410withverified
send-transactional-email5,94710withverified