Errors

Every 4xx/5xx body is { "error": { "code", "message", "fix" } }. fix is the exact corrective step; agents should act on it.
statuscodefix
401missing_api_key / invalid_api_keySend Authorization: Bearer ot_test_... from the dashboard
400validation_errorThe message names the field; correct it
400invalid_email / invalid_ipSend the raw email and the client IP (from x-forwarded-for)
429plan_limit_reachedFree plan cap hit this month; upgrade under Billing
409challenge_resolvedThe challenge already passed or failed; request a new decision
409stripe_not_connectedConnect Stripe or push fingerprints to POST /api/v1/signals/card