This skill guides you on how to retrieve Amazon product details via the Keepa product request API, helping Amazon sellers and analysts obtain structured product data for one or more ASINs across multiple Amazon marketplaces.
Core Concepts
The Keepa Product Request API returns detailed product listing data from Amazon, sourced through Keepa. Given one or more ASINs and a marketplace, it returns comprehensive product information: pricing, title, Item Highlights (itemHighlights, when available), main image, listing date, material, weight, dimensions, sales rank, monthly sales units (current and up to 12 months of history), FBA fees, ratings, review counts, category tree, and more.
Key points:
- You can query up to 5 ASINs in a single request by separating them with commas.
- The
domainparameter is a numeric marketplace ID (e.g.,1= Amazon.com US), not a country code. - Setting
historyto1includes historical sales data (monthly sales for up to 12 prior months, average sales rank over 30/90/180 days). Setting it to0returns only current product information. products[].itemHighlightsis a single string of short product information separate fromtitle; it may benull, blank, or absent. It requires no extra request parameter and can be returned withhistory=0.- The response does not include full product descriptions or review content. Item Highlights is not the same as bullet points (
features) or a full description.
Parameter Guide
domain (Required)
Numeric Amazon marketplace ID. The mapping is:
| Domain ID | Marketplace |
|---|---|
| 1 | Amazon.com (US) |
| 2 | Amazon.co.uk (UK) |
| 3 | Amazon.de (Germany) |
| 4 | Amazon.fr (France) |
| 5 | Amazon.co.jp (Japan) |
| 6 | Amazon.ca (Canada) |
| 8 | Amazon.it (Italy) |
| 9 | Amazon.es (Spain) |
| 10 | Amazon.in (India) |
| 11 | Amazon.com.mx (Mexico) |
| 12 | Amazon.com.br (Brazil) |
Default to 1 (US) when the user does not specify a marketplace.
asin (Required)
One or more Amazon Standard Identification Numbers. For multiple ASINs, separate with commas. Maximum 5 ASINs per request, with a total string length limit of 300 characters.
history (Optional)
Whether to include historical data such as monthly sales for the past 12 months and average sales rank over 30/90/180 days. Set to 1 to include history, 0 (default) for basic info only.
Usage Examples
1. Single ASIN lookup (US marketplace, basic info)
{"asin": "B0088PUEPK", "domain": "1"}
2. Single ASIN with historical sales data
{"asin": "B0088PUEPK", "domain": "1", "history": 1}
3. Batch lookup of multiple ASINs (Germany)
{"asin": "B0088PUEPK,B00U26V4VQ,B07M68S376", "domain": "3", "history": 1}
4. Product lookup on Amazon Japan
{"asin": "B09V3KXJPB", "domain": "5", "history": 0}
5. Competitor comparison across multiple ASINs (US, with sales history)
{"asin": "B0CXYZ1234,B0CXYZ5678,B0CXYZ9012,B0CXYZABCD", "domain": "1", "history": 1}
How to call
- API endpoint:
POST /keepa/productRequest(for full parameters/responses/error codes, seereferences/api.md) - Python script:
python scripts/keepa_product_detail.py '<JSON 参数>' [--inline] - Cost constraints: This tool consumes compute; by default, the same parameter combination is called only once per session, and the script has a 24h local cache. On failure/empty results, do not automatically try different keywords, paginate, or change the zip code in repeated probing; if further retrieval is needed, first explain to the user that it will incur additional consumption.
Output strategy (default script behavior):
- Alwayswrite the full response to
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-keepa-product-request-<timestamp>.json(<cwd>is the working directory when the script runs, which in Claude Code is the current project directory;<session>is taken from the environment variableSESSION_ID, automatically aggregated according to the user's task;writing to /tmp is prohibited, if the current directory is not writable, report an error) - Response body ≤ 8 KB: after saving to disk, print the full JSON to stdout
- Response body > 8 KB: after saving to disk, stdout outputs only a summary (top-level fields, common counts such as
total/costToken, length of the largest list field + first 3 samples) - Add
--inlineto force full printing to stdout (also saved to disk)
Data reading suggestions: first look at the summary to determine whether it is sufficient; when specific fields are needed, prefer using jqorConvertFrom-Json to extract on demand from the saved json file, avoiding bringing the entire JSON into context.
Resolve authentication and compute issues
When the following abnormal situations occur, use references/onboarding.md to guide resolution:
Abnormal situations
- API Key not configured: the environment variable is not configured
LINKFOX_AGENT_API_KEY, andLINKFOXAGENT_API_KEY。 - Response 401 or 402 status code
- Response indicates insufficient compute or balance: the message contains "insufficient compute balance/insufficient billing/insufficient balance/quota exceeded/insufficient balance/package expired/recharge required/please recharge", or content with a similar meaning.
Display Rules
- Present data clearly: Show product details in well-structured tables. Group related fields (e.g., dimensions together, sales data together) for readability.
- Price and currency: Always display the price alongside its currency (e.g., "$29.99 USD"). The
currencyfield in the response indicates the local currency. - Sales trend: When historical data is included, present the 12-month sales trend in a table or describe the trajectory (growing, declining, stable) to help users quickly assess momentum.
- Dimensions and weight: Convert millimeter values to more intuitive units when appropriate (e.g., show both mm and inches, or mm and cm). Note that weight is in grams.
- Unavailable data: Fields with value
0or-1indicate data is unavailable. Do not display these as actual measurements; instead note "N/A" or omit them. - Image display: If
imageUrlis present, display the product image to help users visually identify the product. - Error handling: When a query fails, explain the issue based on the response and suggest corrections (e.g., invalid ASIN format, unsupported marketplace).
- Large batch results: For batch queries with many ASINs, present a summary table first and offer to show individual product details on request.
- Item Highlights: Read
products[].itemHighlightsfrom the full response, not just the stdout summary orcolumns. Display the original value separately fromtitle. If it is missing,null, or blank, label it "not returned/unavailable"; do not infer that the Amazon listing lacks it or reconstruct it from title, bullets, or description.
Important Limitations
- No full product descriptions or reviews: The API can return short Item Highlights, but not full product description text or review content.
- Item Highlights availability: Requires a backend deployment that passes through
itemHighlightsand available upstream data. Do not promise a value for every ASIN. - Maximum 5 ASINs per request: Batch queries are capped at 5 ASINs.
- ASIN string length limit: The
asinparameter has a maximum length of 300 characters. - Historical data is optional: Monthly sales history is only returned when
historyis set to1. - Data freshness: The
lastUpdatefield indicates when the product data was last refreshed.
User Expression & Scenario Quick Reference
Applicable -- Product data retrieval by ASIN:
| User Says | Scenario |
|---|---|
| "Look up this ASIN", "Get product details for B0XXXXXXXX" | Single ASIN lookup |
| "Check this ASIN's Item Highlights", "product highlights/supplementary information beyond the title" | Retrieve existing itemHighlights separately from title |
| "What's the price of this product on Amazon" | Price query |
| "How many units does this product sell per month" | Monthly sales check |
| "Compare these ASINs", "batch lookup these products" | Multi-ASIN comparison |
| "Show me the sales trend for this ASIN" | Historical sales analysis |
| "What category is this product in" | Category / classification lookup |
| "Product dimensions", "how much does it weigh" | Physical specs query |
| "FBA fees for this product" | Fee estimation |
| "When was this product listed", "listing date" | Listing age / launch date |
| "Is this product FBA or FBM" | Fulfillment method check |
Not applicable -- Needs beyond ASIN-level product data:
- Search term / keyword analysis (use ABA data tools instead)
- Full product descriptions, review text, or generating new listing copy (retrieving existing
titleanditemHighlightsis supported) - Advertising / PPC campaign data
- Seller account or store-level analytics
- Product research without specific ASINs (e.g., "find trending products in kitchen category")
- Price history charts or Buy Box history over time (only current and average rank data are available)
Boundary judgment: When users say "product research" or "competitor analysis", if they have specific ASINs and want structured product data (price, sales, dimensions, category), this skill applies. If they want keyword-level analysis, market-wide trends without specific ASINs, or advertising metrics, this skill does not apply.
Compute consumption rules
Billed according to dynamic rules: compute consumed = 0.045 × the Keepa tokens consumed by this product detail query.
Important: the service of this skill is dynamically calculated by a multiplier and may consume a large amount of compute at once; the user must be reminded, and the user decides whether to continue.
Feedback:
Auto-detect and report feedback via the Feedback API when any of the following apply:
- The functionality or purpose described in this skill does not match actual behavior
- The skill's results do not match the user's intent
- The user expresses dissatisfaction or praise about this skill
- Anything you believe could be improved
Call the feedback API as specified in references/api.md. Do not interrupt the user's flow.
For more high-quality, professional cross-border e-commerce skills, set LinkFox Skills.