Open documentation ↗Overview
#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 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 [migrate](https://api2.bigoven.com), 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 [migration notes](/web/documentation/migration-to-v2) that we encourage you to read carefully. ##Photos See our [photos documentation](https://api2.bigoven.com/web/documentation/recipe-images). For more information on usage of this API, including features, pricing, rate limits, terms and conditions, please visit the [BigOven API website](https://api2.bigoven.com).
1,000,000+ Recipe and Grocery List API (v2) is a food & drink API from bigoven.com. Requests are authenticated with an API key. It is served over plain HTTP. Its OpenAPI description documents 66 endpoints.
At a glance
- Authentication
- API key
- HTTPS
- No
- CORS
- Unknown
- Category
- Food & Drink
- Base URL
https://api2.bigoven.com- Version
- partner
- Endpoints
- 66
- OpenAPI
- Specification ↗
- Spec updated
- 2023-03-06
Make a first request
Replace the placeholders; the documentation says exactly where credentials go.
curl -X GET "https://api2.bigoven.com/collections" \
-H "Accept: application/json" \
-H "X-API-Key: YOUR_API_KEY"const response = await fetch("https://api2.bigoven.com/collections", {
method: "GET",
headers: {
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY",
},
});
const data = await response.json();
console.log(data);import requests
response = requests.request(
"GET",
"https://api2.bigoven.com/collections",
headers={
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY",
},
timeout=30,
)
print(response.json())Endpoints
| Method | Path | What it does |
|---|---|---|
| GET | /collection/{id} | Gets a recipe collection. A recipe collection is a curated set of recipes. |
| GET | /collection/{id}/meta | Gets a recipe collection metadata. A recipe collection is a curated set of recipes. |
| GET | /collections | Get the list of current, seasonal recipe collections. From here, you can use the /collection/{id} endpoint to retrieve the recipes in those collections. |
| GET | /grocerylist | Get the user's grocery list. User is determined by Basic Authentication. |
| DELETE | /grocerylist | Delete all the items on a grocery list; faster operation than a sync with deleted items. |
| POST | /grocerylist/clearcheckedlines | Clears the checked lines. |
| POST | /grocerylist/department | Departmentalize a list of strings -- used for ad-hoc grocery list item addition |
| POST | /grocerylist/item | Add a single line item to the grocery list |
| PUT | /grocerylist/item/{guid} | Update a grocery item by GUID |
| DELETE | /grocerylist/item/{guid} | /grocerylist/item/{guid} DELETE will delete this item assuming you own it. |
| POST | /grocerylist/line | Add a single line item to the grocery list |
| POST | /grocerylist/recipe | 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), markAsPe |
| POST | /grocerylist/sync | Synchronize the grocery list. Call this with a POST to /grocerylist/sync |
| POST | /image/avatar | POST: /image/avatar Testing with Postman (validated 11/20/2015): 1) Remove the Content-Type header; add authentication |
| GET | /me | Indexes this instance. |
| PUT | /me | Puts me. |
| PUT | /me/personal | Puts me personal. |
| PUT | /me/preferences | Puts me preferences. |
| GET | /me/preferences/options | Gets the options. |
| PUT | /me/profile | Puts me. |
| GET | /me/skinny | Skinnies this instance. |
| POST | /recipe | Add a new recipe |
| PUT | /recipe | Update a recipe |
| GET | /recipe/autocomplete | Given a query, return recipe titles starting with query. Query must be at least 3 chars in length. |
| GET | /recipe/autocomplete/all | Automatics the complete all recipes. |
| GET | /recipe/autocomplete/mine | Automatics the complete my recipes. |
| GET | /recipe/categories | Get a list of recipe categories (the ID field can be used for include_cat in search parameters) |
| GET | /recipe/get/active/recipe | Returns last active recipe for the user |
| POST | /recipe/get/saved/step | Gets recipe single step as text |
| POST | /recipe/get/step/number | Returns stored step number and number of steps in recipe |
| GET | /recipe/photos/pending | Gets the pending by user. |
| POST | /recipe/post/step | Stores recipe step number and returns saved step data |
| PUT | /recipe/review/replies/{replyId} | Update (PUT) a reply to a given review. Authenticated user must be the original one that posted the reply. |
| DELETE | /recipe/review/replies/{replyId} | DELETE a reply to a given review. Authenticated user must be the one who originally posted the reply. |
| GET | /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 |
| PUT | /recipe/review/{reviewId} | Update a given top-level review. |
| GET | /recipe/review/{reviewId}/replies | Get a paged list of replies for a given review. |
| POST | /recipe/review/{reviewId}/replies | 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. |
| POST | /recipe/scan | POST an image as a new RecipeScan request 1) Fetch the filename -- DONE 2) Copy it to the pics/scan folder - ENSURE NO NAMIN |
| GET | /recipe/steps/{id} | Return full Recipe detail with steps. Returns 403 if the recipe is owned by someone else. |
| GET | /recipe/{id} | Return full Recipe detail. Returns 403 if the recipe is owned by someone else. |
| DELETE | /recipe/{id} | Delete a Recipe (you must be authenticated as an owner of the recipe) |
| GET | /recipe/{id}/zap | Zaps the recipe. |
| POST | /recipe/{recipeId}/feedback | Feedback on a Recipe -- for internal BigOven editors |
| POST | /recipe/{recipeId}/image | POST: /recipe/{recipeId}/image?lat=42&lng=21&caption=this%20is%20my%20caption Note that caption, lng and lat are all option |
| GET | /recipe/{recipeId}/images | Get all the images for a recipe. DEPRECATED. Please use /recipe/{recipeId}/photos. |
| POST | /recipe/{recipeId}/note | HTTP POST a new note into the system. |
| GET | /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. |
| PUT | /recipe/{recipeId}/note/{noteId} | HTTP PUT (update) a Recipe note (RecipeNote). |
| DELETE | /recipe/{recipeId}/note/{noteId} | Delete a review do a DELETE Http request of /note/{ID} |
| GET | /recipe/{recipeId}/notes | recipe/100/notes |
| GET | /recipe/{recipeId}/photos | Get all the photos for a recipe |
| GET | /recipe/{recipeId}/related | Get recipes related to the given recipeId |
| GET | /recipe/{recipeId}/review | Get *my* review for the recipe {recipeId}, where "me" is determined by standard authentication headers |
| POST | /recipe/{recipeId}/review | Add a new review. Only one review can be provided per {userId, recipeId} pair. Otherwise your review will be updated. |
| GET | /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 |
| PUT | /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 primar |
| DELETE | /recipe/{recipeId}/review/{reviewId} | DEPRECATED! - Deletes a review by recipeId and reviewId. Please use recipe/review/{reviewId} instead. |
| GET | /recipe/{recipeId}/reviews | Get paged list of reviews for a recipe. Each review will have at most one FeaturedReply, as well as a ReplyCount. |
| GET | /recipe/{recipeId}/scans | Gets a list of RecipeScan images for the recipe. There will be at most 3 per recipe. |
| GET | /recipes | 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 |
| GET | /recipes/random | Get a random, home-page-quality Recipe. |
| GET | /recipes/raves | Get the recipe/comment tuples for those recipes with 4 or 5 star ratings |
| GET | /recipes/recentviews | Get a list of recipes that the authenticated user has most recently viewed |
| GET | /recipes/top25random | 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 |
| GET | /recipes/{id} | Same as GET recipe but also includes the recipe videos (if any) |
Questions
Does the 1,000,000+ Recipe and Grocery List API (v2) API need an API key?
Yes. The 1,000,000+ Recipe and Grocery List API (v2) API uses API key authentication; the documentation explains how to get credentials.
Does the 1,000,000+ Recipe and Grocery List API (v2) API support HTTPS?
The 1,000,000+ Recipe and Grocery List API (v2) API is listed as HTTP only, so avoid sending secrets to it.
How many endpoints does the 1,000,000+ Recipe and Grocery List API (v2) API have?
Its OpenAPI description lists 66 endpoints in version partner. All of them are shown on this page.
What are alternatives to the 1,000,000+ Recipe and Grocery List API (v2) API?
Other Food & Drink APIs include Open Food Facts, Spoonacular, Chomp, Edamam nutrition, CalorieNinjas.
Similar food & drink APIs
Compare alternatives →Open Food Facts
Food & DrinkFood Products Database
Spoonacular
Food & DrinkRecipes, Food Products, and Meal Planning
Chomp
Food & DrinkData about various grocery products and foods
Edamam nutrition
Food & DrinkAPI developer portal for Nutrition Analysis, Food Database Lookup, Recipe Search API and others. Choose the API license you need.
CalorieNinjas
Food & DrinkNutrition and calorie data for foods and recipes
Jelly Belly Wiki
Food & DrinkData about Jelly Belly beans- flavores, facts, history and more endpoints
Listed from APIs.guru (CC0).