Apinoa Docs

Marketplace API

通过同一组操作和同一个响应结构访问 Amazon、Shopify、Walmart、TikTok Shop 和 AliExpress。

查看原始 .mdx

Marketplace API 通过相同的操作和同一个响应结构提供四个电商平台的数据。来自 Amazon 的商品和来自 Shopify 的商品都以相同的 Product 返回,因此读取一个平台的代码也能读取所有平台。电商平台是路径中的一段:

curl "https://gateway.apinoa.com/v1/amazon/search?query=wool+socks" -H "x-api-key: $APINOA_API_KEY"
curl "https://gateway.apinoa.com/v1/walmart/search?query=wool+socks" -H "x-api-key: $APINOA_API_KEY"

操作

操作返回作用
searchSearchResult匹配关键词的商品,支持过滤
image-searchSearchResult匹配图片的商品
browseSearchResult某个类目中的商品,无需关键词
categoriesCategoryList类目树的一层,用于查找 browse 接受的 id
catalogSearchResult某个店铺的全部商品
productProduct一个商品的完整信息:变体、图片、规格、卖家、配送
reviewsReviewPage商品的评论,每次一页
shippingShippingQuote将一件商品配送到某个国家的费用,按承运商列出

每个类型都在 Response Schema 中逐字段说明。

各电商平台支持的操作

searchimage-searchbrowsecategoriescatalogproductreviewsshipping
Amazon✓✓✓✓✓
Shopify✓✓✓✓✓
Walmart✓✓✓✓✓
TikTok Shop✓✓✓✓✓✓
AliExpress✓✓✓✓✓✓

空白单元格表示该电商平台没有对应该操作的数据来源,而不是计划中。Amazon 评论不可用。Shopify 没有 browse 或 categories,因为它由数百万家独立店铺组成,没有共享的类目树;请改用 catalog 列出单个店铺的商品。

eBay 暂时不可用。在恢复之前,其接口返回 404 UNKNOWN_MARKETPLACE。

相同之处与不同之处

所有平台一致因电商平台而异
响应类型✓ SearchResult、Product、ReviewPage
字段名称与含义✓ price 始终是买家当前支付的价格
过滤器名称与单位✓ priceMin 始终是以主货币单位表示的小数金额
哪些字段有值只有 Amazon 和 Walmart 返回 reviewSummary;只有 AliExpress 以数字形式给出 stock
有哪些操作见上表
接受哪些过滤器Amazon 的 brands 收费 2 个单位;AliExpress 不接受 ratingMin
分页Shopify 按 cursor 分页;其他平台按 page
商品 id 格式ASIN、数字 id 或 shop/handle

解析代码只需编写一次,但在编写请求之前请先阅读对应电商平台的页面:每个页面都准确列出了它接受的内容,以及每个 可选字段实际出现的频率。共享的过滤器词汇见 Filters。

类目与浏览

browse 无需关键词即可列出某个类目;categories 告诉你存在哪些 id。不带 categoryId 调用 categories 获取顶层类目,传入 id 则列出其子类目。不同之处在于 id 的种类:Amazon 的部门是店铺 slug,Walmart 的是数字 id, 浏览时以下划线连接成链,AliExpress 的则是普通类目 id。

并非每个类目都列出商品:许多只是导航层级。categories?browsableOnly=true 只返回 browse 接受的 id。 无法确定某个类目能否浏览时,browsable 会缺失,而不是 false。没有该数据的电商平台返回 400 BROWSABLE_ONLY_UNAVAILABLE。

运行时查询

GET /v1/marketplaces 发布完整目录:每个平台、其操作、每个操作的费用,以及每个操作输入的 JSON Schema。 请基于它生成代码,而不是硬编码这些页面的内容。节选:

{
  "success": true,
  "data": {
    "marketplaces": [
      {
        "id": "walmart",
        "kind": "marketplace",
        "operations": ["search", "browse", "categories", "product", "reviews"],
        "regions": ["US"],
        "cost": { "search": { "base": 1, "max": 1 }, "product": { "base": 1, "max": 1 } },
        "params": {
          "search": {
            "type": "object",
            "required": ["query"],
            "properties": { "query": { "type": "string", "minLength": 1, "description": "Keywords to search for. …" } }
          }
        }
      }
    ],
    "pricing": {
      "currency": "USD",
      "unitPrice": { "marketplace": "0.001000", "image-translate": "0.003000" },
      "dayBoundary": "UTC",
      "dailyBrackets": [{ "fromUnits": 0, "ratePct": 100 }, { "fromUnits": 1000, "ratePct": 90 }]
    }
  }
}

操作名称与 URL 中的写法完全一致(image-search),因此可以直接放入 /v1/{platform}/{operation}。kind 为 marketplace 或 sns。

价格

按标价每单位 $0.001,随当日调用量增长逐级下降(参见 Pricing)。大多数调用为一个单位。 以下调用可能花费更多,各有上限:

操作价格增加费用的因素
Amazon search, browse$0.001,最高 $0.002brands 或 facets 使其变为 2 个单位
Amazon image-search$0.001,最高 $0.002图片有匹配时为 2 个单位;无任何匹配时为 1 个
Amazon product$0.002,最高 $0.032固定 2 个单位:商品页及其下半部分(规格、畅销排名、评分分布)。include=offers:每页十条报价再加一个单位,最多 30 页
Shopify reviews$0.001,最高 $0.007首页可能产生额外单位;cursor 页不会
AliExpress product$0.001,最高 $0.002include=shipping 使其变为 2 个单位
AliExpress shipping$0.001,最高 $0.002除非 sku 是数字 SKU id,否则为 2 个单位

目录以单位给出相同的数字:cost.base 是一次调用的收费,cost.max 是最高收费,一个单位为 pricing.unitPrice。失败的调用不计费。

参考

本页内容