Skip to content

ABA 关键词 API

ABA 关键词数据来自 Amazon Brand Analytics 周榜单,覆盖 9 个 Amazon 站点(us/uk/de/fr/it/jp/ca/es/mx)。

权威数据源,让选品选词更可靠。

端点总览

方法路径用途消耗 units
GET/api/aba/countries站点列表与最新日期0(免费)
GET/api/aba/report-dates某站可用报告日期1
GET/api/aba/rank周榜单关键字排名ceil(limit/1000)
GET/api/aba/search关键词字典搜索1
GET/api/aba/word/:wordId关键词详情(含历史+Top3)1
GET/api/aba/word/:wordId/history关键词排名历史1
GET/api/aba/word/:wordId/goods关键词 Top3 商品1
POST/api/aba/asin-reverseASIN 反查关键词1 × ASIN 数

GET /api/aba/countries

获取所有 ABA 站点的最新可用报告日期。

参数:无

示例

bash
# 请将 km_xxx 替换为你的 API Key
curl "https://mcp.keepamore.com/api/aba/countries" \
  -H "X-API-Key: km_xxx"
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch("https://mcp.keepamore.com/api/aba/countries", {
  headers: { "X-API-Key": "km_xxx" },
});
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.get(
    "https://mcp.keepamore.com/api/aba/countries",
    headers={"X-API-Key": "km_xxx"},
    timeout=30,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->get('https://mcp.keepamore.com/api/aba/countries', [
    'headers' => ['X-API-Key' => 'km_xxx'],
    'timeout' => 30,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/aba/countries"))
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(30))
    .GET()
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    url := "https://mcp.keepamore.com/api/aba/countries"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 30 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

响应

json
{
  "code": "0000",
  "msg": "ok",
  "data": {
    "countries": [
      {
        "country": "us",
        "latest_report_date": "2026-05-11",
        "available_dates": ["2026-05-11", "2026-05-04", "2026-04-27"],
        "tld": "com"
      }
    ]
  }
}

GET /api/aba/report-dates

获取某站点可用的报告日期列表(倒序,最多 20 个)。

参数

名称类型必填说明
countrystring站点代码(如 us

示例

bash
# 请将 km_xxx 替换为你的 API Key
curl "https://mcp.keepamore.com/api/aba/report-dates?country=us" \
  -H "X-API-Key: km_xxx"
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/aba/report-dates?country=us",
  { headers: { "X-API-Key": "km_xxx" } },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.get(
    "https://mcp.keepamore.com/api/aba/report-dates",
    params={"country": "us"},
    headers={"X-API-Key": "km_xxx"},
    timeout=30,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->get('https://mcp.keepamore.com/api/aba/report-dates', [
    'headers' => ['X-API-Key' => 'km_xxx'],
    'query'   => ['country' => 'us'],
    'timeout' => 30,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/aba/report-dates?country=us"))
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(30))
    .GET()
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    url := "https://mcp.keepamore.com/api/aba/report-dates?country=us"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 30 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

响应

json
{
  "code": "0000",
  "msg": "ok",
  "data": {
    "country": "us",
    "dates": ["2026-05-11", "2026-05-04", "2026-04-27"]
  }
}

GET /api/aba/rank

查询 ABA 周榜单关键词排名。支持多维度筛选和 Keyset / Offset 分页。

参数

名称类型必填默认说明
countrystring站点代码
reportDatestring报告日期(YYYY-MM-DD),不传则用最新
rankMininteger最低排名
rankMaxinteger最高排名
keywordstring关键词模糊筛选
fluctuationTypestringnew / rising / falling / stable
brandstring品牌精确筛选
categorystring类目精确筛选
clickSumMininteger最低点击量
convSumMininteger最低转化量
limitinteger200返回条数(1-1000)
offsetinteger分页偏移量。与 afterRank 互斥
afterRankintegerKeyset 分页(传入上一页最后排名)

示例

bash
# 请将 km_xxx 替换为你的 API Key
# 美国站前 200 名(默认 limit)
curl "https://mcp.keepamore.com/api/aba/rank?country=us" \
  -H "X-API-Key: km_xxx"

# 筛选新上榜关键词
curl "https://mcp.keepamore.com/api/aba/rank?country=us&fluctuationType=new&rankMax=100" \
  -H "X-API-Key: km_xxx"

# Keyset 翻页
curl "https://mcp.keepamore.com/api/aba/rank?country=us&afterRank=200" \
  -H "X-API-Key: km_xxx"
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/aba/rank?country=us&limit=200",
  { headers: { "X-API-Key": "km_xxx" } },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.get(
    "https://mcp.keepamore.com/api/aba/rank",
    params={"country": "us", "limit": 200},
    headers={"X-API-Key": "km_xxx"},
    timeout=60,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->get('https://mcp.keepamore.com/api/aba/rank', [
    'headers' => ['X-API-Key' => 'km_xxx'],
    'query'   => ['country' => 'us', 'limit' => 200],
    'timeout' => 60,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/aba/rank?country=us&limit=200"))
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(60))
    .GET()
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    url := "https://mcp.keepamore.com/api/aba/rank?country=us&limit=200"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 60 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

在 ABA 关键词字典中全文搜索。英文走 FULLTEXT 全文索引,中文走 LIKE 模糊。

参数

名称类型必填默认说明
countrystring站点代码
keywordstring搜索关键词
limitinteger20返回条数(1-200)

示例

bash
# 请将 km_xxx 替换为你的 API Key
curl "https://mcp.keepamore.com/api/aba/search?country=us&keyword=bluetooth&limit=20" \
  -H "X-API-Key: km_xxx"
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/aba/search?country=us&keyword=bluetooth&limit=20",
  { headers: { "X-API-Key": "km_xxx" } },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.get(
    "https://mcp.keepamore.com/api/aba/search",
    params={"country": "us", "keyword": "bluetooth", "limit": 20},
    headers={"X-API-Key": "km_xxx"},
    timeout=30,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->get('https://mcp.keepamore.com/api/aba/search', [
    'headers' => ['X-API-Key' => 'km_xxx'],
    'query'   => ['country' => 'us', 'keyword' => 'bluetooth', 'limit' => 20],
    'timeout' => 30,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/aba/search?country=us&keyword=bluetooth&limit=20"))
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(30))
    .GET()
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    url := "https://mcp.keepamore.com/api/aba/search?country=us&keyword=bluetooth&limit=20"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 30 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

GET /api/aba/word/:wordId

获取关键词完整信息(基本属性 + 52 周排名历史 + 最新 Top3 ASIN)。

示例

bash
# 请将 km_xxx 替换为你的 API Key
curl "https://mcp.keepamore.com/api/aba/word/1234567890123456789" \
  -H "X-API-Key: km_xxx"
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/aba/word/1234567890123456789",
  { headers: { "X-API-Key": "km_xxx" } },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.get(
    "https://mcp.keepamore.com/api/aba/word/1234567890123456789",
    headers={"X-API-Key": "km_xxx"},
    timeout=30,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->get('https://mcp.keepamore.com/api/aba/word/1234567890123456789', [
    'headers' => ['X-API-Key' => 'km_xxx'],
    'timeout' => 30,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/aba/word/1234567890123456789"))
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(30))
    .GET()
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    url := "https://mcp.keepamore.com/api/aba/word/1234567890123456789"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 30 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

GET /api/aba/word/:wordId/history

仅获取排名历史(不含商品信息)。

参数

名称类型默认说明
limitinteger52返回周数(≤104)

示例

bash
# 请将 km_xxx 替换为你的 API Key
curl "https://mcp.keepamore.com/api/aba/word/1234567890123456789/history" \
  -H "X-API-Key: km_xxx"
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch(
  "https://mcp.keepamore.com/api/aba/word/1234567890123456789/history",
  { headers: { "X-API-Key": "km_xxx" } },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.get(
    "https://mcp.keepamore.com/api/aba/word/1234567890123456789/history",
    headers={"X-API-Key": "km_xxx"},
    timeout=30,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->get('https://mcp.keepamore.com/api/aba/word/1234567890123456789/history', [
    'headers' => ['X-API-Key' => 'km_xxx'],
    'timeout' => 30,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/aba/word/1234567890123456789/history"))
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(30))
    .GET()
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    url := "https://mcp.keepamore.com/api/aba/word/1234567890123456789/history"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 30 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

GET /api/aba/word/:wordId/goods

获取最新一期 Top3 ASIN 商品。

参数

名称类型必填说明
countrystring站点代码
reportDatestring报告日期(YYYY-MM-DD)

示例

bash
# 请将 km_xxx 替换为你的 API Key
curl "https://mcp.keepamore.com/api/aba/word/1234567890123456789/goods?country=us&reportDate=2026-05-11" \
  -H "X-API-Key: km_xxx"
js
// 请将 km_xxx 替换为你的 API Key
const params = new URLSearchParams({ country: "us", reportDate: "2026-05-11" });
const r = await fetch(
  `https://mcp.keepamore.com/api/aba/word/1234567890123456789/goods?${params}`,
  { headers: { "X-API-Key": "km_xxx" } },
);
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.get(
    "https://mcp.keepamore.com/api/aba/word/1234567890123456789/goods",
    params={"country": "us", "reportDate": "2026-05-11"},
    headers={"X-API-Key": "km_xxx"},
    timeout=30,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->get('https://mcp.keepamore.com/api/aba/word/1234567890123456789/goods', [
    'headers' => ['X-API-Key' => 'km_xxx'],
    'query'   => ['country' => 'us', 'reportDate' => '2026-05-11'],
    'timeout' => 30,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/aba/word/1234567890123456789/goods?country=us&reportDate=2026-05-11"))
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(30))
    .GET()
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    url := "https://mcp.keepamore.com/api/aba/word/1234567890123456789/goods?country=us&reportDate=2026-05-11"
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 30 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

POST /api/aba/asin-reverse

ASIN 反查:查询 ASIN 出现在哪些 ABA 关键词下。

请求体 (JSON):

字段类型必填默认说明
asinsstring[]ASIN 列表(最多 50 个)
countrystring限定站点
startDatestring起始日期(YYYY-MM-DD)
endDatestring结束日期(YYYY-MM-DD)
limitinteger100每 ASIN 最多返回条数

示例

bash
# 请将 km_xxx 替换为你的 API Key
curl -X POST "https://mcp.keepamore.com/api/aba/asin-reverse" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: km_xxx" \
  -d '{"asins":["B08N5WRWNW","B09XS7JWHH"],"country":"us"}'
js
// 请将 km_xxx 替换为你的 API Key
const r = await fetch("https://mcp.keepamore.com/api/aba/asin-reverse", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": "km_xxx",
  },
  body: JSON.stringify({ asins: ["B08N5WRWNW", "B09XS7JWHH"], country: "us" }),
});
console.log(await r.json());
python
# 请将 km_xxx 替换为你的 API Key
import requests

resp = requests.post(
    "https://mcp.keepamore.com/api/aba/asin-reverse",
    json={"asins": ["B08N5WRWNW", "B09XS7JWHH"], "country": "us"},
    headers={"X-API-Key": "km_xxx"},
    timeout=60,
)
print(resp.json())
php
<?php
// 请将 km_xxx 替换为你的 API Key
require 'vendor/autoload.php';
use GuzzleHttp\Client;

$client = new Client();
$resp = $client->post('https://mcp.keepamore.com/api/aba/asin-reverse', [
    'headers' => ['Content-Type' => 'application/json', 'X-API-Key' => 'km_xxx'],
    'json'    => ['asins' => ['B08N5WRWNW', 'B09XS7JWHH'], 'country' => 'us'],
    'timeout' => 60,
]);
echo $resp->getBody();
java
// 请将 km_xxx 替换为你的 API Key(Java 11+ 标准库)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

String json = "{\"asins\":[\"B08N5WRWNW\",\"B09XS7JWHH\"],\"country\":\"us\"}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://mcp.keepamore.com/api/aba/asin-reverse"))
    .header("Content-Type", "application/json")
    .header("X-API-Key", "km_xxx")
    .timeout(Duration.ofSeconds(60))
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
go
// 请将 km_xxx 替换为你的 API Key(Go 标准库 net/http)
package main

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "time"
)

func main() {
    body := bytes.NewBufferString(`{"asins":["B08N5WRWNW","B09XS7JWHH"],"country":"us"}`)
    req, _ := http.NewRequest("POST", "https://mcp.keepamore.com/api/aba/asin-reverse", body)
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("X-API-Key", "km_xxx")

    client := &http.Client{Timeout: 60 * time.Second}
    resp, err := client.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    b, _ := io.ReadAll(resp.Body)
    fmt.Println(string(b))
}

对应 MCP 工具

HTTP 端点MCP 工具
GET /api/aba/countriesaba_get_countries
GET /api/aba/rankaba_get_rank_list
GET /api/aba/searchaba_search_keywords
GET /api/aba/word/:wordIdaba_get_word_detail
POST /api/aba/asin-reverseaba_reverse_asin

计费总览

端点计费公式示例
/countries0免费
/report-dates/search1 unit每次 1
/rankceil(limit / 1000)limit=200 → 1 unit
/word/:id 及子路由1 unit每次 1
/asin-reverse1 × ASIN 数5 个 ASIN → 5 units