List recipes
Page through the recipe database, newest first, filtered by cuisine, course, category, diet, ingredient, language or total time.
/recipesAPI keyReturns recipes newest first. Every filter is optional and they combine, so `?cuisine=italian&diet=vegetarian&maxTotalMinutes=30` is a valid request. Values for `course`, `cuisine` and `diet` come from the closed vocabularies; `category` and `ingredient` take a slug. Equipment matching uses the structured equipment field; recipes with unknown equipment do not match.
Request
curl 'https://api.tinyplates.dev/recipes?limit=3' \
-H 'Authorization: Bearer rd_your_api_key'Sign in to run this request with your own key. Free, 500 requests a day.
Parameters
categoryslugA normalized category slug, such as "pasta" or "soup". Categories come from an open set — read them off the `categories` field of a recipe.
courseslugA course from the closed list.
10 allowed values
appetizerbreakfastbrunchdessertdinnerdrinklunchmain-courseside-dishsnackcuisineslugA cuisine from the closed list.
55 allowed values
africanamericanargentinianasianaustralianaustrianbelgianbrazilianbritishcajuncaribbeanchinesecubandanishdutcheastern-europeanegyptianethiopianfilipinofinnishfrenchgermangreekhungarianindianindonesianiranianirishisraeliitalianjamaicanjapanesekoreanlatin-americanlebanesemalaysianmediterraneanmexicanmiddle-easternmoroccannorwegianpakistaniperuvianpolishportugueserussianscandinaviansouthern-usspanishswedishswisstex-mexthaiturkishvietnamesedietslugOnly return recipes known to suit this diet. A recipe with an unknown flag is excluded rather than guessed at.
5 allowed values
dairy-freegluten-freepescatarianveganvegetarianingredientslugA canonical ingredient id, such as "chicken-thigh". GET /ingredients lists them.
maxCookMinutesinteger1–10080Maximum cooking time in minutes, inclusive (1–10080). Uses cook time only; unknown cook time is excluded. Combine with maxTotalMinutes or time to bound the full process as well.
maxCaloriesinteger1–10000Maximum kilocalories per serving, inclusive (1–10000). Reads the nutrition the recipe was published with; a recipe without per-serving calories is excluded rather than guessed at.
minProteininteger1–1000Minimum grams of protein per serving, inclusive (1–1000). Reads the nutrition the recipe was published with; a recipe without per-serving protein is excluded rather than guessed at.
maxSodiuminteger1–100000Maximum milligrams of sodium per serving, inclusive (1–100000). Sodium published in grams is converted; a recipe without per-serving sodium is excluded.
minFiberinteger1–200Minimum grams of fiber per serving, inclusive (1–200). A recipe without per-serving fiber is excluded.
nutritionstringNutrition presets, comma-separated: high-fiber is at least 5 g of fiber, high-protein at least 20 g of protein, low-calorie at most 400 kcal, and low-sodium at most 140 mg of sodium — all per serving. A preset and an explicit amount for the same nutrient both apply, and the tighter of the two wins. Unknown presets return 400 with the accepted values.
timestringTotal-time preset: under-15 is strictly below 15 minutes, under-30 is strictly below 30 minutes, and weekend is at least 60 minutes. Unknown total time is excluded. Combines with maxTotalMinutes; weekend plus a maximum below 60 returns 400. Unknown presets return 400 with accepted values.
equipmentstringRequire every listed equipment name (1–20 comma-separated names, each at most 80 characters). Case and spaces normalize to slugs; duplicates are ignored. Examples: air fryer, slow cooker, Dutch oven, grill. Additional equipment is allowed. Unknown slugs return no matches; malformed or empty lists return 400. Filtering happens before pagination.
ingredientsstringRequire every ingredient in a comma-separated list (1–20 names or IDs, at most 80 characters each). Case and spaces normalize to slugs. Matches exact canonical IDs or whole canonical names; no substring, plural, or parent-ingredient inference. GET /ingredients provides IDs. Names without IDs can still match. Duplicates are ignored, unknown names yield no matches, and malformed lists return 400. Combines with ingredient and all other filters before pagination.
languagestringOnly return recipes written in this language, as a two-letter ISO 639-1 code.
excludeIngredientsstringExclude any listed ingredient (1–20 comma-separated names or IDs, at most 80 characters each). Case and spaces normalize; matching uses whole canonical names or IDs, including optional ingredients. No substring, synonym, plural or parent-ingredient inference. Unknown names exclude nothing. Use ingredient=chicken-thigh&excludeIngredients=mushroom to combine inclusion and exclusion. Results reflect recorded ingredients, not an allergen guarantee. Empty or malformed lists return 400.
limitintegerdefaults to201–100How many recipes to return.
maxTotalMinutesintegerat least 1Only return recipes whose total time is at most this many minutes. Recipes with no total time are excluded.
offsetintegerdefaults to0at least 0How many recipes to skip. Use it with `limit` to page.
Response
Offset pagination.
The matching recipes.
Example
{
"pagination": {
"limit": 2,
"offset": 0,
"total": 1930
},
"recipes": [
{
"id": "6a9820e58f8122ec891b68a3",
"author": {
"name": "Lindsay Ostrom",
"url": "https://pinchofyum.com/about"
},
"description": "This peanut butter dark chocolate hummus is a sweet alternative to traditional hummus. Perfect served on graham crackers as an afternoon snack!",
"instructions": [
{
"step": 1,
"text": "Blend everything through milk in a food processor."
},
{
"step": 2,
"text": "Add flour by the spoonful and blend until desired consistency is reached."
},
{
"step": 3,
"text": "Stir in dark chocolate."
},
{
"step": 4,
"text": "Chill before serving."
}
],
"language": "en",
"media": [
{
"id": "hero",
"role": "hero",
"type": "image",
"url": "https://pinchofyum.com/tachyon/2011/05/Peanut-Butter-Dark-Chocolate-Hummus.jpeg?fit=225%2C225",
"variants": [
{
"url": "https://pinchofyum.com/tachyon/2011/05/Peanut-Butter-Dark-Chocolate-Hummus.jpeg?fit=195%2C195"
},
{
"url": "https://pinchofyum.com/tachyon/2011/05/Peanut-Butter-Dark-Chocolate-Hummus.jpeg?fit=180%2C180"
},
{
"url": "https://pinchofyum.com/tachyon/2011/05/Peanut-Butter-Dark-Chocolate-Hummus.jpeg"
}
]
}
],
"nutrition": {
"basis": {
"type": "serving"
},
"calories": {
"unit": "kcal",
"value": 201
},
"carbohydrates": {
"unit": "g",
"value": 29.4
},
"cholesterol": {
"unit": "mg",
"value": 0.8
},
"fat": {
"unit": "g",
"value": 7.4
},
"fiber": {
"unit": "g",
"value": 3.3
},
"micronutrients": {
"trans-fat": {
"unit": "g",
"value": 0
}
},
"protein": {
"unit": "g",
"value": 5.6
},
"saturatedFat": {
"unit": "g",
"value": 2.5
},
"sodium": {
"unit": "mg",
"value": 76
},
"source": "provided",
"sugar": {
"unit": "g",
"value": 16.9
}
},
"rating": {
"count": 1,
"reviewCount": 1,
"value": 5
},
"servings": {
"max": 8,
"original": "6-8",
"quantity": 6
},
"times": {
"cook": {
"seconds": 600
},
"prep": {
"seconds": 300
},
"total": {
"seconds": 900
}
},
"title": "Peanut Butter Dark Chocolate Hummus",
"categories": [],
"courses": [
"dessert"
],
"createdAt": "2026-09-02T13:13:09.089Z",
"cuisines": [
"american"
],
"ingredients": [
{
"display": "1 can white beans or chickpeas, rinsed",
"name": "white beans or chickpeas",
"optional": false,
"preparation": "rinsed",
"quantity": {
"unit": "can",
"value": 1
}
},
{
"display": "¼ cup peanut butter",
"name": "peanut butter",
"optional": false,
"quantity": {
"unit": "cup",
"value": 0.25
}
},
{
"display": "2 tbsp caramel sauce",
"name": "caramel sauce",
"optional": false,
"quantity": {
"unit": "tbsp",
"value": 2
}
},
{
"display": "2 tbsp maple syrup",
"name": "maple syrup",
"optional": false,
"quantity": {
"unit": "tbsp",
"value": 2
}
},
{
"display": "¼ cup brown sugar",
"name": "brown sugar",
"optional": false,
"quantity": {
"unit": "cup",
"value": 0.25
}
},
{
"display": "pinch of cinnamon",
"name": "pinch of cinnamon",
"optional": false
},
{
"display": "¼ cup milk",
"name": "milk",
"optional": false,
"quantity": {
"unit": "cup",
"value": 0.25
}
},
{
"display": "¼ cup flour",
"name": "flour",
"optional": false,
"quantity": {
"unit": "cup",
"value": 0.25
}
},
{
"display": "chopped dark chocolate",
"name": "chopped dark chocolate",
"optional": false
}
],
"tags": [
"chocolate hummus",
"peanut butter hummus",
"peanut butter chocolate",
"hummus recipe",
"dessert hummus"
],
"text": {
"ingredients": [
"1 can white beans or chickpeas, rinsed",
"¼ cup peanut butter",
"2 tbsp caramel sauce",
"2 tbsp maple syrup",
"¼ cup brown sugar",
"pinch of cinnamon",
"¼ cup milk",
"¼ cup flour",
"chopped dark chocolate"
],
"instructions": [
"Blend everything through milk in a food processor.",
"Add flour by the spoonful and blend until desired consistency is reached.",
"Stir in dark chocolate.",
"Chill before serving."
]
},
"updatedAt": "2026-09-06T01:11:59.223Z",
"url": "https://pinchofyum.com/pb-dark-chocolate-hummus"
},
{
"id": "6a9820e58f8122ec891b68a4",
"description": "Slow-roasted cherry tomatoes are intensely sweet and tangy. Add them to salads, pastas, pizza and more.",
"instructions": [
{
"step": 1,
"text": "Preheat the oven to 275°F (135°C) and set an oven rack in the middle position. Line a baking sheet with wide heavy-duty aluminum foil."
},
{
"step": 2,
"text": "Directly on the lined baking sheet, using a rubber spatula, toss the tomatoes with the olive oil, vinegar, sugar, salt, pepper, and garlic. Roast for 2 hours, until the tomatoes are soft and beginning to burst. Serve hot or at room temperature."
}
],
"language": "en",
"media": [
{
"id": "hero",
"role": "hero",
"type": "image",
"url": "https://www.onceuponachef.com/images/2022/07/slow-roasted-cherry-tomatoes.jpg",
"variants": [
{
"url": "https://www.onceuponachef.com/images/2022/07/slow-roasted-cherry-tomatoes-500x500.jpg"
},
{
"url": "https://www.onceuponachef.com/images/2022/07/slow-roasted-cherry-tomatoes-500x375.jpg"
},
{
"url": "https://www.onceuponachef.com/images/2022/07/slow-roasted-cherry-tomatoes-480x270.jpg"
}
]
}
],
"nutrition": {
"basis": {
"type": "serving"
},
"calories": {
"unit": "kcal",
"value": 117
},
"carbohydrates": {
"unit": "g",
"value": 8
},
"fat": {
"unit": "g",
"value": 9
},
"fiber": {
"unit": "g",
"value": 2
},
"protein": {
"unit": "g",
"value": 1
},
"saturatedFat": {
"unit": "g",
"value": 1
},
"sodium": {
"unit": "mg",
"value": 388
},
"source": "provided",
"sugar": {
"unit": "g",
"value": 6
}
},
"rating": {
"count": 25,
"reviewCount": 8,
"value": 4.8
},
"servings": {
"original": "6",
"quantity": 6
},
"times": {
"cook": {
"seconds": 7200
},
"prep": {
"seconds": 600
},
"total": {
"seconds": 7800
}
},
"title": "Roasted Cherry Tomatoes",
"categories": [
"vegetables-and-sides"
],
"courses": [
"appetizer",
"side-dish"
],
"createdAt": "2026-09-02T13:13:09.118Z",
"cuisines": [
"italian"
],
"ingredients": [
{
"display": "2 lb cherry tomatoes (3 pints)",
"name": "cherry tomatoes",
"note": "3 pints",
"optional": false,
"quantity": {
"unit": "lb",
"value": 2
}
},
{
"display": "¼ cup extra-virgin olive oil",
"name": "extra-virgin olive oil",
"optional": false,
"quantity": {
"unit": "cup",
"value": 0.25
}
},
{
"display": "1½ tbsp balsamic vinegar",
"name": "balsamic vinegar",
"optional": false,
"quantity": {
"unit": "tbsp",
"value": 1.5
}
},
{
"display": "2 tsp sugar",
"name": "sugar",
"optional": false,
"quantity": {
"unit": "tsp",
"value": 2
}
},
{
"display": "1 tsp salt",
"name": "salt",
"optional": false,
"quantity": {
"unit": "tsp",
"value": 1
}
},
{
"display": "½ tsp freshly ground black pepper",
"name": "freshly ground black pepper",
"optional": false,
"quantity": {
"unit": "tsp",
"value": 0.5
}
},
{
"display": "2 clove garlic (minced)",
"name": "garlic",
"note": "minced",
"optional": false,
"quantity": {
"unit": "clove",
"value": 2
}
}
],
"tags": [
"roasted cherry tomatoes"
],
"text": {
"ingredients": [
"2 lb cherry tomatoes (3 pints)",
"¼ cup extra-virgin olive oil",
"1½ tbsp balsamic vinegar",
"2 tsp sugar",
"1 tsp salt",
"½ tsp freshly ground black pepper",
"2 clove garlic (minced)"
],
"instructions": [
"Preheat the oven to 275°F (135°C) and set an oven rack in the middle position. Line a baking sheet with wide heavy-duty aluminum foil.",
"Directly on the lined baking sheet, using a rubber spatula, toss the tomatoes with the olive oil, vinegar, sugar, salt, pepper, and garlic. Roast for 2 hours, until the tomatoes are soft and beginning to burst. Serve hot or at room temperature."
]
},
"updatedAt": "2026-09-06T01:11:59.224Z",
"url": "https://www.onceuponachef.com/recipes/slow-roasted-cherry-tomatoes.html"
}
]
}Errors
- 400
Unknown cuisine "italien". The allowed values are listed by GET /vocabularies.
A parameter was not a value the API accepts. The message names the parameter, the value it was given and where the allowed values are listed.
- 401
An API key is required. Pass it as an Authorization: Bearer header.
No key was sent, and this deployment requires one. Keys are optional today and will become required.
- 401
Invalid API key.
The key does not exist. Check for a truncated copy, or create a new one on your dashboard.
- 401
This API key has been disabled.
The key was revoked. Create a new one on your dashboard.
- 401
This API key has expired.
The key was created with an expiry that has passed. Create a new one.
- 429
Rate limit exceeded for this API key. Try again later.
The account has used its 500 requests for the day. The allowance is per account, so another key will not help. It resets at midnight UTC.
- 500
Something went wrong. Please try again.
The API could not answer. The request was not your fault; retry it, and report it if it keeps happening.