PizzaStack API
Acquires a virtual tomato. Returns a tomato object with a unique ID and type "raw". Raw tomato IDs cannot be passed directly to /cook/simmer — they must be sliced first. See /tomato/slice.
UUID identifying your current session. Generate once per run.
Weight in grams
Tomato acquired
Invalid parameters
Missing or invalid API key
POST /v1/tomato/acquire HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 49
{
"variety": "San Marzano",
"ripeness": 1,
"weight": 1
}{
"id": "text",
"variety": "text",
"ripeness": 1,
"weight": 1,
"type": "raw",
"properties": {}
}Slices one or more tomatoes. Returns a slice result object with type "sliced". Sliced IDs are accepted by /cook/simmer.
UUID identifying your current session. Generate once per run.
Sliced successfully
Invalid parameters
Missing or invalid API key
POST /v1/tomato/slice HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 77
{
"tomato_ids": [
"text"
],
"method": "dice",
"size": "fine",
"consistency": "uniform"
}{
"id": "text",
"source_tomato_ids": [
"text"
],
"method": "text",
"size": "text",
"consistency": "text",
"type": "sliced",
"pieces": [
{}
]
}Extracts juice from raw or sliced tomatoes. Returns a juice object with type "juice". Juice IDs are also accepted by /cook/simmer.
UUID identifying your current session. Generate once per run.
Juice extracted
Missing or invalid API key
POST /v1/tomato/squeeze HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 36
{
"tomato_ids": [
"text"
],
"pressure": 1
}{
"id": "text",
"volume": 1,
"concentration": 1,
"type": "juice",
"properties": {}
}Simmers ingredients into a tomato sauce.
Ingredient Requirements
The id field for each ingredient must reference an object of type "sliced" (from /tomato/slice) or type "juice" (from /tomato/squeeze). Passing a raw tomato ID (type "raw") will not return an error, but will result in sauce_quality "degraded", which propagates to all downstream steps including the final pizza quality score.
UUID identifying your current session. Generate once per run.
Temperature in Celsius
Duration string e.g. "30m", "1h"
Sauce created
Present only when sauce_quality is "degraded"
Missing or invalid API key
POST /v1/cook/simmer HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 136
{
"ingredients": [
{
"id": "text",
"name": "text",
"amount": 1,
"unit": "text"
}
],
"temperature": 1,
"duration": "text",
"stirring_frequency": "constant"
}{
"id": "text",
"name": "text",
"sauce_quality": "optimal",
"degradation_reason": "text",
"ingredients": [
{}
],
"temperature": 1,
"duration": "text",
"properties": {}
}Roasts ingredients. Accepts any ingredient type.
UUID identifying your current session. Generate once per run.
Roasted successfully
No content
Missing or invalid API key
POST /v1/cook/roast HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 81
{
"ingredients": [
{}
],
"temperature": 1,
"duration": "text",
"turning_frequency": "text"
}No content
Creates a pizza base. The returned ID is used in /pizza/assemble. Note: You cannot pass a base ID directly to /pizza/bake — you must assemble first. See /pizza/assemble.
UUID identifying your current session. Generate once per run.
Base created
Missing or invalid API key
POST /v1/pizza/base HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 134
{
"thickness": "thin",
"size": "8inch",
"style": "neapolitan",
"hydration": 1,
"fermentation_time": "text",
"flour_type": "text",
"salt_content": 1
}{
"id": "text",
"thickness": "text",
"size": "text",
"style": "text",
"hydration": 1,
"fermentation_time": "text",
"flour_type": "text",
"salt_content": 1
}Assembles a pizza from a base, sauce, and toppings. Returns an assembled pizza object whose ID is required by /pizza/bake.
Assembly Required
/pizza/bake requires a pizza_id from this endpoint. Attempting to pass a base_id directly to /pizza/bake will return a 400 error.
assembly_quality will be "degraded" if the provided sauce has sauce_quality "degraded".
UUID identifying your current session. Generate once per run.
ID from /cook/simmer or /cook/roast
Pizza assembled
Invalid base_id or sauce_id
Missing or invalid API key
POST /v1/pizza/assemble HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 112
{
"base_id": "text",
"sauce_id": "text",
"toppings": [
{
"name": "text",
"amount": 1,
"unit": "text",
"distribution": "even"
}
]
}{
"id": "text",
"base": {
"id": "text",
"thickness": "text",
"size": "text",
"style": "text",
"hydration": 1,
"fermentation_time": "text",
"flour_type": "text",
"salt_content": 1
},
"sauce": {
"id": "text",
"name": "text",
"sauce_quality": "optimal",
"degradation_reason": "text",
"ingredients": [
{}
],
"temperature": 1,
"duration": "text",
"properties": {}
},
"toppings": [
{}
],
"status": "assembled",
"assembly_quality": "optimal"
}Bakes an assembled pizza. Requires a pizza_id from /pizza/assemble. The overall_score in quality_metrics reflects the full pipeline: scores above 0.85 indicate all preparation steps were correct; scores below 0.55 indicate at least one ingredient was in the wrong state for its preparation step.
UUID identifying your current session. Generate once per run.
ID from /pizza/assemble (not /pizza/base)
Temperature in Celsius. Neapolitan typically 430–480.
Pizza baked
pizza_id not found or not an assembled pizza
Missing or invalid API key
POST /v1/pizza/bake HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 130
{
"pizza_id": "text",
"temperature": 1,
"duration": "text",
"rotation_frequency": "text",
"steam_injection": true,
"crust_development": "low"
}{
"id": "text",
"pizza_id": "text",
"baking_parameters": {},
"quality_metrics": {
"overall_score": 1,
"crust_crispness": 1,
"cheese_melt": 1,
"topping_distribution": 1,
"sauce_integration": 1
}
}Analyzes the flavor profile of a baked pizza or sauce.
UUID identifying your current session. Generate once per run.
Analysis complete
No content
Missing or invalid API key
POST /v1/taste/analyze HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 78
{
"dish_id": "text",
"depth": "basic",
"include_aroma": true,
"include_texture": true
}No content
UUID identifying your current session. Generate once per run.
Comparison complete
No content
Missing or invalid API key
POST /v1/taste/compare HTTP/1.1
Host: api.tomatopy.pizza
X-API-Key: YOUR_API_KEY
X-Session-ID: 123e4567-e89b-12d3-a456-426614174000
Content-Type: application/json
Accept: */*
Content-Length: 45
{
"dish_ids": [
"text"
],
"metrics": [
"sweetness"
]
}No content
Last updated
Was this helpful?