Spoonacular Recipes API

The Recipes API from Spoonacular — 42 operation(s) for recipes.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

spoonacular-recipes-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: spoonacular Ingredients Recipes API
  description: 'The spoonacular Nutrition, Recipe, and Food API allows you to access over thousands of recipes, thousands of ingredients, 800,000 food products, over 100,000 menu items, and restaurants. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as "gluten free brownies without sugar" or "low fat vegan cupcakes." You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what''s in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps.


    Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, whole 30, low sodium, low carb, Paleo, ketogenic, FODMAP, and Primal.'
  contact:
    name: David Urbansky
    email: mail@spoonacular.com
    url: https://spoonacular.com/contact
  version: 2.0.2
  x-codegen-settings:
    Nullify404: false
    GenerateAsyncCode: true
    UseMethodPrefix: true
    UseModelPostfix: false
    UseControllerPrefix: true
    UseEnumPostfix: true
    CollectParameters: false
    UseConstructorsForConfig: true
    UseCommonSDKLibrary: false
    iOSUseAppInfoPlist: true
    AndroidUseAppManifest: true
    BodySerialization: 0
    EnableAdditionalModelProperties: false
    PreserveParameterOrder: false
    AppendContentHeaders: true
    iOSGenerateCoreData: false
    GenerateInterfaces: false
    NodeHttpClient: NODE_REQUEST
    ValidateRequiredParameters: false
    JavaUsePropertiesConfig: false
    Timeout: 0
    StoreTimezoneInformation: false
    EnablePHPComposerVersionString: false
    EnableLogging: false
    ArraySerialization: Indexed
    ModelSerializationScheme: Json
    UseExceptionPrefix: true
    RunscopeEnabled: false
    JavaHttpClient: JAVA_OK
    ParameterArrayFormat: ParamArrayWithIndex
    SecurityProtocols:
    - Ssl3
    - Tls
    GenerateTravisConfig: false
    GenerateCircleConfig: false
    GenerateAppveyorConfig: false
    GenerateJenkinsConfig: false
    EnableHttpCache: false
    Retries: 0
    RetryInterval: 1
    GenerateAdvancedDocs: false
    UnderscoreNumbers: true
    UseSingletonPattern: true
    DisableLinting: false
    ApplyCustomizations: []
    SortResources: false
    AllowSkippingSSLCertVerification: false
    DoNotSplitWords: []
    EnableGlobalUserAgent: true
    ReturnCompleteHttpResponse: false
    GenerateModels: true
    GenerateExceptions: true
    IgnoreIfNullJson: false
    DisableDocs: false
    LiftParameterDescriptionFromCustomType: false
    ThrowForHttpErrorStatusCodes: true
    ResponseMapping:
      Type: Simple
    ForceKeywordArgsInRuby: false
    SymbolizeHashKeysInRuby: false
  x-server-configuration:
    default-environment: production
    default-server: default
    environments:
    - name: production
      servers:
      - name: default
        url: https://api.spoonacular.com
    parameters: []
  license:
    name: spoonacular API Terms
    url: https://spoonacular.com/food-api/terms
  termsOfService: https://spoonacular.com/food-api/terms
  x-apis-json-aid: spoonacular
  x-spec-source: https://github.com/ddsky/spoonacular-api-clients/blob/master/spoonacular-openapi-3.json
  x-last-validated: '2026-06-03'
  x-providerName: spoonacular.com
servers:
- url: https://api.spoonacular.com
  variables: {}
security:
- apiKeyScheme: []
tags:
- name: Recipes
paths:
  /recipes/complexSearch:
    get:
      responses:
        '200':
          description: Success
          headers: {}
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  offset:
                    type: integer
                  number:
                    type: integer
                  results:
                    type: array
                    uniqueItems: true
                    minItems: 0
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        title:
                          type: string
                          minLength: 1
                        image:
                          type: string
                          minLength: 1
                        imageType:
                          type: string
                          minLength: 1
                      required:
                      - id
                      - title
                      - image
                      - imageType
                  totalResults:
                    type: integer
                required:
                - offset
                - number
                - results
                - totalResults
              examples:
                example-1:
                  value:
                    offset: 0
                    number: 2
                    results:
                    - id: 716429
                      title: Pasta with Garlic, Scallions, Cauliflower & Breadcrumbs
                      calories: 584
                      carbs: 84g
                      fat: 20g
                      image: https://spoonacular.com/recipeImages/716429-312x231.jpg
                      imageType: jpg
                      protein: 19g
                    - id: 715538
                      title: What to make for dinner tonight?? Bruschetta Style Pork & Pasta
                      calories: 521
                      carbs: 69g
                      fat: 10g
                      image: https://spoonacular.com/recipeImages/715538-312x231.jpg
                      imageType: jpg
                      protein: 35g
                    totalResults: 86
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      parameters:
      - $ref: '#/components/parameters/query'
        example: example
      - name: cuisine
        description: The cuisine(s) of the recipes. One or more, comma separated (will be interpreted as 'OR'). See a full list of supported cuisines.
        schema:
          type: string
          example: italian
        required: false
        style: form
        explode: false
        in: query
        example: italian
      - name: excludeCuisine
        description: The cuisine(s) the recipes must not match. One or more, comma separated (will be interpreted as 'AND'). See a full list of supported cuisines.
        schema:
          type: string
          example: greek
        required: false
        style: form
        explode: false
        in: query
        example: greek
      - name: diet
        description: The diet for which the recipes must be suitable. See a full list of supported diets.
        schema:
          type: string
          example: vegetarian
        required: false
        style: form
        explode: false
        in: query
        example: vegetarian
      - name: intolerances
        description: A comma-separated list of intolerances. All recipes returned must not contain ingredients that are not suitable for people with the intolerances entered. See a full list of supported intolerances.
        schema:
          type: string
          example: gluten
        required: false
        style: form
        explode: false
        in: query
        example: gluten
      - name: equipment
        description: The equipment required. Multiple values will be interpreted as 'or'. For example, value could be "blender, frying pan, bowl".
        schema:
          type: string
          example: pan
        required: false
        style: form
        explode: false
        in: query
        example: pan
      - name: includeIngredients
        description: A comma-separated list of ingredients that should/must be used in the recipes.
        schema:
          type: string
          example: tomato,cheese
        required: false
        style: form
        explode: false
        in: query
        example: tomato,cheese
      - name: excludeIngredients
        description: A comma-separated list of ingredients or ingredient types that the recipes must not contain.
        schema:
          type: string
          example: eggs
        required: false
        style: form
        explode: false
        in: query
        example: eggs
      - name: type
        description: The type of recipe. See a full list of supported meal types.
        schema:
          type: string
          example: main course
        required: false
        style: form
        explode: false
        in: query
        example: main course
      - name: instructionsRequired
        description: Whether the recipes must have instructions.
        schema:
          type: boolean
          example: true
        required: false
        style: form
        explode: false
        in: query
        example: true
      - name: fillIngredients
        description: Add information about the ingredients and whether they are used or missing in relation to the query.
        schema:
          type: boolean
          example: false
        required: false
        style: form
        explode: false
        in: query
        example: false
      - name: addRecipeInformation
        description: If set to true, you get more information about the recipes returned.
        schema:
          type: boolean
          example: false
        required: false
        style: form
        explode: false
        in: query
        example: false
      - name: addRecipeNutrition
        description: If set to true, you get nutritional information about each recipes returned.
        schema:
          type: boolean
          example: false
        required: false
        style: form
        explode: false
        in: query
        example: false
      - name: author
        description: The username of the recipe author.
        schema:
          type: string
          example: coffeebean
        required: false
        style: form
        explode: false
        in: query
        example: coffeebean
      - $ref: '#/components/parameters/tags'
        example: example
      - name: recipeBoxId
        description: The id of the recipe box to which the search should be limited to.
        schema:
          type: integer
          example: 2468
        required: false
        style: form
        explode: false
        in: query
        example: 2468
      - name: titleMatch
        description: Enter text that must be found in the title of the recipes.
        schema:
          type: string
          example: Crock Pot
        required: false
        style: form
        explode: false
        in: query
        example: Crock Pot
      - name: maxReadyTime
        description: The maximum time in minutes it should take to prepare and cook the recipe.
        schema:
          type: number
          example: 20
        required: false
        style: form
        explode: false
        in: query
        example: 20
      - name: minServings
        description: The minimum amount of servings the recipe is for.
        schema:
          type: number
          example: 1
        required: false
        style: form
        explode: false
        in: query
        example: 1
      - name: maxServings
        description: The maximum amount of servings the recipe is for.
        schema:
          type: number
          example: 8
        required: false
        style: form
        explode: false
        in: query
        example: 8
      - $ref: '#/components/parameters/ignorePantry'
        example: example
      - name: sort
        description: The strategy to sort recipes by. See a full list of supported sorting options.
        schema:
          type: string
          example: calories
        required: false
        style: form
        explode: false
        in: query
        example: calories
      - name: sortDirection
        description: The direction in which to sort. Must be either 'asc' (ascending) or 'desc' (descending).
        schema:
          type: string
          example: asc
        required: false
        style: form
        explode: false
        in: query
        example: asc
      - name: minCarbs
        description: The minimum amount of carbohydrates in grams the recipe must have.
        schema:
          type: number
          example: 10
        required: false
        style: form
        explode: false
        in: query
        example: 10
      - name: maxCarbs
        description: The maximum amount of carbohydrates in grams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minProtein
        description: The minimum amount of protein in grams the recipe must have.
        schema:
          type: number
          example: 10
        required: false
        style: form
        explode: false
        in: query
        example: 10
      - name: maxProtein
        description: The maximum amount of protein in grams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minCalories
        description: The minimum amount of calories the recipe must have.
        schema:
          type: number
          example: 50
        required: false
        style: form
        explode: false
        in: query
        example: 50
      - name: maxCalories
        description: The maximum amount of calories the recipe can have.
        schema:
          type: number
          example: 800
        required: false
        style: form
        explode: false
        in: query
        example: 800
      - name: minFat
        description: The minimum amount of fat in grams the recipe must have.
        schema:
          type: number
          example: 1
        required: false
        style: form
        explode: false
        in: query
        example: 1
      - name: maxFat
        description: The maximum amount of fat in grams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minAlcohol
        description: The minimum amount of alcohol in grams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxAlcohol
        description: The maximum amount of alcohol in grams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minCaffeine
        description: The minimum amount of caffeine in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxCaffeine
        description: The maximum amount of caffeine in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minCopper
        description: The minimum amount of copper in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxCopper
        description: The maximum amount of copper in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minCalcium
        description: The minimum amount of calcium in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxCalcium
        description: The maximum amount of calcium in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minCholine
        description: The minimum amount of choline in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxCholine
        description: The maximum amount of choline in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minCholesterol
        description: The minimum amount of cholesterol in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxCholesterol
        description: The maximum amount of cholesterol in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minFluoride
        description: The minimum amount of fluoride in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxFluoride
        description: The maximum amount of fluoride in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minSaturatedFat
        description: The minimum amount of saturated fat in grams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxSaturatedFat
        description: The maximum amount of saturated fat in grams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminA
        description: The minimum amount of Vitamin A in IU the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminA
        description: The maximum amount of Vitamin A in IU the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminC
        description: The minimum amount of Vitamin C milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminC
        description: The maximum amount of Vitamin C in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminD
        description: The minimum amount of Vitamin D in micrograms the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminD
        description: The maximum amount of Vitamin D in micrograms the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminE
        description: The minimum amount of Vitamin E in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminE
        description: The maximum amount of Vitamin E in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminK
        description: The minimum amount of Vitamin K in micrograms the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminK
        description: The maximum amount of Vitamin K in micrograms the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminB1
        description: The minimum amount of Vitamin B1 in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminB1
        description: The maximum amount of Vitamin B1 in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminB2
        description: The minimum amount of Vitamin B2 in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminB2
        description: The maximum amount of Vitamin B2 in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminB5
        description: The minimum amount of Vitamin B5 in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminB5
        description: The maximum amount of Vitamin B5 in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminB3
        description: The minimum amount of Vitamin B3 in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminB3
        description: The maximum amount of Vitamin B3 in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminB6
        description: The minimum amount of Vitamin B6 in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminB6
        description: The maximum amount of Vitamin B6 in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minVitaminB12
        description: The minimum amount of Vitamin B12 in micrograms the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxVitaminB12
        description: The maximum amount of Vitamin B12 in micrograms the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minFiber
        description: The minimum amount of fiber in grams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxFiber
        description: The maximum amount of fiber in grams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minFolate
        description: The minimum amount of folate in micrograms the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxFolate
        description: The maximum amount of folate in micrograms the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minFolicAcid
        description: The minimum amount of folic acid in micrograms the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxFolicAcid
        description: The maximum amount of folic acid in micrograms the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minIodine
        description: The minimum amount of iodine in micrograms the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxIodine
        description: The maximum amount of iodine in micrograms the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minIron
        description: The minimum amount of iron in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxIron
        description: The maximum amount of iron in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minMagnesium
        description: The minimum amount of magnesium in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxMagnesium
        description: The maximum amount of magnesium in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minManganese
        description: The minimum amount of manganese in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxManganese
        description: The maximum amount of manganese in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minPhosphorus
        description: The minimum amount of phosphorus in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxPhosphorus
        description: The maximum amount of phosphorus in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minPotassium
        description: The minimum amount of potassium in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxPotassium
        description: The maximum amount of potassium in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minSelenium
        description: The minimum amount of selenium in micrograms the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxSelenium
        description: The maximum amount of selenium in micrograms the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minSodium
        description: The minimum amount of sodium in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxSodium
        description: The maximum amount of sodium in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minSugar
        description: The minimum amount of sugar in grams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxSugar
        description: The maximum amount of sugar in grams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - name: minZinc
        description: The minimum amount of zinc in milligrams the recipe must have.
        schema:
          type: number
          example: 0
        required: false
        style: form
        explode: false
        in: query
        example: 0
      - name: maxZinc
        description: The maximum amount of zinc in milligrams the recipe can have.
        schema:
          type: number
          example: 100
        required: false
        style: form
        explode: false
        in: query
        example: 100
      - $ref: '#/components/parameters/offset'
        example: example
      - $ref: '#/components/parameters/number'
        example: example

# --- truncated at 32 KB (254 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spoonacular/refs/heads/main/openapi/spoonacular-recipes-api-openapi.yml