#Documentation This is the documentation for the partner endpoint of the BigOven Recipe and Grocery List API. The update brings with it Swagger-based documentation. [Swagger](http://swagger.io) is an emerging standard for describing REST-based APIs, and with this Swagger-compliant endpoint (above), you can make ready-to-go interface libraries for your code via [swagger-codegen](https://github.com/swagger-api/swagger-codegen). For instance, it's easy to generate libraries for Node.js, Java, Ruby, ASP.NET MVC, jQuery, php and more! You can also try out the endpoint calls with your own api_key right here on this page. Be sure to enter your api_key above to use the "Try it out!" buttons on this page. ##Start Here Developers new to the BigOven API should start with this version, not with the legacy API. We'll be making improvements to this API over time, and doing only bug fixes on the v1 API. To pretend you're a BigOven user (for instance, to get your recently viewed
https://api2.bigoven.com66 endpoints available
/meIndexes this instance.
/mePuts me.
/recipeUpdate a recipe
/recipeAdd a new recipe
/recipesSearch for recipes. There are many parameters that you can apply. Starting with the most common, use title_kw to search within a title. Use any_kw to search across the entire recipe. If you'd like to limit by course, set the parameter "include_primarycat" to one of (appetizers,bread,breakfast,dessert,drinks,maindish,salad,sidedish,soup,marinades,other). If you'd like to exclude a category, set exclude_cat to one or more (comma-separated) list of those categories to exclude. If you'd like to include a category, set include_cat to one or more (comma-separated) of those categories to include. To explicitly include an ingredient in your search, set the parameter "include_ing" to a CSV of up to three ingredients, e.g.:include_ing=mustard,chicken,beef%20tips To explicitly exclude an ingredient in your search, set the parameter "exclude_ing" to a CSV of up to three ingredients. All searches must contain the paging parameters pg and rpp, which are integers, and represent the page number (1-based) and results per page (rpp). So, to get the third page of a result set paged with 25 recipes per page, you'd pass pg=3&rpp=25 If you'd like to target searches to just a single target user's recipes, set userId=the target userId (number). Or, you can set username=theirusername vtn;vgn;chs;glf;ntf;dyf;sff;slf;tnf;wmf;rmf;cps cuisine photos filter=added,try,favorites,myrecipes\r\n\r\n folder=FolderNameCaseSensitive coll=ID of Collection
/me/skinnySkinnies this instance.
/me/profilePuts me.
/collectionsGet the list of current, seasonal recipe collections. From here, you can use the /collection/{id} endpoint to retrieve the recipes in those collections.
/grocerylistGet the user's grocery list. User is determined by Basic Authentication.
/grocerylistDelete all the items on a grocery list; faster operation than a sync with deleted items.
/me/personalPuts me personal.
/recipe/scanPOST an image as a new RecipeScan request 1) Fetch the filename -- DONE 2) Copy it to the pics/scan folder - ENSURE NO NAMING COLLISIONS -- DONE 3) Create 120 thumbnail size in pics/scan/120 -- DONE 4) Insert the CloudTasks record 5) Create the HIT 6) Update the CloudTasks record with the HIT ID 7) Email the requesing user 8) Call out to www.bigoven.com to fetch the image and re-create the thumbnail
/recipe/{id}Return full Recipe detail. Returns 403 if the recipe is owned by someone else.
/recipe/{id}Delete a Recipe (you must be authenticated as an owner of the recipe)
/image/avatarPOST: /image/avatar Testing with Postman (validated 11/20/2015): 1) Remove the Content-Type header; add authentication information 2) On the request, click Body and choose "form-data", then add a line item with "key" column set to "file" and on the right, change the type of the input from Text to File. Browse and choose a JPG.
/recipes/{id}Same as GET recipe but also includes the recipe videos (if any)
/recipes/ravesGet the recipe/comment tuples for those recipes with 4 or 5 star ratings
/me/preferencesPuts me preferences.
/recipes/randomGet a random, home-page-quality Recipe.
/collection/{id}Gets a recipe collection. A recipe collection is a curated set of recipes.
/recipe/{id}/zapZaps the recipe.
/grocerylist/itemAdd a single line item to the grocery list
/grocerylist/lineAdd a single line item to the grocery list
/grocerylist/syncSynchronize the grocery list. Call this with a POST to /grocerylist/sync
/recipe/post/stepStores recipe step number and returns saved step data
/recipe/categoriesGet a list of recipe categories (the ID field can be used for include_cat in search parameters)
/recipe/steps/{id}Return full Recipe detail with steps. Returns 403 if the recipe is owned by someone else.
/grocerylist/recipeAdd a Recipe to the grocery list. In the request data, pass in recipeId, scale (scale=1.0 says to keep the recipe the same size as originally posted), markAsPending (true/false) to indicate that the lines in the recipe should be marked in a "pending" (unconfirmed by user) state.
/recipe/autocompleteGiven a query, return recipe titles starting with query. Query must be at least 3 chars in length.
/recipes/recentviewsGet a list of recipes that the authenticated user has most recently viewed
/recipes/top25randomSearch for recipes. There are many parameters that you can apply. Starting with the most common, use title_kw to search within a title. Use any_kw to search across the entire recipe. If you'd like to limit by course, set the parameter "include_primarycat" to one of (appetizers,bread,breakfast,dessert,drinks,maindish,salad,sidedish,soup,marinades,other). If you'd like to exclude a category, set exclude_cat to one or more (comma-separated) list of those categories to exclude. If you'd like to include a category, set include_cat to one or more (comma-separated) of those categories to include. To explicitly include an ingredient in your search, set the parameter "include_ing" to a CSV of up to three ingredients, e.g.:include_ing=mustard,chicken,beef%20tips To explicitly exclude an ingredient in your search, set the parameter "exclude_ing" to a CSV of up to three ingredients. All searches must contain the paging parameters pg and rpp, which are integers, and represent the page number (1-based) and results per page (rpp). So, to get the third page of a result set paged with 25 recipes per page, you'd pass pg=3&rpp=25 If you'd like to target searches to just a single target user's recipes, set userId=the target userId (number). Or, you can set username=theirusername vtn;vgn;chs;glf;ntf;dyf;sff;slf;tnf;wmf;rmf;cps cuisine photos filter=added,try,favorites,myrecipes\r\n\r\n folder=FolderNameCaseSensitive coll=ID of Collection
/collection/{id}/metaGets a recipe collection metadata. A recipe collection is a curated set of recipes.
/recipe/get/saved/stepGets recipe single step as text
/recipe/photos/pendingGets the pending by user.
/grocerylist/departmentDepartmentalize a list of strings -- used for ad-hoc grocery list item addition
/me/preferences/optionsGets the options.
/recipe/get/step/numberReturns stored step number and number of steps in recipe
/recipe/{recipeId}/noteHTTP POST a new note into the system.
/grocerylist/item/{guid}Update a grocery item by GUID
/grocerylist/item/{guid}/grocerylist/item/{guid} DELETE will delete this item assuming you own it.
/recipe/autocomplete/allAutomatics the complete all recipes.
/recipe/{recipeId}/imagePOST: /recipe/{recipeId}/image?lat=42&lng=21&caption=this%20is%20my%20caption Note that caption, lng and lat are all optional, but must go on the request URI as params because this endpoint needs a multipart/mime content header and will not parse JSON in the body along with it. Testing with Postman (validated 11/20/2015): 1) Remove the Content-Type header; add authentication information 2) On the request, click Body and choose "form-data", then add a line item with "key" column set to "file" and on the right, change the type of the input from Text to File. Browse and choose a JPG.
/recipe/{recipeId}/notesrecipe/100/notes
/recipe/{recipeId}/scansGets a list of RecipeScan images for the recipe. There will be at most 3 per recipe.
/recipe/autocomplete/mineAutomatics the complete my recipes.
/recipe/get/active/recipeReturns last active recipe for the user
/recipe/review/{reviewId}Get a given review by string-style ID. This will return a payload with FeaturedReply, ReplyCount. Recommended display is to list top-level reviews with one featured reply underneath. Currently, the FeaturedReply is the most recent one for that rating.
/recipe/review/{reviewId}Update a given top-level review.
/recipe/{recipeId}/imagesGet all the images for a recipe. DEPRECATED. Please use /recipe/{recipeId}/photos.
/recipe/{recipeId}/photosGet all the photos for a recipe
/recipe/{recipeId}/reviewGet *my* review for the recipe {recipeId}, where "me" is determined by standard authentication headers
/recipe/{recipeId}/reviewAdd a new review. Only one review can be provided per {userId, recipeId} pair. Otherwise your review will be updated.
/recipe/{recipeId}/relatedGet recipes related to the given recipeId
/recipe/{recipeId}/reviewsGet paged list of reviews for a recipe. Each review will have at most one FeaturedReply, as well as a ReplyCount.
/recipe/{recipeId}/feedbackFeedback on a Recipe -- for internal BigOven editors
/grocerylist/clearcheckedlinesClears the checked lines.
/recipe/review/replies/{replyId}Update (PUT) a reply to a given review. Authenticated user must be the original one that posted the reply.
/recipe/review/replies/{replyId}DELETE a reply to a given review. Authenticated user must be the one who originally posted the reply.
/recipe/{recipeId}/note/{noteId}Get a given note. Make sure you're passing authentication information in the header for the user who owns the note.
/recipe/{recipeId}/note/{noteId}HTTP PUT (update) a Recipe note (RecipeNote).
/recipe/{recipeId}/note/{noteId}Delete a review do a DELETE Http request of /note/{ID}
/recipe/review/{reviewId}/repliesGet a paged list of replies for a given review.
/recipe/review/{reviewId}/repliesPOST a reply to a given review. The date will be set by server. Note that replies no longer have star ratings, only top-level reviews do.
/recipe/{recipeId}/review/{reviewId}Get a given review - DEPRECATED. See recipe/review/{reviewId} for the current usage. Beginning in January 2017, BigOven moded from an integer-based ID system to a GUID-style string-based ID system for reviews and replies. We are also supporting more of a "Google Play" style model for Reviews and Replies. That is, there are top-level Reviews and then an unlimited list of replies (which do not carry star ratings) underneath existing reviews. Also, a given user can only have one review per recipe. Existing legacy endpoints will continue to work, but we strongly recommend you migrate to using the newer endpoints listed which do NOT carry the "DEPRECATED" flag.
/recipe/{recipeId}/review/{reviewId}HTTP PUT (update) a recipe review. DEPRECATED. Please see recipe/review/{reviewId} PUT for the new endpoint. We are moving to a string-based primary key system, no longer integers, for reviews and replies.
/recipe/{recipeId}/review/{reviewId}DEPRECATED! - Deletes a review by recipeId and reviewId. Please use recipe/review/{reviewId} instead.
#Documentation This is the documentation for the partner endpoint of the BigOven Recipe and Grocery List API. The update brings with it Swagger-based documentation. [Swagger](http://swagger.io) is an emerging standard for describing REST-based APIs, and with this Swagger-compliant endpoint (above), you can make ready-to-go interface libraries for your code via [swagger-codegen](https://github.com/swagger-api/swagger-codegen). For instance, it's easy to generate libraries for Node.js, Java, Ruby, ASP.NET MVC, jQuery, php and more! You can also try out the endpoint calls with your own api_key right here on this page. Be sure to enter your api_key above to use the "Try it out!" buttons on this page. ##Start Here Developers new to the BigOven API should start with this version, not with the legacy API. We'll be making improvements to this API over time, and doing only bug fixes on the v1 API. To pretend you're a BigOven user (for instance, to get your recently viewed
https://api2.bigoven.com66 endpoints available
/meIndexes this instance.
/mePuts me.
/recipeUpdate a recipe
/recipeAdd a new recipe
/recipesSearch for recipes. There are many parameters that you can apply. Starting with the most common, use title_kw to search within a title. Use any_kw to search across the entire recipe. If you'd like to limit by course, set the parameter "include_primarycat" to one of (appetizers,bread,breakfast,dessert,drinks,maindish,salad,sidedish,soup,marinades,other). If you'd like to exclude a category, set exclude_cat to one or more (comma-separated) list of those categories to exclude. If you'd like to include a category, set include_cat to one or more (comma-separated) of those categories to include. To explicitly include an ingredient in your search, set the parameter "include_ing" to a CSV of up to three ingredients, e.g.:include_ing=mustard,chicken,beef%20tips To explicitly exclude an ingredient in your search, set the parameter "exclude_ing" to a CSV of up to three ingredients. All searches must contain the paging parameters pg and rpp, which are integers, and represent the page number (1-based) and results per page (rpp). So, to get the third page of a result set paged with 25 recipes per page, you'd pass pg=3&rpp=25 If you'd like to target searches to just a single target user's recipes, set userId=the target userId (number). Or, you can set username=theirusername vtn;vgn;chs;glf;ntf;dyf;sff;slf;tnf;wmf;rmf;cps cuisine photos filter=added,try,favorites,myrecipes\r\n\r\n folder=FolderNameCaseSensitive coll=ID of Collection
/me/skinnySkinnies this instance.
/me/profilePuts me.
/collectionsGet the list of current, seasonal recipe collections. From here, you can use the /collection/{id} endpoint to retrieve the recipes in those collections.
/grocerylistGet the user's grocery list. User is determined by Basic Authentication.
/grocerylistDelete all the items on a grocery list; faster operation than a sync with deleted items.
/me/personalPuts me personal.
/recipe/scanPOST an image as a new RecipeScan request 1) Fetch the filename -- DONE 2) Copy it to the pics/scan folder - ENSURE NO NAMING COLLISIONS -- DONE 3) Create 120 thumbnail size in pics/scan/120 -- DONE 4) Insert the CloudTasks record 5) Create the HIT 6) Update the CloudTasks record with the HIT ID 7) Email the requesing user 8) Call out to www.bigoven.com to fetch the image and re-create the thumbnail
/recipe/{id}Return full Recipe detail. Returns 403 if the recipe is owned by someone else.
/recipe/{id}Delete a Recipe (you must be authenticated as an owner of the recipe)
/image/avatarPOST: /image/avatar Testing with Postman (validated 11/20/2015): 1) Remove the Content-Type header; add authentication information 2) On the request, click Body and choose "form-data", then add a line item with "key" column set to "file" and on the right, change the type of the input from Text to File. Browse and choose a JPG.
/recipes/{id}Same as GET recipe but also includes the recipe videos (if any)
/recipes/ravesGet the recipe/comment tuples for those recipes with 4 or 5 star ratings
/me/preferencesPuts me preferences.
/recipes/randomGet a random, home-page-quality Recipe.
/collection/{id}Gets a recipe collection. A recipe collection is a curated set of recipes.
/recipe/{id}/zapZaps the recipe.
/grocerylist/itemAdd a single line item to the grocery list
/grocerylist/lineAdd a single line item to the grocery list
/grocerylist/syncSynchronize the grocery list. Call this with a POST to /grocerylist/sync
/recipe/post/stepStores recipe step number and returns saved step data
/recipe/categoriesGet a list of recipe categories (the ID field can be used for include_cat in search parameters)
/recipe/steps/{id}Return full Recipe detail with steps. Returns 403 if the recipe is owned by someone else.
/grocerylist/recipeAdd a Recipe to the grocery list. In the request data, pass in recipeId, scale (scale=1.0 says to keep the recipe the same size as originally posted), markAsPending (true/false) to indicate that the lines in the recipe should be marked in a "pending" (unconfirmed by user) state.
/recipe/autocompleteGiven a query, return recipe titles starting with query. Query must be at least 3 chars in length.
/recipes/recentviewsGet a list of recipes that the authenticated user has most recently viewed
/recipes/top25randomSearch for recipes. There are many parameters that you can apply. Starting with the most common, use title_kw to search within a title. Use any_kw to search across the entire recipe. If you'd like to limit by course, set the parameter "include_primarycat" to one of (appetizers,bread,breakfast,dessert,drinks,maindish,salad,sidedish,soup,marinades,other). If you'd like to exclude a category, set exclude_cat to one or more (comma-separated) list of those categories to exclude. If you'd like to include a category, set include_cat to one or more (comma-separated) of those categories to include. To explicitly include an ingredient in your search, set the parameter "include_ing" to a CSV of up to three ingredients, e.g.:include_ing=mustard,chicken,beef%20tips To explicitly exclude an ingredient in your search, set the parameter "exclude_ing" to a CSV of up to three ingredients. All searches must contain the paging parameters pg and rpp, which are integers, and represent the page number (1-based) and results per page (rpp). So, to get the third page of a result set paged with 25 recipes per page, you'd pass pg=3&rpp=25 If you'd like to target searches to just a single target user's recipes, set userId=the target userId (number). Or, you can set username=theirusername vtn;vgn;chs;glf;ntf;dyf;sff;slf;tnf;wmf;rmf;cps cuisine photos filter=added,try,favorites,myrecipes\r\n\r\n folder=FolderNameCaseSensitive coll=ID of Collection
/collection/{id}/metaGets a recipe collection metadata. A recipe collection is a curated set of recipes.
/recipe/get/saved/stepGets recipe single step as text
/recipe/photos/pendingGets the pending by user.
/grocerylist/departmentDepartmentalize a list of strings -- used for ad-hoc grocery list item addition
/me/preferences/optionsGets the options.
/recipe/get/step/numberReturns stored step number and number of steps in recipe
/recipe/{recipeId}/noteHTTP POST a new note into the system.
/grocerylist/item/{guid}Update a grocery item by GUID
/grocerylist/item/{guid}/grocerylist/item/{guid} DELETE will delete this item assuming you own it.
/recipe/autocomplete/allAutomatics the complete all recipes.
/recipe/{recipeId}/imagePOST: /recipe/{recipeId}/image?lat=42&lng=21&caption=this%20is%20my%20caption Note that caption, lng and lat are all optional, but must go on the request URI as params because this endpoint needs a multipart/mime content header and will not parse JSON in the body along with it. Testing with Postman (validated 11/20/2015): 1) Remove the Content-Type header; add authentication information 2) On the request, click Body and choose "form-data", then add a line item with "key" column set to "file" and on the right, change the type of the input from Text to File. Browse and choose a JPG.
/recipe/{recipeId}/notesrecipe/100/notes
/recipe/{recipeId}/scansGets a list of RecipeScan images for the recipe. There will be at most 3 per recipe.
/recipe/autocomplete/mineAutomatics the complete my recipes.
/recipe/get/active/recipeReturns last active recipe for the user
/recipe/review/{reviewId}Get a given review by string-style ID. This will return a payload with FeaturedReply, ReplyCount. Recommended display is to list top-level reviews with one featured reply underneath. Currently, the FeaturedReply is the most recent one for that rating.
/recipe/review/{reviewId}Update a given top-level review.
/recipe/{recipeId}/imagesGet all the images for a recipe. DEPRECATED. Please use /recipe/{recipeId}/photos.
/recipe/{recipeId}/photosGet all the photos for a recipe
/recipe/{recipeId}/reviewGet *my* review for the recipe {recipeId}, where "me" is determined by standard authentication headers
/recipe/{recipeId}/reviewAdd a new review. Only one review can be provided per {userId, recipeId} pair. Otherwise your review will be updated.
/recipe/{recipeId}/relatedGet recipes related to the given recipeId
/recipe/{recipeId}/reviewsGet paged list of reviews for a recipe. Each review will have at most one FeaturedReply, as well as a ReplyCount.
/recipe/{recipeId}/feedbackFeedback on a Recipe -- for internal BigOven editors
/grocerylist/clearcheckedlinesClears the checked lines.
/recipe/review/replies/{replyId}Update (PUT) a reply to a given review. Authenticated user must be the original one that posted the reply.
/recipe/review/replies/{replyId}DELETE a reply to a given review. Authenticated user must be the one who originally posted the reply.
/recipe/{recipeId}/note/{noteId}Get a given note. Make sure you're passing authentication information in the header for the user who owns the note.
/recipe/{recipeId}/note/{noteId}HTTP PUT (update) a Recipe note (RecipeNote).
/recipe/{recipeId}/note/{noteId}Delete a review do a DELETE Http request of /note/{ID}
/recipe/review/{reviewId}/repliesGet a paged list of replies for a given review.
/recipe/review/{reviewId}/repliesPOST a reply to a given review. The date will be set by server. Note that replies no longer have star ratings, only top-level reviews do.
/recipe/{recipeId}/review/{reviewId}Get a given review - DEPRECATED. See recipe/review/{reviewId} for the current usage. Beginning in January 2017, BigOven moded from an integer-based ID system to a GUID-style string-based ID system for reviews and replies. We are also supporting more of a "Google Play" style model for Reviews and Replies. That is, there are top-level Reviews and then an unlimited list of replies (which do not carry star ratings) underneath existing reviews. Also, a given user can only have one review per recipe. Existing legacy endpoints will continue to work, but we strongly recommend you migrate to using the newer endpoints listed which do NOT carry the "DEPRECATED" flag.
/recipe/{recipeId}/review/{reviewId}HTTP PUT (update) a recipe review. DEPRECATED. Please see recipe/review/{reviewId} PUT for the new endpoint. We are moving to a string-based primary key system, no longer integers, for reviews and replies.
/recipe/{recipeId}/review/{reviewId}DEPRECATED! - Deletes a review by recipeId and reviewId. Please use recipe/review/{reviewId} instead.