Discover/Serious Eats API
live

Serious Eats APIseriouseats.com

Search and retrieve full recipe data from Serious Eats. Get ingredients, cook times, ratings, reviews, and instructions via 2 REST endpoints.

Endpoint health
verified 4d ago
search
get_recipe
2/2 passing latest checkself-healing
Endpoints
2
Updated
26d ago

What is the Serious Eats 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.

Try it
Maximum number of search results to return.
Search keyword or phrase (e.g. 'chicken', 'chocolate cake').
api.parse.bot/scraper/a37f835d-181b-41e9-8ddc-9c9c7ced68c9/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/a37f835d-181b-41e9-8ddc-9c9c7ced68c9/search?limit=5&query=chocolate+chip+cookies' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace seriouseats-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Serious Eats Recipe API — search recipes, drill into details."""
from parse_apis.serious_eats_recipe_api import SeriousEats, RecipeNotFound

client = SeriousEats()

# Search for recipes — limit= caps total items fetched.
for summary in client.recipesummaries.search(query="pasta carbonara", limit=5):
    print(summary.title, summary.url)

# Drill into the first result to get full recipe details.
hit = client.recipesummaries.search(query="chocolate chip cookies", limit=1).first()
if hit:
    recipe = hit.details()
    print(recipe.title, recipe.prep_time, recipe.cook_time)
    print("Ingredients:", len(recipe.ingredients))
    for step in recipe.instructions[:2]:
        print(" -", step[:80])
    if recipe.rating:
        print("Rating:", recipe.rating.score, "from", recipe.rating.count, "reviews")
    for review in recipe.reviews[:2]:
        print("  Review by", review.author, "—", review.text[:60])

# Typed error handling: catch RecipeNotFound for an invalid URL.
try:
    client.recipes.get(url="https://www.seriouseats.com/nonexistent-recipe-page-12345")
except RecipeNotFound as exc:
    print(f"Recipe not found: {exc}")

print("exercised: recipesummaries.search / details / recipes.get / RecipeNotFound")
All endpoints · 2 totalmissing one? ·

Full-text search over Serious Eats recipes by keyword. Returns matching recipe titles, URLs, and thumbnail images. Paginates as a single page up to the requested limit. Multi-word queries are supported.

Input
ParamTypeDescription
limitintegerMaximum number of search results to return.
queryrequiredstringSearch keyword or phrase (e.g. 'chicken', 'chocolate cake').
Response
{
  "type": "object",
  "fields": {
    "count": "integer — number of results returned",
    "query": "string — the search query echoed back",
    "results": "array of recipe summary objects with keys: title (string), url (string), image (string URL)"
  },
  "sample": {
    "data": {
      "count": 5,
      "query": "chicken",
      "results": [
        {
          "url": "https://www.seriouseats.com/chicken-dinners-polynesian-chicken",
          "image": "https://www.seriouseats.com/thmb/7GVOhFne4thXzPi5ECll-34pfJ8=/282x188/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/__opt__aboutcom__coeus__resources__content_migration__serious_eats__seriouseats.com__images__2012__09__20120921-223424-polynesian-chicken-edit-f0967e4cb8fb4f3a86b69cb0a8f6f5f4.jpg",
          "title": "Chicken Dinners: Polynesian Chicken"
        },
        {
          "url": "https://www.seriouseats.com/chicken-dinners-mapo-chicken",
          "image": "https://www.seriouseats.com/thmb/7WZZ_MO64pFq73xDqqugFw0jc74=/282x188/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/__opt__aboutcom__coeus__resources__content_migration__serious_eats__seriouseats.com__images__2013__01__20130114-237007-mapo-chicken-primary-d09d55078f364147a9078e67a70cb29d.jpg",
          "title": "Chicken Dinners: Mapo Chicken"
        }
      ]
    },
    "status": "success"
  }
}

About the Serious Eats API

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.

Reliability & maintenanceVerified

The Serious Eats API is a managed, monitored endpoint for seriouseats.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when seriouseats.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official seriouseats.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a recipe search interface that surfaces Serious Eats results by ingredient or dish name using the query param
  • Aggregate cook and prep times from cook_time and prep_time fields to filter recipes by total time required
  • Populate a recipe card UI with title, main_image, yield, and description from get_recipe response fields
  • Analyze user sentiment by processing the reviews array, including per-reviewer rating and text
  • Track average recipe ratings using the score and count fields in the rating object 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
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Serious Eats have an official developer API?+
No. Serious Eats does not offer a public developer API or documented data access program. This Parse API is the structured way to retrieve recipe data from the site programmatically.
What does the `get_recipe` endpoint return for recipe timing fields?+
It returns 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?+
The 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?+
The 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?+
The endpoint supports a 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.
Page content last updated . Spec covers 2 endpoints from seriouseats.com.
Related APIs in Food DiningSee all →
epicurious.com API
Search Epicurious recipes by ingredient or cuisine, view detailed recipe information including ingredients and instructions, and read user reviews to find the best dishes to cook. Get everything you need to discover and prepare new meals from one of the web's most trusted recipe sources.
tasty.co API
Search and discover Tasty.co recipes by ingredients or cuisine, then access detailed cooking instructions, ingredient lists, and video guides for each dish. Browse popular recipes and get pro cooking tips to perfect your meals.
allrecipes.com API
Search and browse millions of recipes from Allrecipes while accessing detailed information like ingredients, step-by-step instructions, nutritional facts, and user reviews. Find the perfect dish by searching specific recipes or exploring curated categories.
akispetretzikis.com API
Search and discover thousands of recipes from Akis Petretzikis' collection, then view detailed cooking instructions, ingredients, and nutritional information for each dish. Browse recipes by category to find exactly what you're looking for, whether you need a quick weeknight dinner or an elaborate dessert.
bbcgoodfood.com API
Search thousands of recipes with full ingredient lists, cooking directions, and nutritional information. Browse recipes by topic and category, and access user reviews and ratings for each dish.
blueapron.com API
Search and browse Blue Apron recipes, menus, and cookbooks to discover meal ideas and get detailed recipe information. Access the complete recipe catalog through sitemaps and detailed recipe listings with ingredients and instructions.
liquor.com API
Find and browse thousands of cocktail recipes with ratings and user reviews, search drinks by ingredient or category, and read curated articles about spirits and mixology. Get detailed recipe instructions, comments from other users, and expert content all in one place.
matprat.no API
Search and discover recipes from Matprat's collection, view detailed recipe information, get weekly meal plan suggestions, and find what's currently popular—all with helpful autocomplete to guide your searches. Plan your meals effortlessly by browsing recipes and organizing them into weekly menus.