API

开放 API

只读接口,聚合饿了么与美团的活动数据。统一 POST、统一 JSON,无需登录。

POST JSON 只读 当前免鉴权

1接口地址

POST https://wm.huizhetao.com/openapi/

请求体支持 application/json、application/x-www-form-urlencoded 和 multipart/form-data 三种格式,字段名一致。 用浏览器直接打开接口地址会返回一段 JSON 提示(GET 不被接受)。

最快的一条命令

curl -X POST 'https://wm.huizhetao.com/openapi/' \
  -H 'Content-Type: application/json' \
  -d '{"action":"list","platform":"meituan","per":5}'

2请求参数

参数类型必填说明
actionstring否 list(默认)返回活动列表;detail 返回单个活动; stats 返回统计与枚举
platformstring否 all(默认)/ eleme / meituan。 action=detail 时必填(两个平台的 ID 是各自发的,会撞号)
idint否 活动 ID。action=detail 时必填,取自列表返回的 id
pageint否 页码,默认 1,最大 200
perint否 每页条数,默认 20,最大 50
kwstring否 关键词,同时匹配标题与优惠描述,最长 30 字
bizstring否 美团业务线:shangou 闪购便利 · waimai 外卖 · yaodian 买药健康 · daodian 到店玩乐 · chuxing 出行住宿 · fuwu 生活服务 · other 综合(枚举以 stats 接口返回的 biz 为准)
typestring否 饿了么活动类型,取值见接口返回的 type 字段
statusint否 0 即将开始 / 1 进行中 / 2 已结束; 留空表示不限(默认包含全部在架活动)
sortstring否 new(默认,最新)/ start 即将开始 / end 即将结束
appkeystring否 站点开启鉴权后必填;也可以放在请求头 X-Api-Key 里

只返回在架活动,已下架/已删除的一律不出现,不需要额外过滤。

3返回结构

所有接口共用同一层外壳:

字段类型说明
codeint0 表示成功,非 0 见「错误码」
msgstring结果描述,失败时是原因
dataobject / null业务数据,失败时为 null

list 的 data

字段类型说明
platformstring本次查询的平台
totalint符合条件的总条数
page / per / pagesint当前页 / 每页条数 / 总页数
countint本次实际返回条数
breakdownobject仅 platform=all 时出现,两个平台各多少条
listarray活动数组

list 元素 · 美团(platform=meituan)

字段类型说明
platformstring固定 meituan
idint活动 ID,拿去调 action=detail
titlestring活动名(已去掉「【美团闪购】-」这类前缀)
title_rawstring原始活动名,含前缀
descrstring优惠描述,可直接当卖点文案
biz / biz_namestring业务线代码与中文名
groupstring活动分组:红包活动 / 限时活动
imagestring物料图(687×220 横幅,已统一为 https)
start_date / end_datestring起止日期 Y-m-d
status / status_textint / string0 未开始 / 1 进行中 / 2 已结束
h5_urlstring网页版落地页;少数活动为空
deeplinkstringApp 唤起链接(imeituan://)
detail_urlstring本站详情页地址(含领取引导)

微信内或唤端被系统拦截时:deeplink 里 inner_url 参数解码后就是该活动的 click.meituan.com 官方落地页,任何浏览器都能打开, 可以拿它做兜底(本站详情页就是这么处理的)。

list 元素 · 饿了么(platform=eleme)

字段类型说明
platformstring固定 eleme
idint活动 ID
title / descrstring活动名 / 优惠描述
type / type_namestring活动类型代码与中文名
imagestring物料图
start_date / end_datestring起止日期 Y-m-d
status / status_textint / string0 未开始 / 1 进行中 / 2 已结束
commission_ratestring佣金比例
linksobject推广物料,按需取用(见下)
detail_urlstring本站详情页地址

links 里可能出现的键(没生成的不会出现,取值前判空): ele_word 淘宝闪购口令 · ele_deeplink 闪购唤起链接 · ele_h5url 闪购网页版 · tb_watchword 淘宝口令 · tb_h5url 淘宝网页版 · ali_watchword 支付宝口令 · ali_h5url 支付宝网页版 · wx_shortlink 微信短链

4返回示例

以下内容是写本文档时当场请求真实接口得到的,不是手写的示意数据 (… 处省略了同类条目)。

活动列表 · action=list&platform=meituan&per=2

{
    "code": 503,
    "msg": "接口已关闭",
    "data": null
}

统计与枚举 · action=stats

{
    "code": 503,
    "msg": "接口已关闭",
    "data": null
}

失败返回

{
    "code": 503,
    "msg": "接口已关闭",
    "data": null
}

5错误码

codeHTTP含义与处理
0200成功
400400参数不合法,看 msg 修正后重试(例如 platform 拼错、detail 没传 id)
401401appkey 缺失或错误
404404活动不存在或已下架
405405用了 GET,改用 POST
429429触发限流(每个 IP 每分钟 60 次),稍后再试
500500服务端异常,可重试;持续失败请联系站长
503503接口已临时关闭

6在线测试

直接在下面点「发送请求」,会用当前浏览器真实调用一次接口并显示原始返回 (等同于从你自己的服务器发起)。

等待发送…

7调用示例

cURL

curl -X POST 'https://wm.huizhetao.com/openapi/' \
  -H 'Content-Type: application/json' \
  -d '{
    "action": "list",
    "platform": "meituan",
    "biz": "waimai",
    "per": 20
  }'

PHP

$ch = curl_init('https://wm.huizhetao.com/openapi/');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'action'   => 'list',
        'platform' => 'meituan',
        'per'      => 20,
    ]),
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);

if (($res['code'] ?? -1) === 0) {
    foreach ($res['data']['list'] as $item) {
        echo $item['title'], ' → ', $item['h5_url'], PHP_EOL;
    }
}

JavaScript / 小程序

const res = await fetch('https://wm.huizhetao.com/openapi/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ action: 'list', platform: 'meituan', per: 20 }),
});
const json = await res.json();
if (json.code === 0) {
  console.log(json.data.list);
}

Python

import requests

resp = requests.post('https://wm.huizhetao.com/openapi/', json={
    'action': 'list',
    'platform': 'meituan',
    'per': 20,
}, timeout=15)

data = resp.json()
if data['code'] == 0:
    for item in data['data']['list']:
        print(item['title'], item['h5_url'])

8使用约定

对接中遇到问题,把完整的请求参数和返回 code / msg 发给站长即可定位。

← 返回首页