seriouseats.com APIseriouseats.com ↗
Search and retrieve full recipe data from Serious Eats. Get ingredients, cook times, ratings, reviews, and instructions via 2 REST endpoints.
curl -X GET 'https://api.parse.bot/scraper/a37f835d-181b-41e9-8ddc-9c9c7ced68c9/search?limit=10&query=chocolate+cake' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for recipes by keyword on Serious Eats. Returns matching recipe titles, URLs, and thumbnail images. Supports single and multi-word queries.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of search results to return. |
| queryrequired | string | Search keyword or phrase (e.g. 'chicken', 'chocolate cake'). |
{
"type": "object",
"fields": {
"count": "integer — number of results returned",
"query": "string — the search query echoed back",
"results": "array of objects with keys: title (string), url (string), image (string URL)"
},
"sample": {
"data": {
"count": 2,
"query": "chocolate cake",
"results": [
{
"url": "https://www.seriouseats.com/german-chocolate-cake-recipe-11916175",
"image": "https://www.seriouseats.com/thmb/gMdXqhf7ctbyyiVzjtKJVQq1VDI=/375x250/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/20260226-SEA-German-Chocolate-Cake-Lorena-Masso-HERO-6c978d0e493c4af590c9a0b17e9cae9f.jpg",
"title": "German Chocolate Cake"
},
{
"url": "https://www.seriouseats.com/molten-chocolate-cake-for-two-dessert-recipe",
"image": "https://www.seriouseats.com/thmb/vUq0Pu-0sEbwA842SdtGKabmz-c=/375x250/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/__opt__aboutcom__coeus__resources__content_migration__serious_eats__seriouseats.com__recipes__images__2015__02__20150206-molten-chocolate-cake-nila-jones-7-f235015a3b4647dabb071984f01044ee.jpg",
"title": "Molten Chocolate Cake Recipe"
}
]
},
"status": "success"
}
}About the seriouseats.com API
The Serious Eats API provides 2 endpoints for searching the site's recipe catalog and retrieving structured recipe details. The search endpoint returns matching titles, URLs, and thumbnail images for any keyword query, while get_recipe returns a full recipe record with 10+ fields including ingredients, preparation steps, cook/prep/total times in ISO 8601 format, ratings, and user reviews.
Search Recipes
The search endpoint accepts a required query string — single keywords like chicken or multi-word phrases like chocolate cake — and an optional limit integer to cap the number of results. The response includes a count of results returned, the query echoed back, and a results array. Each result object carries a title, url, and image (thumbnail URL), making it straightforward to build ingredient-based or topic-based browsing without constructing Serious Eats URLs manually.
Full Recipe Details
The get_recipe endpoint accepts a full Serious Eats recipe URL (e.g. https://www.seriouseats.com/chocolate-chip-cookies-recipe) and returns a structured record. Key fields include title, description, yield (serving size), main_image, and timing fields — prep_time, cook_time, and total_time — all in ISO 8601 duration format. Note that total_time can be either a plain ISO 8601 string or an object with minValue and maxValue keys when the recipe specifies a time range.
Ratings and Reviews
The rating field returns an object with score and count, reflecting the aggregated user rating on the recipe page. The reviews array contains individual review objects with author, text, and an optional rating per reviewer. Both fields may be null or empty for recipes without community feedback. The source_url field is always present and mirrors the input URL, useful for deduplication when retrieving multiple recipes.
- Build a recipe search interface that surfaces Serious Eats results by ingredient or dish name using the
queryparam - Aggregate cook and prep times from
cook_timeandprep_timefields to filter recipes by total time required - Populate a recipe card UI with
title,main_image,yield, anddescriptionfromget_reciperesponse fields - Analyze user sentiment by processing the
reviewsarray, including per-reviewerratingandtext - Track average recipe ratings using the
scoreandcountfields in theratingobject across a set of URLs - Generate meal planning tools that combine search results with full recipe details for structured weekly menus
- Feed a nutrition or cooking dataset with structured recipe metadata including yield and timing fields
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Serious Eats have an official developer API?+
What does the `get_recipe` endpoint return for recipe timing fields?+
prep_time, cook_time, and total_time, all in ISO 8601 duration format (e.g. PT30M for 30 minutes). total_time may also be returned as an object with minValue and maxValue keys when the recipe specifies a variable time range rather than a fixed duration.Does the API return a full list of ingredients and step-by-step instructions?+
get_recipe endpoint returns description and structured metadata. A dedicated ingredients list and numbered instruction steps are not exposed as separate fields in the current response schema. The API covers title, yield, timing, rating, reviews, and images. You can fork it on Parse and revise it to add an ingredients array or instructions field.Does the search endpoint support filtering by cuisine type, dietary restriction, or recipe category?+
search endpoint currently supports keyword queries via the query parameter only; there are no filter parameters for cuisine, dietary tags, or category. You can fork it on Parse and revise to add filtering endpoints that narrow results by those attributes.Can I retrieve multiple pages of search results with the `search` endpoint?+
limit parameter to control how many results are returned, but there is no offset or page parameter for paginating through a larger result set. The current response reflects the top matches up to your specified limit.