Recipe Finder
Recipe Finder
1 coins/call
We use cookies.This website uses essential cookies to operate core features. With your consent, we also use analytics cookies to understand traffic and improve the service. For more details, see our .
Recipe Finder
1 coins/call
This API provides a structured recipe data query service. Developers can search by specifying a dish category (supporting first to third-level categories), dish name, or unique ID. The API returns a complete data structure including dish name, category hierarchy, thumbnail, list of required ingredients, and step-by-step cooking instructions, suitable for business scenarios requiring detailed recipe information.
type (required): Recipe category, it is recommended to use first or second-level category tags.name (optional): Fuzzy search for dish names.id (optional): Specify a recipe ID to get single item details.pageNo/pageSize: Control paginated data, default 20 items per page.smallImag) and large image (largeImg) links.yl array contains ingredient names and units; steps array contains ordered operational step text.totalPage to avoid fetching a large amount of data at once.Includes ready-to-use Shell, Python, Go, Java, and PHP examples for direct integration.
{
"type": "菜谱的分类(查询时请使用分类中的一级或二级分类)",
"pageNo": "请求页数 默认第1页",
"pageSize": "每页返回的最大结果集,默认20",
"id": "菜谱标识 菜谱列表中id,可以用id查询详细",
"name": "菜品名称"
}{
"code": 200,
"msg": "成功",
"taskNo": "025008804237815320489132",
"data": {
"totalPage": 61,
"pageNo": 1,
"pageSize": 20,
"totalCount": 1214,
"items": [
{
"type": "肉类 兔肉 兔肉",
"typeV1": "肉类",
"typeV2": "兔肉",
"typeV3": "兔肉",
"name": "泰顺腊兔肉",
"desc": "",
"tip": "",
"id": "5c4c75b3e9b6cc139e5dd87a",
"createTime": "2019-01-26 22:58:59.575",
"smallImag": "",
"largeImg": "",
"steps": [
{
"orderNum": 1,
"content": "腊兔肉切好,锅里放多油,油热后放入腊兔肉爆炒一会儿,然后放入姜蒜葱白胡萝卜爆香!炒之前用料酒酱油盐鸡精白糖调好的汁倒入锅中,等入味了就可以放葱香菜起锅了!"
}
],
"yl": [
{
"ylUnit": "胡萝卜",
"ylName": "泰顺腊兔子"
},
{
"ylUnit": "姜",
"ylName": "葱"
},
{
"ylUnit": "香菜",
"ylName": "蒜"
}
]
}
]
}
}The fields below are derived from example JSON for integration reference only.
| Path | Type | Sample |
|---|---|---|
| type | string | object |
| properties | object | {...} |
| properties.type | object | {...} |
| properties.type.type | string | string |
| properties.type.description | string | 菜谱的分类(查询时请使用分类中的一级或二级分类) |
| properties.pageNo | object | {...} |
| properties.pageNo.type | string |
The fields below are derived from example JSON for integration reference only.
| Path | Type | Sample |
|---|---|---|
| type | string | object |
| properties | object | {...} |
| properties.code | object | {...} |
| properties.code.type | string | number |
| properties.code.example | number | 200 |
| properties.msg | object | {...} |
| properties.msg.type | string | string |
curl --request POST \
--url 'https://openapi.toolkk.com/v1/cookbook-list' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "type": "菜谱的分类(查询时请使用分类中的一级或二级分类)",\n "pageNo": "请求页数 默认第1页",\n "pageSize": "每页返回的最大结果集,默认20",\n "id": "菜谱标识 菜谱列表中id,可以用id查询详细",\n "name": "菜品名称"\n}'import os
import requests
url = "https://openapi.toolkk.com/v1/cookbook-list"
payload = {
"type": "菜谱的分类(查询时请使用分类中的一级或二级分类)",
"pageNo": "请求页数 默认第1页",
"pageSize": "每页返回的最大结果集,默认20",
"id": "菜谱标识 菜谱列表中id,可以用id查询详细",
"name": "菜品名称"
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.request("POST", url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/cookbook-list"
payload := []byte("{\n \"type\": \"菜谱的分类(查询时请使用分类中的一级或二级分类)\",\n \"pageNo\": \"请求页数 默认第1页\",\n \"pageSize\": \"每页返回的最大结果集,默认20\",\n \"id\": \"菜谱标识 菜谱列表中id,可以用id查询详细\",\n \"name\": \"菜品名称\"\n}")
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ToolkkExample {
public static void main(String[] args) throws Exception {
String payload = "{\n \"type\": \"菜谱的分类(查询时请使用分类中的一级或二级分类)\",\n \"pageNo\": \"请求页数 默认第1页\",\n \"pageSize\": \"每页返回的最大结果集,默认20\",\n \"id\": \"菜谱标识 菜谱列表中id,可以用id查询详细\",\n \"name\": \"菜品名称\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/cookbook-list"))
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.header("Content-Type", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}<?php
$endpoint = 'https://openapi.toolkk.com/v1/cookbook-list';
$payload = "{\n \"type\": \"菜谱的分类(查询时请使用分类中的一级或二级分类)\",\n \"pageNo\": \"请求页数 默认第1页\",\n \"pageSize\": \"每页返回的最大结果集,默认20\",\n \"id\": \"菜谱标识 菜谱列表中id,可以用id查询详细\",\n \"name\": \"菜品名称\"\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
echo $response;| string |
| properties.pageNo.description | string | 请求页数 默认第1页 |
| properties.pageSize | object | {...} |
| properties.pageSize.type | string | string |
| properties.pageSize.description | string | 每页返回的最大结果集,默认20 |
| properties.id | object | {...} |
| properties.id.type | string | string |
| properties.id.description | string | 菜谱标识 菜谱列表中id,可以用id查询详细 |
| properties.name | object | {...} |
| properties.name.type | string | string |
| properties.name.description | string | 菜品名称 |
| required | array | "type" |
| required[] | string | type |
| properties.msg.example | string | 成功 |
| properties.taskNo | object | {...} |
| properties.taskNo.type | string | string |
| properties.taskNo.example | string | 025008804237815320489132 |
| properties.data | object | {...} |
| properties.data.type | string | object |