---
title: "Consolidate several recipes into one list, grouped by aisle."
method: GET
path: "/shopping-list"
tags: ["shoppingList"]
---

# Consolidate several recipes into one list, grouped by aisle.

`GET /shopping-list`

## Request

- Base URL: `https://api.tinyplates.dev`
- URL: `https://api.tinyplates.dev/shopping-list`
- Auth: none required

One shopping list for several recipes. `recipes` is a comma-separated list of recipe ids, each optionally followed by a colon and the servings to cook — `66d0a1b2c3d4e5f6a7b8c9d0:6,66d0a1b2c3d4e5f6a7b8c9d1`. Quantities are scaled to those servings and then added up wherever they can be: grams to grams, cloves to cloves. Amounts that cannot be added, such as two cloves of garlic and 10 g of garlic, stay separate lines.

## Query parameters

- `recipes` string, required

## Response `200`

Success

- object
  - `items` ShoppingItem[], required
    - `category` 'bakery' | 'dairy' | 'drinks' | 'frozen' | 'meat' | 'other' | 'pantry' | 'produce' | 'seafood' | 'spices', required: The aisle to find it in.
    - `display` string, required: The line as a reader would write it, such as "6 onion".
    - `extras` Quantity[]: Amounts a recipe asked for in a unit this line's own cannot take, one per unit: "1 cup" with a note of "plus 3 tbsp" is "1 cup + 3 tbsp". Buy them as well as the quantity.
      - `max` number: a non-negative number
      - `unit` 'g' | 'kg' | 'lb' | 'oz' | 'cl' | 'cup' | 'dl' | 'fl-oz' | 'gallon' | 'l' | 'ml' | 'pint' | 'quart' | 'tbsp' | 'tsp' | 'bag' | 'bottle' | 'box' | 'bunch' | 'can' | 'clove' | 'cube' | 'dash' | 'drop' | 'ear' | 'handful' | 'head' | 'jar' | 'knob' | 'leaf' | 'package' | 'packet' | 'piece' | 'pinch' | 'portion' | 'pot' | 'scoop' | 'sheet' | 'shot' | 'slice' | 'sprig' | 'stalk' | 'stick' | 'tub' | 'cm' | 'inch'
      - `value` number, required: a non-negative number
    - `name` string, required
    - `plusMore` boolean: A recipe also asked for this without saying how much — oil for frying, a garnish — so the quantity is a minimum rather than the whole of it.
    - `quantity` Quantity
      - `max` number: a non-negative number
      - `unit` 'g' | 'kg' | 'lb' | 'oz' | 'cl' | 'cup' | 'dl' | 'fl-oz' | 'gallon' | 'l' | 'ml' | 'pint' | 'quart' | 'tbsp' | 'tsp' | 'bag' | 'bottle' | 'box' | 'bunch' | 'can' | 'clove' | 'cube' | 'dash' | 'drop' | 'ear' | 'handful' | 'head' | 'jar' | 'knob' | 'leaf' | 'package' | 'packet' | 'piece' | 'pinch' | 'portion' | 'pot' | 'scoop' | 'sheet' | 'shot' | 'slice' | 'sprig' | 'stalk' | 'stick' | 'tub' | 'cm' | 'inch'
      - `value` number, required: a non-negative number
    - `recipeIds` string[], required: The recipes that asked for it.
  - `recipes` object[], required
    - `id` string, required
    - `servings` number, required
    - `title` string, required

## Other responses

- `400`: The request did not match the expected schema
- `401`: ApiKeyDisabledError
- `429`: DailyAllowanceExceededError
- `500`: InternalError

---

[API](https://skmtc.dev/tinyplates/apis/tiny-plates-api.md) · [All operations](https://skmtc.dev/tinyplates/apis/tiny-plates-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tinyplates/apis/tiny-plates-api/revisions/514440dcbb5d?raw)
