Amazon Market Trend Scanner

Amazon category trend scanner. Scans Amazon category landscapes to discover trending subcategories, emerging niches, and market shifts. Tracks demand surges,...

apiclaw

@apiclaw

What This Skill Does

Scans Amazon parent categories to identify trending subcategories, emerging niches, and market shifts by tracking metrics like demand surges, brand consolidation, new entrant waves, price band migration, and margin changes across all subcategories.

Replaces manual category research and guesswork by providing data-driven trend detection across Amazon subcategories over time.

When to Use It

  • Identify which pet supply subcategories are gaining momentum this quarter
  • Discover emerging niches within the 'Home & Kitchen' category
  • Track demand surges in 'Sports & Outdoors' subcategories month-over-month
  • Monitor price band migration trends in 'Electronics' subcategories
  • Detect new entrant waves in 'Beauty & Personal Care' niches
  • Compare margin changes across all subcategories under 'Grocery & Gourmet Food'

Install

$ openclaw skills install @apiclaw/amazon-market-trend-scanner

ZooData — Market Trend Scanner

Find rising categories before everyone else. Respond in user's language.

Files

FilePurpose
{skill_base_dir}/scripts/zoodata.pyExecute for all API calls (run --help for params)
{skill_base_dir}/references/reference.mdLoad 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.

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)

  1. Category first: resolve categoryPath via categories --keyword before anything
  2. All keyword endpoints MUST include --category; omitting it distorts aggregation
  3. Use API fields directly: revenue=sampleAvgMonthlyRevenue, sales=monthlySalesFloor
  4. Key metrics per subcategory: sampleAvgMonthlySales, sampleNewSkuRate, topBrandSalesRate, sampleAvgPrice, sampleAPlusRate, totalSkuCount, sampleFbaRate
  5. --mode presets are CLI-local, NOT API paramszoodata.py expands them via PRODUCT_MODES before the call; a raw products/search request must send the expanded filter fields (mode raw → 422). Follow the mode/CLI-flags pitfall (#9) in zoodata/SKILL.md

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): follow the "On Missing Key" protocol in zoodata/SKILL.md — STOP before any call, link the user to https://zoodata.ai/en/api-keys, and DO NOT produce a "partial analysis from public knowledge" / "for reference only" fallback as a substitute.

On 401 Invalid Key

When zoodata.py returns code 401: follow the "On 401 Invalid Key" protocol in zoodata/SKILL.md — STOP further calls, tell the user the key was rejected and direct them to api-keys, do not fabricate missing data.

On 402 Credit Exhausted

When zoodata.py returns code 402: follow the "On 402 Credit Exhausted" protocol in zoodata/SKILL.md — STOP further calls, report partial findings already gathered, do not fabricate missing data.

Mode 1: Full Scan

  1. categories --keyword "{keyword}" → resolve category path
  2. market --category "{path}" --page-size 20 → collect all subcategory market data (paginate)
  3. Record 7 key metrics per subcategory (see Pitfalls #4)
  4. products --keyword "{sub}" --category "{path}" --mode emerging --page-size 20 per hot subcategory
  5. products --keyword "{sub}" --category "{path}" --mode new-release --page-size 20 per hot subcategory
  6. Save baseline → {skill_base_dir}/scan-data/baseline.json, config → {skill_base_dir}/scan-data/watchlist.json
  7. Output full trend report (see Output Spec)
  8. Offer Auto-Monitor setup

Mode 2: Quick Check (scheduled)

  1. Read {skill_base_dir}/scan-data/watchlist.json + {skill_base_dir}/scan-data/baseline.json
  2. market --category "{path}" per watched category
  3. Compare vs baseline using signal rules below
  4. 🔴 alerts → notify user; else silent log
  5. Save snapshot to {skill_base_dir}/scan-data/history/{timestamp}.json, update baseline

Trend Signals

SignalConditionLevel
Demand surgesampleAvgMonthlySales >20% vs baseline🔴
Red ocean warningtopBrandSalesRate >70% AND rising🔴
New entrant wavesampleNewSkuRate up >5 percentage points🟡
Brand looseningtopBrandSalesRate down >3 percentage points🟡
Price band shiftsampleAvgPrice change >10%🟡
Margin changesampleAPlusRate change >5 percentage points🟡
Minor movementNone of the above triggered🟢 Silent log

Trend Interpretation & Action Guide

Signal CombinationMarket PhaseRecommended Action
Demand surge + New entrant wave🚀 Growth phaseEnter quickly, first-mover advantage matters 💡
Demand surge + Brand loosening🎯 Opportunity windowBest timing — demand up, incumbents losing grip 💡
Demand surge + Red ocean warning⚠️ Late stage growthHigh demand but leaders consolidating — need strong differentiation 💡
Red ocean warning + No demand surge🔒 Mature/lockedAvoid — established players dominate with flat demand 💡
Brand loosening + Price band shift down💰 Price warWait — margins compressing, enter after shakeout 💡
New entrant wave + Margin change🔄 DisruptionCategory 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:

DataEndpointKey ParamsNotes
(e.g. Market Overview)markets/searchcategoryPath, 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)

EndpointCallsCredits
(each endpoint used)NN
TotalNN

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).

Top skills in this category