Skip to content

Night-Owl-Labs/Recipe-Resizer-File-Format

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


JSON Badge
GitHub Badge X Badge Email Badge
Silver


πŸ§‘β€πŸ³ πŸ₯• Recipe Resizer File Format πŸ… πŸ₯¬

The Recipe Resizer File Format is a proprietary file type (.reciperesizer extension) used by the Recipe Resizer app for importing and exporting recipes. These files are JSON-based and designed for easy sharing, syncing, and backup of recipe data within the app.

Download Recipe Resizer on the Apple App Store


Table of Contents

File Structure

The file contains an array of recipe or recipes, each with its own metadata, ingredients, directions, and other relevant information.

Example

{
  "recipes" : [
    {
      "recipe" : {
        "name" : "Very Berry Lemon Cake",
        "description" : "A zesty lemon cake layered with creamy frosting and loaded with fresh, juicy berries for a bright, flavorful treat.",
        "category" : "Dessert",
        "system" : "Imperial",
        "servings" : {
          "to" : 0,
          "from" : 8
        },
        "times" : {
          "total" : {
            "hours" : 1,
            "minutes" : 15
          },
          "cook" : {
            "hours" : 1,
            "minutes" : 0
          },
          "prep" : {
            "hours" : 0,
            "minutes" : 15
          }
        },
        "source" : {
          "author" : "Team Recipe Resizer",
          "website" : "https:\/\/reciperesizer.com",
          "image" : "",
          "video" : "",
          "link" : ""
        },
        "verification" : {
          "verifiedID" : "",
          "verifiedSignature" : "",
          "verified" : false
        },
        "directions" : [
          {
            "steps" : [
              "1. Preheat oven to 355 Β°F (180 Β°C).",
              "2. Line the bottoms of two 9\" cake pans with parchment paper, no butter or oil needed.",
              "3. Beat 7 eggs on high speed using the whisk attachment for a minute or two. With the mixer still running, gradually add 1 cup of sugar and continue beating until fluffy and thick, about 10 minutes."
            ]
          }
        ],
        "notes" : [

        ],
        "ingredients" : [
          {
            "quantity" : "7",
            "sequence" : 1,
            "measurementUnit" : "Each",
            "quantityRange" : "",
            "resizedSequence" : 0,
            "measurementType" : "Other",
            "measurementUnitAbv" : "ech",
            "type" : "O",
            "name" : "large eggs"
          },
          {
            "quantity" : "2",
            "sequence" : 2,
            "measurementUnit" : "Cups",
            "quantityRange" : "",
            "resizedSequence" : 0,
            "measurementType" : "Dry",
            "measurementUnitAbv" : "cup",
            "type" : "O",
            "name" : "sugar"
          }
          // Shortened for brevity
        ]
      }
    }
  ]
}

Note

You can find example .reciperesizer and .json files in the repository's examples directory.

Field Definitions

Below is a summary of the file structure and field definitions used in the file.

Root Object

Field Path Type Description
recipes Array Root array containing one or more recipes.
recipes[].recipe Object The actual recipe object.

Recipe Metadata

Field Path Type Description
recipe.name String Title of the recipe (Required).
recipe.description String Short description of the recipe.
recipe.category String Category like "Dessert", "Chicken", etc.
recipe.system String Measurement system: "Imperial", "Metric", or "Combination" (Required).

Servings

Field Path Type Description
recipe.servings.from Int From servings (Original Quantity) (Required).
recipe.servings.to Int To servings (Resized Quantity).

Time Estimates

Field Path Type Description
recipe.times.total.hours Int Total time (hours).
recipe.times.total.minutes Int Total time (minutes).
recipe.times.cook.hours Int Cook time (hours).
recipe.times.cook.minutes Int Cook time (minutes).
recipe.times.prep.hours Int Prep time (hours).
recipe.times.prep.minutes Int Prep time (minutes).

Source

Field Path Type Description
recipe.source.author String Author of the recipe.
recipe.source.website String Name of the website.
recipe.source.image String Image URL (optional).
recipe.source.video String Video URL (optional).
recipe.source.link String Link to original source.

Verification

Note

This section is for Team Recipe Resizer created recipes. It is not used for user-generated recipes but are required fields.

Field Path Type Description
recipe.verification.verifiedID String ID of the signer or source.
recipe.verification.verifiedSignature String Cryptographic signature value.
recipe.verification.verified Boolean Whether recipe should be checked for verification.

Ingredients

Field Path Type Description
recipe.ingredients[] Array of Objects List of ingredients (At least one required).
recipe.ingredients[].quantity String / Double Quantity (e.g., "1 1/2" or 1.5) (Required).
recipe.ingredients[].measurementUnit String Full unit name (e.g., "Teaspoon") (Required).
recipe.ingredients[].measurementUnitAbv String Abbreviated unit (e.g., "tsp") (Required).
recipe.ingredients[].measurementType String "Dry", "Liquid", or "Other" (Required).
recipe.ingredients[].name String Name of the ingredient (Required).
recipe.ingredients[].sequence Int Order in which it appears (Required).
recipe.ingredients[].type String "O" = "Original", "R" = "Resized" (Required).
recipe.ingredients[].quantityRange Object Ranged quantity object (Optional).
recipe.ingredients[].resizedSequence Int Used to order multiple resized quantities and units (Optional).

Directions

Field Path Type Description
recipe.directions[] Array of Objects Groups of steps.
recipe.directions[].steps[] Array of Strings List of instructions.

Notes

Field Path Type Description
recipe.notes[] Array of Objects Groups of steps.
recipe.notes[] Array of Strings List of notes.

Importing

To import a .reciperesizer file:

  1. Open the Recipe Resizer app.
  2. Tap the plus sign in the upper right hand corner.
  3. Choose Recipe Resizer File Format.
  4. Select a .reciperesizer file from your device or cloud storage.
  5. The app will parse and display the recipe.
  6. Review the recipe details and tap the checkmark to save it to your cookbook.

Exporting

To export a recipe to a .reciperesizer file:

  1. Hold down the recipe you want to export.
  2. Tap Export.
  3. Choose Recipe Resizer File Format.
  4. The file will be saved and ready to share or back up.

Schema

The JSON Schema for the .reciperesizer file format can be found in the schema directory of this repository. This schema defines the structure, required fields, and data types for validating .reciperesizer files.

You can use this online schema validator here and paste the schema file and your .reciperesizer file into it in order to validate that it conforms to the schema.

The schema can also be found embedded in our website at https://reciperesizer.com/schema/current/recipe-resizer-schema.json.

File Thumbnail

When a .reciperesizer file is saved to an iOS device running Recipe Resizer, the app associates the file extension with the following thumbnail that will appear in the Files app and other file browsers:

Why Use This File Format?

  • Portable: Encapsulates all recipe details in a single file.
  • Verifiable: Optional signature adds integrity and source validation.
  • Readable: Based on JSON, making it developer- and human-friendly.
  • Structured: Organized metadata ensures consistent handling across devices.

Developer Notes

While the .reciperesizer format is proprietary, it uses standard JSON syntax, which makes it easy to read with common parsers.

Warning

Modifying the contents of a verified recipe without recalculating a valid signature may result in the file being treated as unverified or rejected upon import.

The Recipe Resizer File Format is designed for use with the Recipe Resizer app. Developers interested in integrating support for this format into their own applications should refer to the field definitions provided above to ensure compatibility.

An example use case of this file is the Recipe Resizer AI Assistant, which can read and write recipes in this format to facilitate recipe generation and modification. Visit the Recipe Resizer AI Assistant on ChatGPT for more information.

Resources

Disclaimer

The .reciperesizer format is the intellectual property of Night Owl Labs, LLC. It is designed solely for use with the Recipe Resizer app. Compatibility with third-party applications is not officially supported but can be developed by you if .

The .reciperesizer format is the intellectual property of Night Owl Labs, LLC. and is designed exclusively for use with the Recipe Resizer app. While compatibility with third-party applications is not officially supported, developers are free to implement their own solutions. Please read our Terms and Conditions for more information.

License

This project is released under the terms of the MIT License, which permits use, modification, and distribution of the code, subject to the conditions outlined in the license.

  • The MIT License provides certain freedoms while preserving rights of attribution to the original creators.
  • For more details and to understand all requirements and conditions, see the LICENSE file in this repository.

Credits

Author: Night Owl Labs, LLC.
Email: support@reciperesizer.com
Website: reciperesizer.com
Reference: Main Branch


About

πŸ§‘β€πŸ³ πŸ₯• πŸ… πŸ₯¬ A custom JSON-based file format (.reciperesizer) used for importing, exporting, and verifying recipes in the Recipe Resizer app.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors

Languages