1,000,000+ Recipe and Grocery List API (v2)
#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. 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 . 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 recipes or your grocery list), you need to pass in Basic Authentication information in the header, just as with the v1 API. We do now require that you make all calls via https. You need to pass your api_key in with every call, though this can now be done on the header (send a request header "X-BigOven-API-Key" set to your api_key value, e.g., Request["X-BigOven-API-Key"]="your-key-here".)
##Migration Notes
For existing partners, we encourage you to , and while at this writing we have no hard-and-fast termination date for the v1 API, we strongly prefer that you migrate by January 1, 2017. While the changes aren't overly complex, there are several breaking changes, including refactoring of recipe search and results and removal of support for XML. This is not a simply plug-and-play replacement to the v1 API. With respect to an exclusive focus on JSON, the world has spoken, and it prefers JSON for REST-based API's. We've taken numerous steps to refactor the API to make it more REST-compliant. Note that this v2 API will be the preferred API from this point onward, so we encourage developers to migrate to this new format. We have put together some that we encourage you to read carefully.
##Photos
See our .
For more information on usage of this API, including features, pricing, rate limits, terms and conditions, please visit the .
- Homepage
- https://api.apis.guru/v2/specs/bigoven.com/partner.json
- Provider
- bigoven.com
- OpenAPI version
- 3.0.0
- Spec (JSON)
- https://api.apis.guru/v2/specs/bigoven.com/partner/openapi.json
- Spec (YAML)
- https://api.apis.guru/v2/specs/bigoven.com/partner/openapi.yaml
Tools (68)
Extracted live via the executor SDK.
-
collection.collectionCollectionsGet the list of current, seasonal recipe collections. From here, you can use the /collection/{id} endpoint to retrieve the recipes in those collections.
-
collection.collectionGetCollectionGets a recipe collection. A recipe collection is a curated set of recipes.
-
collection.collectionGetCollectionMetaGets a recipe collection metadata. A recipe collection is a curated set of recipes.
-
groceryList.groceryListAddRecipeAdd 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.
-
groceryList.groceryListDeleteDelete all the items on a grocery list; faster operation than a sync with deleted items.
-
groceryList.groceryListDeleteItemByGuid/grocerylist/item/{guid} DELETE will delete this item assuming you own it.
-
groceryList.groceryListDepartmentDepartmentalize a list of strings -- used for ad-hoc grocery list item addition
-
groceryList.groceryListGetGet the user's grocery list. User is determined by Basic Authentication.
-
groceryList.groceryListGroceryListItemGuidUpdate a grocery item by GUID
-
groceryList.groceryListGroceryListRemoveMarkedItemsClears the checked lines.
-
groceryList.groceryListPostAdd a single line item to the grocery list
-
groceryList.groceryListPostGroceryListSyncSynchronize the grocery list. Call this with a POST to /grocerylist/sync
-
groceryList.postGrocerylistItemAdd a single line item to the grocery list
-
images.imagesGetGet all the images for a recipe. DEPRECATED. Please use /recipe/{recipeId}/photos.
-
images.imagesGetPendingByUserGets the pending by user.
-
images.imagesGetRecipePhotosGet all the photos for a recipe
-
images.imagesGetScanImagesGets a list of RecipeScan images for the recipe. There will be at most 3 per recipe.
-
images.imagesUploadRecipeImagePOST: /recipe/{recipeId}/image?lat=42&lng=21&caption=this%20is%20my%20caption
-
images.imagesUploadUserAvatarPOST: /image/avatar
-
me.meGetOptionsGets the options.
-
me.meIndexIndexes this instance.
-
me.mePutMePuts me.
-
me.mePutMePersonalPuts me personal.
-
me.mePutMePreferencesPuts me preferences.
-
me.meSkinnySkinnies this instance.
-
me.putMeProfilePuts me.
-
note.noteDeleteDelete a review do a DELETE Http request of /note/{ID}
-
note.noteGetGet a given note. Make sure you're passing authentication information in the header for the user who owns the note.
-
note.noteGetNotesrecipe/100/notes
-
note.notePostHTTP POST a new note into the system.
-
note.notePutHTTP PUT (update) a Recipe note (RecipeNote).
-
recipe.recipeAutoCompleteGiven a query, return recipe titles starting with query. Query must be at least 3 chars in length.
-
recipe.recipeAutoCompleteAllRecipesAutomatics the complete all recipes.
-
recipe.recipeAutoCompleteMyRecipesAutomatics the complete my recipes.
-
recipe.recipeCategoriesGet a list of recipe categories (the ID field can be used for include_cat in search parameters)
-
recipe.recipeDeleteDelete a Recipe (you must be authenticated as an owner of the recipe)
-
recipe.recipeFeedbackFeedback on a Recipe -- for internal BigOven editors
-
recipe.recipeGetReturn full Recipe detail. Returns 403 if the recipe is owned by someone else.
-
recipe.recipeGetActiveRecipeReturns last active recipe for the user
-
recipe.recipeGetRandomRecipeGet a random, home-page-quality Recipe.
-
recipe.recipeGetRecipeWithStepsReturn full Recipe detail with steps. Returns 403 if the recipe is owned by someone else.
-
recipe.recipeGetStepGets recipe single step as text
-
recipe.recipeGetStepNumberReturns stored step number and number of steps in recipe
-
recipe.recipeGetStepsStores recipe step number and returns saved step data
-
recipe.recipeGetV2Same as GET recipe but also includes the recipe videos (if any)
-
recipe.recipePostAdd a new recipe
-
recipe.recipePutUpdate a recipe
-
recipe.recipeRavesGet the recipe/comment tuples for those recipes with 4 or 5 star ratings
-
recipe.recipeRecentViewsGet a list of recipes that the authenticated user has most recently viewed
-
recipe.recipeRecipeSearchSearch 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
-
recipe.recipeRecipeSearchRandomSearch 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
-
recipe.recipeRelatedGet recipes related to the given recipeId
-
recipe.recipeScanPOST 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 to fetch the image and re-create the thumbnail
-
recipe.recipeZapRecipeZaps the recipe.
-
review.getRecipeRecipeIdReviewGet my review for the recipe {recipeId}, where "me" is determined by standard authentication headers
-
review.getRecipeReviewReviewIdGet 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.
-
review.reviewDeleteDEPRECATED! - Deletes a review by recipeId and reviewId. Please use recipe/review/{reviewId} instead.
-
review.reviewDeleteReplyDELETE a reply to a given review. Authenticated user must be the one who originally posted the reply.
-
review.reviewGetGet 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.
-
review.reviewGetRepliesGet a paged list of replies for a given review.
-
review.reviewGetReviewsGet paged list of reviews for a recipe. Each review will have at most one FeaturedReply, as well as a ReplyCount.
-
review.reviewPostAdd a new review. Only one review can be provided per {userId, recipeId} pair. Otherwise your review will be updated.
-
review.reviewPostReplyPOST 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.
-
review.reviewPutUpdate a given top-level review.
-
review.reviewPutLegacyHTTP 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.
-
review.reviewPutReplyUpdate (PUT) a reply to a given review. Authenticated user must be the original one that posted the reply.
-
openapi.previewSpecPreview an OpenAPI document before adding it as a source
-
openapi.addSourceAdd an OpenAPI source and register its operations as tools