# Serious Eats API

> Serious Eats returns recipe search results and complete recipe details as a workflow and API.

Serious Eats searches recipes and cooking guides for a dish or technique, using a required search query. Get recipe returns ingredients, directions, timing, and available ratings and nutrition from a recipe name or page link.

- Page: https://fous.com/tools/serious-eats
- Handle: `@serious-eats`
- Category: [Food](https://fous.com/tools/category/food)
- Source website: https://seriouseats.com
- Last verified: Sep 29, 2026

## Methods

### Get recipe

Operation `get_recipe`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get a complete Serious Eats recipe by name or page link, including ingredients, directions, timing and available ratings and nutrition. Some recipes do not show active time, Why It Works points, ratings, or nutrition.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `recipe` | string | yes | `"https://www.seriouseats.com/detroit-style-pizza-recipe"` | Recipe name or Serious Eats recipe page link, for example Kenji's Foolproof Pan Pizza or https://www.seriouseats.com/foolproof-pan-pizza-recipe. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "recipe"
  ],
  "properties": {
    "recipe": {
      "type": "string",
      "description": "Recipe name or Serious Eats recipe page link, for example Kenji's Foolproof Pan Pizza or https://www.seriouseats.com/foolproof-pan-pizza-recipe.",
      "examples": [
        "https://www.seriouseats.com/detroit-style-pizza-recipe",
        "Kenji's Foolproof Pan Pizza"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "recipe": "https://www.seriouseats.com/detroit-style-pizza-recipe"
    },
    {
      "recipe": "Kenji's Foolproof Pan Pizza"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `title` | string | `"Detroit-Style Pan Pizza"` |  |
| `author` | string or null | `"J. Kenji López-Alt"` |  |
| `servings` | string or null | `"4 servings"` |  |
| `cook_time` | string or null | `"1 hr"` |  |
| `prep_time` | string or null | `"40 mins"` |  |
| `directions` | array |  |  |
| `directions[].step` | integer | `1` |  |
| `directions[].instruction` | string | `"To Make the Dough in a Food Processor: Combine flour, yeast, and salt in the bowl of a food processor and pulse to comb` |  |
| `photo_link` | string or null | `"https://www.seriouseats.com/thmb/c9291mRIx6n1mtaxIRuypUe4mhs=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()` |  |
| `total_time` | string or null | `"4 hrs 10 mins"` |  |
| `active_time` | string or null |  |  |
| `ingredients` | array |  |  |
| `recipe_link` | string | `"https://www.seriouseats.com/detroit-style-pizza-recipe"` |  |
| `star_rating` | number or null | `4.7` |  |
| `introduction` | string or null | `"What distinguishes this magnificent Michigan specialty from other pan and deep-dish pizzas?"` |  |
| `why_it_works` | array |  |  |
| `number_of_ratings` | integer or null | `60` |  |
| `nutrition_per_serving` | object or null |  |  |
| `nutrition_per_serving.fat_g` | number or null | `41` |  |
| `nutrition_per_serving.calories` | number or null | `795` |  |
| `nutrition_per_serving.protein_g` | number or null | `33` |  |
| `nutrition_per_serving.carbohydrates_g` | number or null | `77` |  |

**Example input**

```json
{
  "recipe": "https://www.seriouseats.com/detroit-style-pizza-recipe"
}
```

**Example output**

```json
{
  "title": "Detroit-Style Pan Pizza",
  "author": "J. Kenji López-Alt",
  "servings": "4 servings",
  "cook_time": "1 hr",
  "prep_time": "40 mins",
  "directions": [
    {
      "step": 1,
      "instruction": "To Make the Dough in a Stand Mixer: Combine flour, yeast, and salt in the bowl of a stand mixer fitted with a dough hook attachment. Stir to combine, then add water. Mix on low speed until dough comes…"
    },
    {
      "step": 2,
      "instruction": "To Make the Dough in a Food Processor: Combine flour, yeast, and salt in the bowl of a food processor and pulse to combine. Add water, then turn on processor and process until dough forms a ball that …"
    }
  ],
  "photo_link": "https://www.seriouseats.com/thmb/c9291mRIx6n1mtaxIRuypUe4mhs=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/__opt__aboutcom__coeus__resources__content_migration__serious_eats__seriouseats.…",
  "total_time": "4 hrs 10 mins",
  "active_time": null,
  "ingredients": [
    "300 g bread flour (10.5 ounces; about 2 generous cups)",
    "5 g instant yeast (0.15 ounce; about 1 teaspoon), such as SAF Instant Yeast"
  ],
  "recipe_link": "https://www.seriouseats.com/detroit-style-pizza-recipe",
  "star_rating": 4.7,
  "introduction": "What distinguishes this magnificent Michigan specialty from other pan and deep-dish pizzas?",
  "why_it_works": [
    "Using a high-hydration dough made with bread flour gives you pizza with a tender-yet-chewy, extra-crisp crust.",
    "Using a specialized Detroit-style pan aids in achieving superior crust development, thanks to its dark surfaces that promote even browning and heat conduction."
  ],
  "number_of_ratings": 60,
  "nutrition_per_serving": {
    "fat_g": 41,
    "calories": 795,
    "protein_g": 33,
    "carbohydrates_g": 77
  }
}
```

### Search recipes

Operation `search_recipes`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find Serious Eats recipes and cooking guides for a dish or technique, in site search order. Results can also include other related articles; times appear only when the site shows them.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | yes | `"reverse sear steak"` | Dish or cooking technique to search for, for example pizza dough. |
| `max_results` | integer | no | `3` | Most results to return, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Dish or cooking technique to search for, for example pizza dough.",
      "examples": [
        "reverse sear steak",
        "pizza dough",
        "qzxnotrealzz9102"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Most results to return, for example 20.",
      "x-fous-developer": true,
      "examples": [
        3,
        20,
        5
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "reverse sear steak",
      "max_results": 3
    },
    {
      "query": "pizza dough",
      "max_results": 20
    },
    {
      "query": "qzxnotrealzz9102",
      "max_results": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `results` | array |  | Matches in the same order as the search results. |
| `results[].title` | string | `"Reverse-Seared Steak"` | Title of the recipe or article. |
| `results[].author` | string or null | `"J. Kenji López-Alt"` | Author when shown. |
| `results[].summary` | string or null | `"The reverse sear is one of the easiest and arguably best methods of cooking a steak. Start it in a low oven, then quick` | Short description from the page. |
| `results[].page_link` | string | `"https://www.seriouseats.com/reverse-seared-steak-recipe"` | Link to the recipe or article. |
| `results[].photo_link` | string or null | `"https://www.seriouseats.com/thmb/7a65ohLsB77QayQtc7J9FYCKSDc=/282x188/filters:no_upscale():max_bytes(150000):strip_icc(` | Photo shown in the search result. |
| `results[].total_time` | string or null | `"30 mins"` | Total time shown in the search result. |
| `results[].total_time_minutes` | integer or null | `30` | Total time converted to minutes when available. |

**Example input**

```json
{
  "query": "reverse sear steak",
  "max_results": 3
}
```

**Example output**

```json
{
  "results": [
    {
      "title": "Reverse-Seared Steak",
      "author": "J. Kenji López-Alt",
      "summary": "The reverse sear is one of the easiest and arguably best methods of cooking a steak. Start it in a low oven, then quickly sear it in a hot pan or on the grill for a beautiful crust.",
      "page_link": "https://www.seriouseats.com/reverse-seared-steak-recipe",
      "photo_link": "https://www.seriouseats.com/thmb/7a65ohLsB77QayQtc7J9FYCKSDc=/282x188/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/__opt__aboutcom__coeus__resources__content_migration__serious_eats…",
      "total_time": "30 mins",
      "total_time_minutes": 30
    },
    {
      "title": "10 Steak Recipes for a Restaurant-Quality Dinner That's a Fraction of the Price",
      "author": "Yasmine Maggio and The Serious Eats Team",
      "summary": "You want meat? We've got 10 steak recipes that'll make your mouth water—and save you money by making them at home.",
      "page_link": "https://www.seriouseats.com/steak-recipes-8779593",
      "photo_link": "https://www.seriouseats.com/thmb/kla8honJJmhSGc7mG0hsTCYjn1c=/282x188/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/SEA-grilled-mojo-marinated-skirt-steak-recipe-hero-02-dfd9973f5a1d…",
      "total_time": null,
      "total_time_minutes": null
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@serious-eats",
  "visibility": "public",
  "operation": "get_recipe",
  "version": 1,
  "input": {
    "recipe": "https://www.seriouseats.com/detroit-style-pizza-recipe"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@serious-eats\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_recipe\",\n  \"version\": 1,\n  \"input\": {\n    \"recipe\": \"https://www.seriouseats.com/detroit-style-pizza-recipe\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@serious-eats",
  "visibility": "public",
  "operation": "get_recipe",
  "version": 1,
  "input": {
    "recipe": "https://www.seriouseats.com/detroit-style-pizza-recipe"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/serious-eats`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_recipe`: Get recipe. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_recipes`: Search recipes. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-serious-eats https://api.fous.com/mcp/tools/serious-eats --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Find recipes and cooking guides for a dish or technique.
- Retrieve ingredients and directions for a recipe.
- Compare recipe timing, ratings, and nutrition when available.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Serious Eats tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Serious Eats account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from seriouseats.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What recipes and cooking guides cover a dish or technique?

Search recipes returns matching recipes and related articles in site search order, using a dish or technique as the query.

### What ingredients and directions does a recipe need?

Get recipe returns a recipe’s ingredients and directions when you provide its name or page link.

### How long does a recipe take?

Get recipe returns prep time, cook time, and total time when available.

## Related

- [Allrecipes API](https://fous.com/tools/allrecipes.md): Allrecipes offers recipes and cooking ideas, with searchable results and full recipe details, including ingredients, directions, cooking times, ratings and nutrition.
- [Food Network API](https://fous.com/tools/food-network.md): Food Network offers recipes, cooking shows, and food inspiration, with searchable recipes and ingredient, direction, rating, and cooking-time details when available.
- [BBC Good Food API](https://fous.com/tools/bbc-good-food.md): BBC Good Food returns searchable web recipes, excluding app-only recipes, and full recipe ingredients, steps, and per-serving nutrition when available.
- [Uber Eats API](https://fous.com/tools/uber-eats.md): Uber Eats shows restaurants and delivery options, with menus, prices, ratings, and delivery details; fees may reflect guest promotions and rating counts may be rounded.
- [DoorDash API](https://fous.com/tools/doordash.md): DoorDash lists nearby restaurants and menus, prices, ratings, delivery fees, and estimated times; offers, availability, fees, and times can change.
- [Open Food Facts API](https://fous.com/tools/open-food-facts.md): Open Food Facts provides public packaged-food information, including ingredients, allergens, nutrition, and product classifications; coverage varies, and search results favor popular products.
- [Michelin Guide API](https://fous.com/tools/michelin-guide.md): Restaurant selections, distinctions and reviews from the Michelin Guide.
- [Starbucks API](https://fous.com/tools/starbucks.md): Starbucks provides menu drinks and food with nutrition, ingredients, allergens, and photos, plus nearby cafés ranked by distance with current open status, local hours, and amenities.
- [All Food tools](https://fous.com/tools/category/food)
