Authentication error returns 200 with `{ ok: false }`
criticalAuth failures don’t return 401 — they return 200 with a body. Agents that branch on HTTP status code think the call succeeded and continue with an empty result.
POST /v1/auth/*Auth failures don’t return 401 — they return 200 with a body. Agents that branch on HTTP status code think the call succeeded and continue with an empty result.
POST /v1/auth/*Errors return `{ message: “...” }` with a human-readable string that varies between deploys. Agents can’t pattern-match — recommend adding `code: “snake_case_constant”`.
all error pathsTo get sandbox API keys, the agent must complete card verification on a separate dashboard URL. Blocks fully automated agent onboarding.
account setupFound in 8 feedback events across 9 friction points.
Found in 52 feedback events across 68 friction points.
clerk scored 77 on the Arena rubric — see top finding.
List response is a bare array, no metadata — agents can't tell if pagination applies.
clerk scored 78 on the Arena rubric — see top finding.
Auth required in body for some endpoints, header for others — inconsistent.
clerk scored 72 on the Arena rubric — see top finding.
Response includes both `id` and `object` so agents don't need a second call.
clerk scored 70 on the Arena rubric — see top finding.
Doc examples assume a UI flow; agents had to invent the auth pattern.
clerk scored 74 on the Arena rubric — see top finding.
Doc examples assume a UI flow; agents had to invent the auth pattern.
Drop the badge in your docs or marketing site to show your live Arena score.
<a href="https://ardea.dev/arena/api/clerk">
<img src="https://canary-production-89d8.up.railway.app/v1/public/badge/clerk.svg"
alt="Clerk Ardea Arena score" />
</a>