The syntax is fine and the server understood the request, but the content is semantically wrong — a valid date in the past where a future one is required, a transfer that would overdraw an account.
The distinction from 400 is the point: 400 means "I could not read this", 422 means "I read it, and no". Clients should surface them to users differently.
14 endpoints in this playground answer with 422. Every one is free, needs no signup, and can be called from the browser or with curl.
POST https://funapi.dev/api/bank/v1/accounts — Negative opening deposit (Bank API)POST https://funapi.dev/api/bank/v1/transfers — Amount is not a positive number (Bank API)POST https://funapi.dev/api/shop/v1/carts/{id}/checkout — Coupon invalid or expired (Shop API)POST https://funapi.dev/api/worldcup/v1/matches/{id}/simulate — Knockout pairing not decided (World Cup 2026 API)GET https://funapi.dev/api/worldcup/v1/players/top-scorers — Invalid limit (World Cup 2026 API)POST https://funapi.dev/api/worldcup/v1/tickets — Invalid category or quantity (World Cup 2026 API)POST https://funapi.dev/api/worldcup/v1/predictions — Unknown team (World Cup 2026 API)POST https://funapi.dev/api/dragonball/v1/fighters/{id}/power-up — Invalid amount (Dragon Ball API)POST https://funapi.dev/api/formula1/v1/races/{id}/pit-stops — Invalid pit stop (Formula 1 API)POST https://funapi.dev/api/anime/v1/fighters/{id}/transform — Invalid multiplier (Anime Tournament API)PUT https://funapi.dev/api/storage/v1/objects/{key} — Invalid base64 (Object Storage API)PUT https://funapi.dev/api/faults/v1/config — Invalid profile (Fault Injection API)POST https://funapi.dev/api/data/v1/generate — Invalid schema (Fun Data Bridge API)POST https://funapi.dev/api/data/v1/jobs — Invalid job (Fun Data Bridge API)All HTTP status codes · All 37 mock REST APIs · Getting started guide