输入预算与卖家经验等级,获取按 1–100 加权得分排序的亚马逊选品候选清单。
数据分析
amazon-market-trend-scanner
试用扫描亚马逊某一级父品类,定位正在升温的子类、正在冒头的新细分市场和趋势转折,并按阈值给出告警。
它能做什么
针对一个亚马逊父品类,逐子类追踪需求激增、品牌集中、新卖家进入潮、价格带迁移和利润率变化。流程为:先以关键词或类目路径解析 categoryPath,再拉取每个子类的市场数据,最后对热度较高的子类分别跑 emerging 和 new-release 模式的产品检索。支持两种模式:Full Scan 产出趋势仪表板(包含 TOP 5 热门子类、风险提示、子类详情和自动监控配置),以及定时 Quick Check,将最新 market 数据与本地基线对比,仅在红色告警触发时通知。本地状态(baseline、watchlist、alerts、history 快照)保存在 scan-data 目录下,用于跨次运行的差异分析。
什么时候用它
- 扫描亚马逊父品类,找出哪些子类正在变热
- 通过新卖家 SKU 进入潮发现新兴细分市场
- 持续追踪需求激增、品牌集中和价格带迁移趋势
- 配置定时品类监控,仅在红色告警时推送
技能文档
ZooData — Market Trend Scanner
Find rising categories before everyone else. Respond in user's language.
Files
| File | Purpose |
|---|---|
{skill_base_dir}/scripts/zoodata.py | Execute for all API calls (run --help for params) |
{skill_base_dir}/references/reference.md | Load for exact field names or response structure |
{skill_base_dir}/scan-data/ | Runtime: watchlist.json, baseline.json, alerts.json, history/ (auto-created) |
Credential
Required: ZOODATA_API_KEY. Get free key at zoodata.ai/api-keys.
Capabilities & Data Flow
- Network: only
https://api.zoodata.ai(BearerZOODATA_API_KEY). SettingZOODATA_BASE_URLto an untrusted host (anything other thanapi.zoodata.ai/*.zoodata.ai/ localhost) makes the CLI refuse the request and withhold the key — the Bearer token is never sent to an untrusted host. - Execution: bundled shared ZooData CLI
{skill_base_dir}/scripts/zoodata.py(Python 3, stdlib-only). This skill allowscategories,market,products, andcheck. Do not invoke unrelated subcommands for this skill's tasks — the bundled manifest{skill_base_dir}/scripts/allowed-commands.jsonenforces this: the CLI refuses out-of-scope subcommands with a structuredCOMMAND_NOT_ALLOWEDerror before any API request. - Local files: scan state under
{skill_base_dir}/scan-data/(baseline.json,watchlist.json,alerts.json,history/*.json); reads the optional credential store~/.zoodata/config.json. This state persists between runs solely for baseline comparison and alerting — it may be deleted at any time to reset monitoring, and oldhistory/snapshots should be pruned when no longer needed. - Sent to the API: keywords, category paths, ASINs, marketplace/date and numeric filter values only. Never sent: budget, experience level, risk tolerance, or any other user-profile text — profile inputs map client-side to numeric filters.
- Credits: every API call consumes account credits. For broad or ambiguous requests, state the estimated credit cost and confirm with the user before running multi-call scans.
Shared CLI Contract
Before selecting or invoking the first command, read and apply the local references/cli-contract.md. Reapply it after every granular or composite result and before any fallback, additional call, state write, interpretation, or user-facing report. Use this skill's fallback logic only when the shared contract classifies the result as non-terminal.
Local Interface Failure Output
For a terminal interface failure, respond in the user's language that the trend scan could not be completed, then list succeeded and failed endpoint identifiers and state that existing scan state remains unchanged. Do not emit trend signals, hot-category rankings, alerts, or write watchlists, history, or baselines. Keep control tokens, parameters, and retry logs internal unless diagnostics are requested.
Input
Tell the user: "Give me one or more categories to monitor (e.g. 'Pet Supplies > Dogs'). I'll scan all subcategories and find trending directions. Single or batch supported."
Required: 1+ category paths or keywords. Optional: scan depth, metric preferences.
API Pitfalls (CRITICAL)
- Category first: resolve categoryPath via
categories --keywordbefore anything - All keyword endpoints MUST include
--category; omitting it distorts aggregation - Use API fields directly: revenue=
sampleAvgMonthlyRevenue, sales=monthlySalesFloor - Key metrics per subcategory: sampleAvgMonthlySales, sampleNewSkuRate, topBrandSalesRate, sampleAvgPrice, sampleAPlusRate, totalSkuCount, sampleFbaRate
--modepresets are CLI-local, NOT API params —zoodata.pyexpands them viaPRODUCT_MODESbefore the call; a rawproducts/searchrequest must send the expanded filter fields and must not sendmode(moderaw → 422)
On Missing Key
When ZOODATA_API_KEY is not set (verify via python {skill_base_dir}/scripts/zoodata.py check — exits 2 if no key in env or ~/.zoodata/config.json), stop before any evidence call. Tell the user that a ZooData API key is required, link to https://zoodata.ai/en/api-keys, and explain that the key may be set in the environment or local config. Do not substitute public knowledge or a "for reference only" analysis.
On 401 Invalid Key
When _transport.status=401, stop further calls, tell the user that the configured key was rejected, direct them to https://zoodata.ai/en/api-keys, and do not fabricate missing data.
On 402 Credit Exhausted
When _transport.status=402, stop further calls. Report where the workflow stopped, any compatible partial findings already gathered, and returned credit metadata when present; direct the user to https://zoodata.ai/en/pricing and do not fabricate missing data.
Mode 1: Full Scan
categories --keyword "{keyword}"→ resolve category pathmarket --category "{path}" --page-size 20→ collect all subcategory market data (paginate)- Record 7 key metrics per subcategory (see Pitfalls #4)
products --keyword "{sub}" --category "{path}" --mode emerging --page-size 20per hot subcategoryproducts --keyword "{sub}" --category "{path}" --mode new-release --page-size 20per hot subcategory- Save baseline →
{skill_base_dir}/scan-data/baseline.json, config →{skill_base_dir}/scan-data/watchlist.json - Output full trend report (see Output Spec)
- Offer Auto-Monitor setup
Mode 2: Quick Check (scheduled)
- Read
{skill_base_dir}/scan-data/watchlist.json+{skill_base_dir}/scan-data/baseline.json market --category "{path}"per watched category- Compare vs baseline using signal rules below
- 🔴 alerts → notify user; else silent log
- Save snapshot to
{skill_base_dir}/scan-data/history/{timestamp}.json, update baseline
Trend Signals
| Signal | Condition | Level |
|---|---|---|
| Demand surge | sampleAvgMonthlySales >20% vs baseline | 🔴 |
| Red ocean warning | topBrandSalesRate >70% AND rising | 🔴 |
| New entrant wave | sampleNewSkuRate up >5 percentage points | 🟡 |
| Brand loosening | topBrandSalesRate down >3 percentage points | 🟡 |
| Price band shift | sampleAvgPrice change >10% | 🟡 |
| Margin change | sampleAPlusRate change >5 percentage points | 🟡 |
| Minor movement | None of the above triggered | 🟢 Silent log |
Trend Interpretation & Action Guide
| Signal Combination | Market Phase | Recommended Action |
|---|---|---|
| Demand surge + New entrant wave | 🚀 Growth phase | Enter quickly, first-mover advantage matters 💡 |
| Demand surge + Brand loosening | 🎯 Opportunity window | Best timing — demand up, incumbents losing grip 💡 |
| Demand surge + Red ocean warning | ⚠️ Late stage growth | High demand but leaders consolidating — need strong differentiation 💡 |
| Red ocean warning + No demand surge | 🔒 Mature/locked | Avoid — established players dominate with flat demand 💡 |
| Brand loosening + Price band shift down | 💰 Price war | Wait — margins compressing, enter after shakeout 💡 |
| New entrant wave + Margin change | 🔄 Disruption | Category being redefined — study new entrants' strategies 🔍 |
Subcategory Ranking Criteria
Rank subcategories by composite attractiveness (apply market-entry scoring logic):
- Demand: sampleAvgMonthlySales — higher = more attractive 📊
- Competition: topBrandSalesRate — lower = more open 📊
- Entry barrier: sampleAvgRatingCount — lower = easier entry 📊
- Activity: sampleNewSkuRate — higher = more dynamic 📊
- Margin signal: sampleAvgPrice — higher generally = better margins 🔍
Auto-Monitor
After each Full Scan, ask user to enable scheduled monitoring. If yes, generate cron config with: category list, alert thresholds, schedule. Supports OpenClaw /cron, ChatGPT Scheduled Tasks, Claude Projects. Quick Check only notifies on 🔴 alerts.
Output Spec
Full Scan: Trend Dashboard (all subcategories) → 🔥 Hot Categories TOP 5 → 🆕 New Entrants Scan → ⚠️ Risk Alerts → Subcategory Detail (per hot category) → Next Steps → Data Provenance → API Usage.
Language (required)
Output language MUST match the user's input language. If the user asks in Chinese, the entire report is in Chinese. If in English, output in English. Exception: API field names (e.g. monthlySalesFloor, categoryPath), endpoint names, technical terms (e.g. ASIN, BSR, CR10, FBA, credits) remain in English.
Disclaimer (required, at the top of every report)
Data is based on ZooData API sampling as of [date]. Monthly sales (
monthlySalesFloor) are lower-bound estimates. This analysis is for reference only and should not be the sole basis for business decisions. Validate with additional sources before acting.
Confidence Labels (required, tag EVERY conclusion)
- 📊 Data-backed — direct API data (e.g. "CR10 = 54.8% 📊")
- 🔍 Inferred — logical reasoning from data (e.g. "brand concentration is moderate 🔍")
- 💡 Directional — suggestions, predictions, strategy (e.g. "consider entering $10-15 band 💡")
Rules: Strategy recommendations are NEVER 📊. Anomalies (>200% growth) are always 💡. Sample bias note required. User criteria override AI judgment.
Data Provenance (required)
Include a table at the end of every report:
| Data | Endpoint | Key Params | Notes |
|---|---|---|---|
| (e.g. Market Overview) | markets/search | categoryPath, topN=10 | 📊 Top N sampling, sales are lower-bound |
| ... | ... | ... | ... |
Extract endpoint and params from _query in JSON output. Add notes: sampling method, T+1 delay, realtime vs DB, minimum review threshold, etc.
API Usage (required)
| Endpoint | Calls | Credits |
|---|---|---|
| (each endpoint used) | N | N |
| Total | N | N |
Extract from meta.creditsConsumed per response. End with Credits remaining: N.
API Budget
Full Scan: ~40-60 credits (~2-3 per subcategory × 20). Quick Check: ~20-30 credits (market only).
常见问题
- 需要什么凭证?
- 需要 ZOODATA_API_KEY,可设置在环境变量或 ~/.zoodata/config.json 中。没有 key 时,技能会在任何 API 调用前停止,并引导用户前往 key 申请页面。
- 如何控制网络请求范围?
- 所有调用仅发往 api.zoodata.ai,使用 Bearer 鉴权;CLI 拒绝把 Bearer token 发往其它主机;同时内置 allowed-commands 清单,会在请求发出前拦截超出范围的子命令。
- 积分消耗大概是多少?
- Full Scan 大约 40–60 积分(每个子类 2–3 积分,乘以约 20 个子类);定时 Quick Check 大约 20–30 积分(仅 market 接口)。在进行大范围或模糊的多调用扫描前,技能会先提示预估消耗并向用户确认。
相关技能
针对已选定的亚马逊品类,给出 GO/CAUTION/AVOID 入驻判定,含子市场发现与卖家风险门槛校验。
按昨日快照汇总 Amazon 价格、BSR、竞品和评论变化,并输出分级提醒。
通过一条 CLI 跑通亚马逊多端点调研,覆盖市场、产品、竞品与评论分析。
Analyze Amazon keyword demand, traffic, and trends
Collect Amazon Global Product data and return results