A tiny pizzeria backend: menu, order placement with validation, an order-status flow — and /oven/status, which always returns 500 for negative testing.
The Pizza Orders API is a small order-lifecycle service: a menu, orders that move through states, and an oven endpoint that fails on purpose. It is the page to open when you need a guaranteed, repeatable 500 — most sandboxes make server errors impossible to reproduce, which is exactly why retry logic and error handling so often ship untested.
Base URL: https://funapi.dev/api/pizza/v1 · 9 endpoints · OpenAPI 3.1 spec and Postman collection available. New here? Read the getting started guide.
GET https://funapi.dev/api/pizza/v1/menu — Get the menu. No token, no signup:
curl -i https://funapi.dev/api/pizza/v1/menu
answers 200 OK with:
{
"total": 6,
"data": [
{
"id": 1,
"name": "Margherita",
"price": 9.5,
"vegetarian": true
},
{
"id": 2,
"name": "Pepperoni",
"price": 11,
"vegetarian": false
},
{
"id": 3,
"name": "Quattro Formaggi",
"price": 12.5,
"vegetarian": true
},
{
"id": 4,
"name": "Veggie Garden",
"price": 10.5,
"vegetarian": true
},
{
"id": 5,
"name": "BBQ Chicken",
"price": 12,
"vegetarian": false
},
{
"id": 6,
"name": "Hawaiian",
"price": 11,
"vegetarian": false,
"controversial": true
}
]
}
six pizzas, one controversial
received → baking → out-for-delivery → delivered
POST /pizza/v1/orders — Place an order (validated) · Responds with 201 400 Link to this endpointGET /pizza/v1/orders/{id} — Track an order · Responds with 200 404 Link to this endpointPUT /pizza/v1/orders/{id}/status — Update order status (requires Bearer auth) · Responds with 200 400 401 404 412 Link to this endpointPATCH /pizza/v1/orders/{id} — Partially update an order (address or size) · Responds with 200 400 404 Link to this endpointDELETE /pizza/v1/orders/{id} — Cancel an order (409 if already delivered) · Responds with 204 404 409 Link to this endpointdo not trust the oven
GET /pizza/v1/oven/status — Always returns 500 — for negative tests · Responds with 500 Link to this endpointGET /pizza/v1/oven/preheat — Preheat the oven — always takes ~3s · Responds with 200 Link to this endpointLast updated