使用场景
解析会话
获取您刚通过扩展程序采集的数据——检查会话状态,并在数据完成合并后取出结果。
扩展程序发起的每一次解析——无论是单页还是批量运行——都会生成一个解析会话,归属于您自己的账户。
GET /products 及本站的其他端点搜索的是整个共享数据集;而这三个端点只会返回属于您自己的数据。
您不需要自己创建或选择会话 id——每次开始解析时,扩展程序都会自动生成一个。
GET /me/scrapes 就是用来查找它的入口。列出最近的解析会话
curl -H "Authorization: Bearer mn_live_..." \
"https://data.marketninja.ru/v1/me/scrapes"{
"data": [
{
"id": "b1f8b6b0-2f7d-4a1a-9a3c-2f6d8e9a1234",
"status": "processing",
"stats": { "total": 40, "pending": 12, "processing": 0, "merged": 28, "rejected": 0, "flagged": 0 },
"metadata": { "source_type": "bulk", "intent": "data", "url_count": 40 },
"created_at": "2026-08-04T10:15:00.000Z",
"updated_at": "2026-08-04T10:16:42.000Z"
}
],
"meta": { "total": 1, "page": 1, "page_size": 100 }
}始终按最新在前排列,不支持任何筛选参数——因为这本来就只是您自己账户的历史记录。
检查会话状态
当会话中不再有任何 pending/processing 的条目时,status 就会变为 completed——
这并不等同于「每一项都成功合并了」。具体明细请查看 stats 字段。
curl -H "Authorization: Bearer mn_live_..." \
"https://data.marketninja.ru/v1/me/scrapes/b1f8b6b0-2f7d-4a1a-9a3c-2f6d8e9a1234"后台合并流程是按计划批处理运行的,不是即时完成——刚解析完之后,
status 几乎总是 processing。请轮询这个端点(或者直接重新请求下方的 .../products),直到状态变为 completed,而不要假设扩展程序一结束,解析就已经完成。获取已解析的数据
拿到会话 id 之后,这才是真正「给我刚解析到的数据」的端点——它会返回该会话中的每一条提交记录, 而不仅仅是已经合并完成的那些:
curl -G -H "Authorization: Bearer mn_live_..." \
"https://data.marketninja.ru/v1/me/scrapes/b1f8b6b0-2f7d-4a1a-9a3c-2f6d8e9a1234/products" \
--data-urlencode "page_size=100"{
"data": [
{ "submission_status": "merged", "product": { "id": "e86bee19-...", "name": "..." } },
{ "submission_status": "pending", "product": null }
],
"meta": { "total": 40, "page": 1, "page_size": 100 }
}在对应条目完成合并之前,product 会保持为 null——这是有意为之,不是 bug:如果直接把
尚未合并的行完全省略,一次刚发起的解析在最初一分钟左右就会看起来像一个空页面。已合并的
product 与 GET /products 返回的对象结构完全一致。
每日数据配额只会为真正带有已合并
product 的行计费——pending 占位记录不消耗配额,因此反复轮询一个仍在处理中的会话是免费的。Last updated on