Errors
Every 4xx/5xx body is
{ "error": { "code", "message", "fix" } }. fix is the exact corrective step; agents should act on it.| status | code | fix |
|---|---|---|
| 401 | missing_api_key / invalid_api_key | Send Authorization: Bearer ot_test_... from the dashboard |
| 400 | validation_error | The message names the field; correct it |
| 400 | invalid_email / invalid_ip | Send the raw email and the client IP (from x-forwarded-for) |
| 429 | plan_limit_reached | Free plan cap hit this month; upgrade under Billing |
| 409 | challenge_resolved | The challenge already passed or failed; request a new decision |
| 409 | stripe_not_connected | Connect Stripe or push fingerprints to POST /api/v1/signals/card |