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.
Defined in RFC 9110 §15.5.10 — 409 Conflict · MDN reference
Double-booked seats, duplicate usernames, deleting a record that something else still points at, cancelling an order that already shipped, and any state machine asked to make a transition it does not have.
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.
A 409 is about state, so a blind retry usually fails identically — the seat is still taken. Re-read the current state, decide whether the operation still makes sense, and only then try again. This is the status where an automatic retry policy does the most damage for the least benefit.
46 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) Open & run this endpointPUT https://funapi.dev/api/coffee/v1/orders/{id}/ready — Order is already ready (Coffee Shop API) Open & run this endpointDELETE https://funapi.dev/api/football/v1/teams/{id} — Team has played matches (Football API) Open & run this endpointPATCH https://funapi.dev/api/holmes/v1/cases/{id} — Case is already in that status (Sherlock Holmes API) Open & run this endpointPOST https://funapi.dev/api/webhooks/v1/deliveries/{id}/replay — Max attempts (3) already reached (Webhooks API) Open & run this endpointPOST https://funapi.dev/api/dinopark/v1/dinosaurs — Enclosure is at capacity (Dino Park API) Open & run this endpointPOST https://funapi.dev/api/marvel/v1/missions/{id}/complete — Mission is already complete (Marvel API) Open & run this endpointPOST https://funapi.dev/api/got/v1/nobles/{id}/kill — Noble is already dead (Game of Thrones API) Open & run this endpointPOST https://funapi.dev/api/got/v1/battles — A house cannot fight itself (Game of Thrones API) Open & run this endpointPOST https://funapi.dev/api/bank/v1/transfers — An account is frozen (Bank API) Open & run this endpointPOST https://funapi.dev/api/bank/v1/accounts/{id}/freeze — Already frozen (Bank API) Open & run this endpointPOST https://funapi.dev/api/airline/v1/bookings — Seat taken, flight cancelled, or flight full (overbooked) (Airline API) Open & run this endpointPUT https://funapi.dev/api/airline/v1/bookings/{id}/seat — Seat taken or booking checked-in (Airline API) Open & run this endpointPOST https://funapi.dev/api/airline/v1/bookings/{id}/checkin — Already checked-in, or the flight is cancelled (Airline API) Open & run this endpointDELETE https://funapi.dev/api/airline/v1/bookings/{id} — Cannot cancel after check-in (Airline API) Open & run this endpointPATCH https://funapi.dev/api/protocol/v1/documents/{id} — A "test" operation failed (Protocol Lab API) Open & run this endpointPOST https://funapi.dev/api/shop/v1/carts/{id}/items — Not enough stock (product 3 is always out) (Shop API) Open & run this endpointPOST https://funapi.dev/api/shop/v1/carts/{id}/checkout — Cart already checked out, or stock ran out since adding (Shop API) Open & run this endpointPOST https://funapi.dev/api/cargo/v1/shipments/{id}/advance — Shipment is in a terminal state (Cargo Tracking API) Open & run this endpointPOST https://funapi.dev/api/cargo/v1/shipments/{id}/attempt-delivery — Not out-for-delivery (Cargo Tracking API) Open & run this endpointPUT https://funapi.dev/api/cargo/v1/shipments/{id}/address — Already delivered (Cargo Tracking API) Open & run this endpointPOST https://funapi.dev/api/space/v1/launches/{id}/scrub — Already launched or already scrubbed (Space Agency API) Open & run this endpointPOST https://funapi.dev/api/space/v1/launches/{id}/launch — Not scheduled, or an auto-abort at T-0 (~25% chance) (Space Agency API) Open & run this endpointGET https://funapi.dev/api/space/v1/launches/{id}/countdown — Launch is not scheduled (Space Agency API) Open & run this endpointPOST https://funapi.dev/api/starfleet/v1/ships — A ship with that name already exists (Starfleet API) Open & run this endpoint…and 21 more endpoints across the catalog.
All HTTP status codes · All 39 mock REST APIs · Getting started guide
Last updated