亚马逊商品数据 API Canopy,把商品详情、价格、评论、搜索、畅销榜、卖家资料等收成一套 REST / GraphQL / MCP,方便独立产品少爬 Amazon 网页、多接结构化接口。TrustMRR 用 Stripe API 核验的页面写明:月经常收入 $1,585,活跃订阅 15,累计收入 $38,774,最近 30 天 $4,424。页面标注 Last updated: Nov 1, 2026, 08:01 PM。2026 年 11 月 2 日 08:14(北京时间)再打开同一页,这四个数字仍一致。

核验原句是 Revenue is verified with Stripe API key。TrustMRR 核验的是 Stripe 收款,不核验某次 ASIN 查询的命中率,也不核验 Amazon 页面结构是否变化。创立时间写 Founded September 2022;Markdown 档案写 Founded date: 2022-09-11。地区 United States。创始人字段写 Ryan Anderson。

TrustMRR 上能读到的字段

条目标题旁写着 $4,424 last 30 days。收入与主体相关字段如下:

  • 累计收入(All-time revenue):$38,774
  • 月经常收入(MRR):$1,585
  • 活跃订阅:15
  • 在 TrustMRR 上的排名:#1056
  • 创始人:Ryan Anderson
  • 创立时间:2022 年 9 月(Founded September 2022;Markdown 档案写 Founded date: 2022-09-11)
  • 地区:United States
  • 域名评分 Domain Rating:37/100(页面标明来源 Ahrefs)
  • 核验原句:Revenue is verified with Stripe API key.
  • 更新时间原文:Last updated: Nov 1, 2026, 08:01 PM(未另标时区;Markdown 档案写 Revenue last synced: 2026-11-01T20:01:34.422Z)

定价字段写成一行:Free: 100 requests/mo, Pay As You Go: $0+/month, Premium: $99+/month, Custom Enterprise Pricing。价值主张原文是 Real-time product, pricing, review, and sales-estimate data from Amazon.com. One API key, three interfaces, zero scrapers to maintain.。问题陈述写 Access to Amazon's public data is not developer-friendly and lacks a public API for scale.。受众字段写 Developers,B2B;用户数写约 4,000。市场标签含 Dev Tools、AI、SaaS。技术栈栏 Backend 列 Stripe。Markdown 档案另写 Last 30 days profit margin: 80.0%。

TrustMRR 由 Marc Lou 运营,连接对方 Stripe 后展示收款。平台自身的核验方式与累计数字,见 创业收入核验站 TrustMRR,一人运营,Stripe 核验累计近 39 万美元。同一核验口径下的产品案例,还有 设备规格 API MobileAPI,TrustMRR 核验月经常收入 4971 美元、联系表单 API Web3Forms,TrustMRR 核验月入 4.37 万。Canopy 卖的是亚马逊公开商品与卖家侧数据接口,不是设备规格库,也不是联系表单投递。

官网定价与文档落点

官网定价区与 TrustMRR 定价行对齐的档是 Hobby Free Forever(100 requests per month)、Pay As You Go $0+/month(100 free requests per month,额外请求写 +$0.01 per additional request)、Premium $99+/month(20K requests included,额外请求写 +$0.008 per additional request)。文档 Getting started 写明 GraphQL 走 POST https://graphql.canopyapi.co/,REST 示例走 GET https://rest.canopyapi.co/api/amazon/product;鉴权可用 API-KEY 头或 Authorization: Bearer YOUR_API_KEY。公开 OpenAPI(https://rest.canopyapi.co/api/v1/openapi.json)把安全方案写成 header 名 API-KEY 的 ApiKeyAuth;本机读到的 paths 顶层条目为 21 个,含 /api/amazon/product、/api/amazon/search、/api/amazon/bestsellers、/api/amazon/seller 等。官网另写 MCP 托管地址 https://mcp.canopyapi.co/mcp。

文档示例页用 ASIN B0B3JBVDYP 演示 REST 拉取,并要求请求头带 API-KEY。TrustMRR 核验收款,不核验官网 Free / Pay As You Go / Premium 卡片之间关于免费额度与单价的文案是否始终一字不差。

本机 Spring Boot 探针

本机用 Spring Boot 3.4.5 + RestClient,对 https://rest.canopyapi.co 与 https://graphql.canopyapi.co 实测。未带 API-KEY 访问 /api/amazon/product 回 400;只带 Authorization: Bearer、不带 API-KEY 头时同样回 400,错误路径仍指向 headers.API-KEY;带上伪造 API-KEY 回 401。GraphQL 对 { __typename } 无密钥回 200,只证明端点可达,不等于免密钥可读商品字段。实测输出原文如下:

NOKEY status=400
NOKEY body={"success":false,"errors":[{"code":7001,"message":"Invalid input: expected string, received null","path":["headers","API-KEY"]}]}
BEARER status=400
BEARER body={"success":false,"errors":[{"code":7001,"message":"Invalid input: expected string, received null","path":["headers","API-KEY"]}]}
BADKEY status=401
BADKEY body={"success":false,"errors":[{"code":7003,"message":"`spring4all-probe-bad-key` is not a valid API key. Double-check it against the API key in your dashboard at https://www.canopyapi.co/dashboard. See http://docs.canopyapi.co/ for more info."}]}
GQL status=200
GQL body={"data":{"__typename":"Query"}}

对应调用形态:

RestClient rest = RestClient.builder()
    .baseUrl("https://rest.canopyapi.co")
    .build();

try {
    rest.get()
        .uri("/api/amazon/product?asin={asin}&domain={domain}", "B0B3JBVDYP", "US")
        .accept(MediaType.APPLICATION_JSON)
        .retrieve()
        .toEntity(String.class);
} catch (RestClientResponseException ex) {
    // 400 + path headers.API-KEY
}

try {
    rest.get()
        .uri("/api/amazon/product?asin={asin}&domain={domain}", "B0B3JBVDYP", "US")
        .accept(MediaType.APPLICATION_JSON)
        .header("Authorization", "Bearer spring4all-probe-bad-key")
        .retrieve()
        .toEntity(String.class);
} catch (RestClientResponseException ex) {
    // 仍 400 + path headers.API-KEY
}

try {
    rest.get()
        .uri("/api/amazon/product?asin={asin}&domain={domain}", "B0B3JBVDYP", "US")
        .accept(MediaType.APPLICATION_JSON)
        .header("API-KEY", "spring4all-probe-bad-key")
        .retrieve()
        .toEntity(String.class);
} catch (RestClientResponseException ex) {
    // 401 + is not a valid API key
}

RestClient gql = RestClient.builder()
    .baseUrl("https://graphql.canopyapi.co")
    .build();
ResponseEntity<String> gqlResp = gql.post()
    .uri("/")
    .contentType(MediaType.APPLICATION_JSON)
    .body("{\"query\":\"{ __typename }\"}")
    .retrieve()
    .toEntity(String.class);
// 200 + {"data":{"__typename":"Query"}}

本篇未注册生产 API key,也未调用付费档的商品、评论或畅销榜数据;收入口径仍以 TrustMRR 的 Stripe 核验页为准。REST 侧当前运行时把 API-KEY 头当成必填校验字段,只带 Bearer、不带 API-KEY 时会先被 schema 拦下,独立项目对接时按 OpenAPI 的 ApiKeyAuth 写头更稳。

读数口径

TrustMRR 写创立于 2022 年 9 月。到页面标注的 Nov 1, 2026, 08:01 PM 更新时,Stripe 核验累计收款 $38,774,MRR $1,585,活跃订阅 15,最近 30 天 $4,424。2026-11-02 08:14 北京时间复核,上述收入四字段仍一致。官网 Free 100 次/月、Pay As You Go $0+/mo、Premium $99+/mo 与 TrustMRR 定价行概括一致;活跃订阅 15 不等于 15 个 ASIN,也不等于 15 次搜索。

参考:TrustMRR · Canopy API(Last updated: Nov 1, 2026, 08:01 PM;2026-11-02 08:14 北京时间复核数字仍一致),TrustMRR Markdown 档案,Canopy API 官网,Getting started,openapi.json。

— 感谢阅读 —
广告

一起交流

分享你的思考,让讨论更进一步。