---
title: "GET /search"
method: GET
path: "/search"
tags: ["search"]
---

# GET /search

`GET /search`

## Request

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

Search recipes by name, ingredients and description. Matches on meaning as well as wording, so a search for "creamy pasta" also finds carbonara. Use the "fields" parameter to return only the fields you need.

## Query parameters

- `query` string, required
- `fields` string
- `language` string
- `limit` string
- `without` string

## Response `200`

Success

- object
  - `results` SearchResult[], 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[]
      - `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: a string matching the pattern ^[a-z]{2}$
    - `media` RecipeMedia[]
      - 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
      - `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: 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[]
    - `courses` string[]
    - `createdAt` string: a string to be decoded into a Date
    - `cuisines` string[]
    - `equipment` string[]
    - `groups` string[]: 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[]
      - `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[]
    - `techniques` string[]
    - `text` RecipeText: 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: a string to be decoded into a Date
    - `url` string
    - `id` string, required
    - `score` number, required: A rank fusion of the meaning and the wording legs of the search, plus a bonus for a title that contains the query. Higher comes first. It is a rank, not a confidence: scores are comparable only within one response.

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