Market NinjaMarket Ninja
使用场景

批量导出

分页遍历数据集中的大规模数据切片——用于 LLM 上下文、自建数据库或数据分析——同时遵守每日配额限制。

导出前先浏览类目

在拉取整个市场平台的商品目录之前,先通过类目列表缩小范围通常会更高效——先调用 GET /categories,再将得到的 category_path 作为 GET /productscategory 筛选参数。完整指南(包括在任意层级深度的包含匹配,以及如何理解空的 category_path: [])请参阅类目。您也可以用同样的方式, 通过 brand 参数把导出范围缩小到某个具体品牌——可用名称与完整示例请参阅 品牌

分页

page_size 默认值为 100,最大为 500——相比典型的面向 UI 的 API,这个默认值刻意设得更宽松, 专门为这种使用场景设计。请根据响应中的 meta.total 驱动循环,而不是提前自行计算总页数:

#!/bin/bash
PAGE=1
while true; do
  RESPONSE=$(curl -s -G -H "Authorization: Bearer mn_live_..." \
    "https://data.marketninja.ru/v1/products" \
    --data-urlencode "marketplace=wildberries" \
    --data-urlencode "category=Зоотовары" \
    --data-urlencode "page_size=500" \
    --data-urlencode "page=$PAGE")

  echo "$RESPONSE" | jq -c '.data[]' >> products.jsonl

  TOTAL=$(echo "$RESPONSE" | jq '.meta.total')
  if [ $((PAGE * 500)) -ge "$TOTAL" ]; then break; fi
  PAGE=$((PAGE + 1))
done

注意每日配额

配额统计的是响应中实际返回的记录数,而不是请求次数——一次分页导出所消耗的配额, 取决于您实际取得了多少条商品记录,与用了多少次请求无关。X-Quota-Limit/X-Quota-Used 请求头只会出现在 429 quota_exceeded 响应中——请检查响应状态,一旦触发就停止, 而不是提前预测剩余配额。

配额会在 UTC 午夜重置。如果您要导出整个数据集,建议将任务分散到多天完成, 而不是一次跑完;也可以联系我们为您的密钥申请更高的限额。

用于 LLM 上下文

如果目标是为模型提供一份最新的数据切片(而不是维护数据集的完整本地副本),通常更好的做法是 按用户的每次提问做针对性的窄范围查询,而不是提前「以防万一」批量导出全部数据:通过 查找商品中的场景,定位用户实际询问的那个商品或卖家, 然后把这段紧凑的 JSON 直接交给模型即可。

Last updated on

On this page