The request is valid but clashes with the current state — a duplicate, a seat already taken, a state transition that is not allowed from here.
A 409 is a state problem, not a transport problem, so blind retries make it worse. Test that your retry policy distinguishes it from a 503.
35 endpoints in this playground answer with 409. Every one is free, needs no signup, and can be called from the browser or with curl.
DELETE https://funapi.dev/api/pizza/v1/orders/{id} — Order already delivered — cannot cancel (Pizza Orders API)PUT https://funapi.dev/api/coffee/v1/orders/{id}/ready — Order is already ready (Coffee Shop API)DELETE https://funapi.dev/api/football/v1/teams/{id} — Team has played matches (Football API)PATCH https://funapi.dev/api/holmes/v1/cases/{id} — Case is already in that status (Sherlock Holmes API)POST https://funapi.dev/api/webhooks/v1/deliveries/{id}/replay — Max attempts (3) already reached (Webhooks API)POST https://funapi.dev/api/dinopark/v1/dinosaurs — Enclosure is at capacity (Dino Park API)POST https://funapi.dev/api/marvel/v1/missions/{id}/complete — Mission is already complete (Marvel API)POST https://funapi.dev/api/got/v1/nobles/{id}/kill — Noble is already dead (Game of Thrones API)POST https://funapi.dev/api/got/v1/battles — A house cannot fight itself (Game of Thrones API)POST https://funapi.dev/api/bank/v1/transfers — An account is frozen (Bank API)POST https://funapi.dev/api/bank/v1/accounts/{id}/freeze — Already frozen (Bank API)POST https://funapi.dev/api/airline/v1/bookings — Seat taken, flight cancelled, or flight full (overbooked) (Airline API)PUT https://funapi.dev/api/airline/v1/bookings/{id}/seat — Seat taken or booking checked-in (Airline API)POST https://funapi.dev/api/airline/v1/bookings/{id}/checkin — Already checked-in, or the flight is cancelled (Airline API)DELETE https://funapi.dev/api/airline/v1/bookings/{id} — Cannot cancel after check-in (Airline API)PATCH https://funapi.dev/api/protocol/v1/documents/{id} — A "test" operation failed (Protocol Lab API)POST https://funapi.dev/api/shop/v1/carts/{id}/items — Not enough stock (product 3 is always out) (Shop API)POST https://funapi.dev/api/shop/v1/carts/{id}/checkout — Cart already checked out, or stock ran out since adding (Shop API)POST https://funapi.dev/api/cargo/v1/shipments/{id}/advance — Shipment is in a terminal state (Cargo Tracking API)POST https://funapi.dev/api/cargo/v1/shipments/{id}/attempt-delivery — Not out-for-delivery (Cargo Tracking API)PUT https://funapi.dev/api/cargo/v1/shipments/{id}/address — Already delivered (Cargo Tracking API)POST https://funapi.dev/api/space/v1/launches/{id}/scrub — Already launched or already scrubbed (Space Agency API)POST https://funapi.dev/api/space/v1/launches/{id}/launch — Not scheduled, or an auto-abort at T-0 (~25% chance) (Space Agency API)GET https://funapi.dev/api/space/v1/launches/{id}/countdown — Launch is not scheduled (Space Agency API)POST https://funapi.dev/api/starfleet/v1/ships — A ship with that name already exists (Starfleet API)…and 10 more endpoints across the catalog.
All HTTP status codes · All 37 mock REST APIs · Getting started guide