integrations.sh
← all integrations

1,000,000+ Recipe and Grocery List API (v2)

OpenAPI apis-guru

#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.collectionCollections

    Get the list of current, seasonal recipe collections. From here, you can use the /collection/{id} endpoint to retrieve the recipes in those collections.

  • collection.collectionGetCollection

    Gets a recipe collection. A recipe collection is a curated set of recipes.

  • collection.collectionGetCollectionMeta

    Gets a recipe collection metadata. A recipe collection is a curated set of recipes.

  • groceryList.groceryListAddRecipe

    Add 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.groceryListDelete

    Delete 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.groceryListDepartment

    Departmentalize a list of strings -- used for ad-hoc grocery list item addition

  • groceryList.groceryListGet

    Get the user's grocery list. User is determined by Basic Authentication.

  • groceryList.groceryListGroceryListItemGuid

    Update a grocery item by GUID

  • groceryList.groceryListGroceryListRemoveMarkedItems

    Clears the checked lines.

  • groceryList.groceryListPost

    Add a single line item to the grocery list

  • groceryList.groceryListPostGroceryListSync

    Synchronize the grocery list. Call this with a POST to /grocerylist/sync

  • groceryList.postGrocerylistItem

    Add a single line item to the grocery list

  • images.imagesGet

    Get all the images for a recipe. DEPRECATED. Please use /recipe/{recipeId}/photos.

  • images.imagesGetPendingByUser

    Gets the pending by user.

  • images.imagesGetRecipePhotos

    Get all the photos for a recipe

  • images.imagesGetScanImages

    Gets a list of RecipeScan images for the recipe. There will be at most 3 per recipe.

  • images.imagesUploadRecipeImage

    POST: /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.
  • images.imagesUploadUserAvatar

    POST: /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.
  • me.meGetOptions

    Gets the options.

  • me.meIndex

    Indexes this instance.

  • me.mePutMe

    Puts me.

  • me.mePutMePersonal

    Puts me personal.

  • me.mePutMePreferences

    Puts me preferences.

  • me.meSkinny

    Skinnies this instance.

  • me.putMeProfile

    Puts me.

  • note.noteDelete

    Delete a review do a DELETE Http request of /note/{ID}

  • note.noteGet

    Get a given note. Make sure you're passing authentication information in the header for the user who owns the note.

  • note.noteGetNotes

    recipe/100/notes

  • note.notePost

    HTTP POST a new note into the system.

  • note.notePut

    HTTP PUT (update) a Recipe note (RecipeNote).

  • recipe.recipeAutoComplete

    Given a query, return recipe titles starting with query. Query must be at least 3 chars in length.

  • recipe.recipeAutoCompleteAllRecipes

    Automatics the complete all recipes.

  • recipe.recipeAutoCompleteMyRecipes

    Automatics the complete my recipes.

  • recipe.recipeCategories

    Get a list of recipe categories (the ID field can be used for include_cat in search parameters)

  • recipe.recipeDelete

    Delete a Recipe (you must be authenticated as an owner of the recipe)

  • recipe.recipeFeedback

    Feedback on a Recipe -- for internal BigOven editors

  • recipe.recipeGet

    Return full Recipe detail. Returns 403 if the recipe is owned by someone else.

  • recipe.recipeGetActiveRecipe

    Returns last active recipe for the user

  • recipe.recipeGetRandomRecipe

    Get a random, home-page-quality Recipe.

  • recipe.recipeGetRecipeWithSteps

    Return full Recipe detail with steps. Returns 403 if the recipe is owned by someone else.

  • recipe.recipeGetStep

    Gets recipe single step as text

  • recipe.recipeGetStepNumber

    Returns stored step number and number of steps in recipe

  • recipe.recipeGetSteps

    Stores recipe step number and returns saved step data

  • recipe.recipeGetV2

    Same as GET recipe but also includes the recipe videos (if any)

  • recipe.recipePost

    Add a new recipe

  • recipe.recipePut

    Update a recipe

  • recipe.recipeRaves

    Get the recipe/comment tuples for those recipes with 4 or 5 star ratings

  • recipe.recipeRecentViews

    Get a list of recipes that the authenticated user has most recently viewed

  • recipe.recipeRecipeSearch

    Search 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.recipeRecipeSearchRandom

    Search 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.recipeRelated

    Get recipes related to the given recipeId

  • recipe.recipeScan

    POST 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.recipeZapRecipe

    Zaps the recipe.

  • review.getRecipeRecipeIdReview

    Get my review for the recipe {recipeId}, where "me" is determined by standard authentication headers

  • review.getRecipeReviewReviewId

    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.

  • review.reviewDelete

    DEPRECATED! - Deletes a review by recipeId and reviewId. Please use recipe/review/{reviewId} instead.

  • review.reviewDeleteReply

    DELETE a reply to a given review. Authenticated user must be the one who originally posted the reply.

  • review.reviewGet

    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.

  • review.reviewGetReplies

    Get a paged list of replies for a given review.

  • review.reviewGetReviews

    Get paged list of reviews for a recipe. Each review will have at most one FeaturedReply, as well as a ReplyCount.

  • review.reviewPost

    Add a new review. Only one review can be provided per {userId, recipeId} pair. Otherwise your review will be updated.

  • review.reviewPostReply

    POST 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.reviewPut

    Update a given top-level review.

  • review.reviewPutLegacy

    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.

  • review.reviewPutReply

    Update (PUT) a reply to a given review. Authenticated user must be the original one that posted the reply.

  • openapi.previewSpec

    Preview an OpenAPI document before adding it as a source

  • openapi.addSource

    Add an OpenAPI source and register its operations as tools