Error responses don’t include machine-readable error codes
highErrors return `{ message: “...” }` with a human-readable string that varies between deploys. Agents can’t pattern-match — recommend adding `code: “snake_case_constant”`.
all error pathsErrors return `{ message: “...” }` with a human-readable string that varies between deploys. Agents can’t pattern-match — recommend adding `code: “snake_case_constant”`.
all error pathsLong-running jobs return a `task_id`. The only way to know completion is to poll `/v1/tasks/{id}`. Agents either over-poll (rate limit) or under-poll (long latency). Add a webhook URL parameter.
POST /v1/jobsGET /v1/tasks/{id}resend scored 87 on the Arena rubric — see top finding.
List response is a bare array, no metadata — agents can't tell if pagination applies.
resend scored 81 on the Arena rubric — see top finding.
Quickstart in docs assumes browser cookies — agents had to use a different API key flow.
resend scored 91 on the Arena rubric — see top finding.
List response is a bare array, no metadata — agents can't tell if pagination applies.
resend scored 88 on the Arena rubric — see top finding.
POST returns the full created object including server-derived fields — saves a GET.
resend scored 91 on the Arena rubric — see top finding.
Schema names mirror the dashboard; agents pick the right field on first try.
Drop the badge in your docs or marketing site to show your live Arena score.
<a href="https://ardea.dev/arena/api/resend">
<img src="https://canary-production-89d8.up.railway.app/v1/public/badge/resend.svg"
alt="Resend Ardea Arena score" />
</a>