---
title: "Rank recipes by how much of them your pantry covers."
method: GET
path: "/pantry"
tags: ["pantry"]
---

# Rank recipes by how much of them your pantry covers.

`GET /pantry`

## Request

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

What you can cook from what you have. `ingredients` is the pantry: 1 to 20 comma-separated ingredient names or canonical ids. A name can be in any language the recipes are in, so "kyckling" works as well as "chicken", and a food covers its cuts and kinds: "chicken" covers chicken breast and "onion" covers red onion, but not chicken broth or onion powder. Only recipes that use at least one of them are returned, best covered first, and each carries the pantry ingredients it uses and the ingredients you are missing. Salt, pepper, water, oil, sugar and flour are taken as already in the kitchen: they are reported in `assumedIngredients` and left out of the coverage and of `missingIngredients`. Send `staples=false` to count them as ingredients you need. `maxMissing` narrows the results to recipes you are short no more than that many ingredients for — `maxMissing=0` is what you can cook right now. `without` leaves out recipes that contain any of the listed allergen features from /vocabularies, such as "milk,peanuts"; it is informational, not medical advice.

## Query parameters

- `ingredients` string, required
- `language` string
- `limit` string
- `maxMissing` string
- `offset` string
- `staples` string
- `without` string

## Response `200`

Success

- object
  - `pagination` Pagination, required: Offset pagination. `limit` is capped at 100.
    - `limit` number, required
    - `offset` number, required
    - `total` number, required
  - `recipes` PantryRecipe[], required
    - `id` string, required
    - `author` Author
      - `name` string, required: a non empty string
      - `url` string: a string matching the pattern ^https?:\/\/\S+$
    - `description` string: a non empty string
    - `dietary` Dietary: Diet flags declared by the site or inferred from the required ingredients. A declared flag wins; a missing flag is unknown, and false is a known no.
      - `dairyFree` boolean
      - `glutenFree` boolean
      - `pescatarian` boolean
      - `vegan` boolean
      - `vegetarian` boolean
    - `instructions` RecipeInstruction[], required
      - `duration` Duration
        - `seconds` integer, required: an integer
      - `equipment` Slug[]
      - `group` string: a non empty string
      - `ingredients` string[]
      - `step` integer, required: a positive number
      - `techniques` Slug[]
      - `temperature` Temperature
        - `unit` 'C' | 'F', required
        - `value` number, required
      - `text` string, required: a non empty string
    - `language` string, required: a string matching the pattern ^[a-z]{2}$
    - `media` RecipeMedia[], required
      - union
        - ImageMedia
          - `alt` string: a non empty string
          - `caption` string: a non empty string
          - `id` string, required: a string with no leading or trailing whitespace
          - `license` string: a non empty string
          - `sourceUrl` string: a string matching the pattern ^https?:\/\/\S+$
          - `step` integer: a positive number
          - `height` integer: a positive number
          - `role` 'gallery' | 'hero' | 'step' | 'thumbnail', required
          - `type` 'image', required
          - `url` string, required: a string matching the pattern ^https?:\/\/\S+$
          - `variants` ImageVariant[]
            - `height` integer: a positive number
            - `url` string, required: a string matching the pattern ^https?:\/\/\S+$
            - `width` integer: a positive number
          - `width` integer: a positive number
        - VideoMedia
          - `alt` string: a non empty string
          - `caption` string: a non empty string
          - `id` string, required: a string with no leading or trailing whitespace
          - `license` string: a non empty string
          - `sourceUrl` string: a string matching the pattern ^https?:\/\/\S+$
          - `step` integer: a positive number
          - `duration` Duration
            - `seconds` integer, required: an integer
          - `embedUrl` string: a string matching the pattern ^https?:\/\/\S+$
          - `provider` string: a non empty string
          - `role` 'gallery' | 'step', required
          - `thumbnailUrl` string: a string matching the pattern ^https?:\/\/\S+$
          - `type` 'video', required
          - `url` string, required: a string matching the pattern ^https?:\/\/\S+$
          - `videoId` string: a non empty string
    - `notes` NonEmptyTrimmedString[]
    - `nutrition` Nutrition
      - `basis` object, required
        - `description` string: a non empty string
        - `servings` number: a positive number
        - `type` '100g' | 'recipe' | 'serving', required
      - `calories` NutrientValue
        - `unit` 'IU' | 'g' | 'kcal' | 'mg' | 'µg', required
        - `value` number, required: a non-negative number
      - `carbohydrates` NutrientValue
        - `unit` 'IU' | 'g' | 'kcal' | 'mg' | 'µg', required
        - `value` number, required: a non-negative number
      - `cholesterol` NutrientValue
        - `unit` 'IU' | 'g' | 'kcal' | 'mg' | 'µg', required
        - `value` number, required: a non-negative number
      - `fat` NutrientValue
        - `unit` 'IU' | 'g' | 'kcal' | 'mg' | 'µg', required
        - `value` number, required: a non-negative number
      - `fiber` NutrientValue
        - `unit` 'IU' | 'g' | 'kcal' | 'mg' | 'µg', required
        - `value` number, required: a non-negative number
      - `micronutrients` object
      - `protein` NutrientValue
        - `unit` 'IU' | 'g' | 'kcal' | 'mg' | 'µg', required
        - `value` number, required: a non-negative number
      - `saturatedFat` NutrientValue
        - `unit` 'IU' | 'g' | 'kcal' | 'mg' | 'µg', required
        - `value` number, required: a non-negative number
      - `sodium` NutrientValue
        - `unit` 'IU' | 'g' | 'kcal' | 'mg' | 'µg', required
        - `value` number, required: a non-negative number
      - `source` 'calculated' | 'provided', required
      - `sugar` NutrientValue
        - `unit` 'IU' | 'g' | 'kcal' | 'mg' | 'µg', required
        - `value` number, required: a non-negative number
    - `rating` Rating
      - `best` number: a positive number
      - `count` integer, required: an integer
      - `reviewCount` integer: an integer
      - `value` number, required: a non-negative number
      - `worst` number: a non-negative number
    - `servings` Servings
      - `max` number: a positive number
      - `original` string, required: a non empty string
      - `quantity` number: a positive number
      - `unit` string: a non empty string
    - `times` RecipeTimes, required
      - `cook` Duration
        - `seconds` integer, required: an integer
      - `inactive` Duration
        - `seconds` integer, required: an integer
      - `prep` Duration
        - `seconds` integer, required: an integer
      - `total` Duration
        - `seconds` integer, required: an integer
    - `title` string, required: a non empty string
    - `allergens` RecipeAllergens
      - `celery` boolean, required: Whether the recipe contains this regulated allergen.
      - `crustaceans` boolean, required: Whether the recipe contains this regulated allergen.
      - `eggs` boolean, required: Whether the recipe contains this regulated allergen.
      - `fish` boolean, required: Whether the recipe contains this regulated allergen.
      - `gluten-cereals` boolean, required: Whether the recipe contains this regulated allergen.
      - `lupin` boolean, required: Whether the recipe contains this regulated allergen.
      - `milk` boolean, required: Whether the recipe contains this regulated allergen.
      - `molluscs` boolean, required: Whether the recipe contains this regulated allergen.
      - `mustard` boolean, required: Whether the recipe contains this regulated allergen.
      - `nuts-eu` boolean, required: Whether the recipe contains this regulated allergen.
      - `peanuts` boolean, required: Whether the recipe contains this regulated allergen.
      - `sesame` boolean, required: Whether the recipe contains this regulated allergen.
      - `soy` boolean, required: Whether the recipe contains this regulated allergen.
      - `sulphites` boolean, required: Whether the recipe contains this regulated allergen.
      - `tree-nuts-us` boolean, required: Whether the recipe contains this regulated allergen.
      - `wheat` boolean, required: Whether the recipe contains this regulated allergen.
      - `disclaimer` 'Informational only; not medical advice. Verify ingredients and product labels before serving someone with an allergy.', required
    - `categories` string[], required
    - `courses` string[], required
    - `createdAt` string, required: a string to be decoded into a Date
    - `cuisines` string[], required
    - `equipment` string[]
    - `groups` string[], required: The distinct `group` values of the ingredients and then the steps, in the order they first appear. Empty when the recipe has no sections.
    - `ingredients` RecipeIngredient[], required
      - `display` string, required: a non empty string
      - `group` string: a non empty string
      - `localName` string: a non empty string
      - `localPreparation` string: a non empty string
      - `ingredientId` string: a string matching the pattern ^[a-z0-9]+(-[a-z0-9]+)*$
      - `name` string, required: a non empty string
      - `note` string: a non empty string
      - `optional` boolean, required
      - `original` string, required: a non empty string
      - `preparation` string: a non empty string
      - `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
      - `size` string: a non empty string
    - `tags` string[], required
    - `techniques` string[]
    - `text` RecipeText, required: The recipe as lines of text: each ingredient's `display` line and each step's `text`, in order. A convenience for rendering; everything here is also in the structured fields.
      - `ingredients` string[], required
      - `instructions` string[], required
    - `updatedAt` string, required: a string to be decoded into a Date
    - `url` string, required
    - `assumedIngredients` string[], required: The staples this recipe uses — salt, pepper, water, oil, sugar, flour — taken as already in your kitchen, and so counted neither in the coverage nor as missing. Empty when "staples=false".
    - `coverage` number, required: The share of this recipe's ingredients your pantry covers, from 0 to 1, rounded to two decimals. Higher comes first.
    - `matchedIngredients` string[], required: The recipe ingredients your pantry covers, as the recipe names them.
    - `missingIngredients` string[], required: The recipe ingredients your pantry does not cover, as the recipe names them.

## 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)
