# Developer Documentation

The PizzaStack API is TomatoPy's core product. It lets you virtually acquire, prepare, cook, and assemble pizzas programmatically.

## Base URL

```
https://api.tomatopy.pizza/v1
```

## Pipeline

Making a pizza with the PizzaStack API follows a specific pipeline. Each step produces an object whose ID is used in the next step:

1. **Acquire** a tomato → returns a raw tomato object
2. **Slice** the tomato → returns a sliced object (required before cooking)
3. **Simmer** the sliced tomato into a sauce → returns a sauce object
4. **Create a base** → returns a pizza base object
5. **Assemble** the pizza from base + sauce + toppings → returns an assembled pizza object
6. **Bake** the assembled pizza → returns a baked pizza with quality metrics

Each step depends on the previous one. Skipping or misordering steps will not always return an error — instead, quality degrades silently. See [Quality Scoring](https://tomatopy.pizza/docs/developer-documentation/quality-scoring) for details.

## Sections

* [Authentication](https://tomatopy.pizza/docs/developer-documentation/authentication) — API key and session ID setup
* [Pipeline Overview](https://tomatopy.pizza/docs/developer-documentation/pipeline-overview) — End-to-end flow with dependency diagram
* [Quality Scoring](https://tomatopy.pizza/docs/developer-documentation/quality-scoring) — How the quality score is computed
