This skill and linkfox-amazon-store-auth belong to the same Amazon Store series: depends on linkfox-amazon-store-auth store selection (sellerId+region); directly POST /spApi/developerProxy pass in sellerId+region, the token is parsed by the server (do not pass amzAccessToken, unless for compatibility with legacy calls). Forward GET。
Note: the interface belongs to Customer Feedback (buyer reviews/return insights), not the Orders order API. For orders see
linkfox-amazon-store-orders。
Call method
- API endpoint:
POST /spApi/developerProxy(different operations are distinguished by request body; for complete parameters/responses/error codes seereferences/api.md) - Python script:
python scripts/<脚本名>.py '<JSON 参数>' [--inline](available scripts see the script overview above) - Cost constraints: this tool consumes compute power; on failure/empty results do not automatically change keywords, page, or repeatedly probe; if continued retrieval is needed, first explain to the user that additional consumption will be incurred.
Output strategy (script default behavior):
- Alwayswrite the complete response to
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-store-customer-feedback-<timestamp>.json(<cwd>is the working directory when the script executes, which in Claude Code is the current project directory;<session>is taken from the environment variableSESSION_ID, automatically aggregated according to the user 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 complete 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, preferentially use jqorConvertFrom-Json to extract on demand from the saved json file, avoiding the entire JSON entering the context.
Resolve authentication and compute power 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 power 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 similar meaning.
Official reference index
| Capability | Documentation |
|---|---|
| getItemReviewTopics | getItemReviewTopics |
| getItemBrowseNode | getItemBrowseNode |
| getBrowseNodeReviewTopics | getBrowseNodeReviewTopics |
| getItemReviewTrends | getItemReviewTrends |
| getBrowseNodeReviewTrends | getBrowseNodeReviewTrends |
| getBrowseNodeReturnTopics | getBrowseNodeReturnTopics |
| getBrowseNodeReturnTrends | getBrowseNodeReturnTrends |
Prerequisites
- Depends on
linkfox-amazon-store-auth。 - usually requires Brand Analytics or Selling Partner Insights and other roles; sites are subject to official information (common US/UK/DE, etc.).
- ASIN is generallychild ASIN; topics-type interfaces require
sortBy:MENTIONSorSTAR_RATING_IMPACT(often call each once to compare).
Current Capabilities
| Script | path key points |
|---|---|
get_item_review_topics.py |
.../items/{asin}/reviews/topics |
get_item_browse_node.py |
.../items/{asin}/browseNode |
get_item_review_trends.py |
.../items/{asin}/reviews/trends |
get_browse_node_review_topics.py |
.../browseNodes/{browseNodeId}/reviews/topics |
get_browse_node_review_trends.py |
.../browseNodes/{browseNodeId}/reviews/trends |
get_browse_node_return_topics.py |
.../browseNodes/{browseNodeId}/returns/topics |
get_browse_node_return_trends.py |
.../browseNodes/{browseNodeId}/returns/trends |
The prefixes are all customerFeedback/2024-06-01/. Shared modules:_spapi_customer_feedback_common.py。
Quick Parameters
- Common:
sellerId、region、marketplaceId(ormarketplaceIdstake the first item). - ASIN type:
asin; the topics type additionally requiressortBy。 - Browse node type:
browseNodeId(you can firstget_item_browse_nodeto obtain it).
Scripts
export LINKFOXAGENT_API_KEY="<your-key>"
python scripts/get_item_review_topics.py '{"sellerId":"A1...","region":"NA","asin":"B0...","marketplaceId":"ATVPDKIKX0DER","sortBy":"MENTIONS"}'
python scripts/get_item_browse_node.py '{"sellerId":"A1...","region":"NA","asin":"B0...","marketplaceId":"ATVPDKIKX0DER"}'
python scripts/get_browse_node_review_topics.py '{"sellerId":"A1...","region":"NA","browseNodeId":"123456","marketplaceId":"ATVPDKIKX0DER","sortBy":"STAR_RATING_IMPACT"}'
Display Rules
- First look at
developerProxy.errcode/httpStatus, then read the fields parsed by each script (such asitemReviewTopics)。 - The gateway whitelist must include
customerFeedback/2024-06-01/。 - The data refresh frequency is subject to Amazon (usually weekly).
Amazon SP-API Interface Protection and Retry Guidelines
When the same store continuously receives 400, 403, 404, or 429 from Amazon SP-API, the gateway returns 450, 453, 454, or 459 and briefly cools down. These custom status codes are not native Amazon statuses and do not indicate account suspension; the purpose is to avoid continuous anomalies or high-frequency calls increasing store risk.
| Status and message | Scope | Trigger and cooldown | Handling |
|---|---|---|---|
450:400,请求异常,请优化您的参数 |
Store + interface | More than 3 times within 60 seconds: 5 minutes; more than 4 times within 10 minutes: 20 minutes | Stop retrying with the original parameters, and check required fields, marketplace, ID, date, and request body |
453:403,店铺未授权,请先授权 |
All interfaces of the store | More than 2 times within 60 seconds: 5 minutes; more than 4 times within 10 minutes: 30 minutes | Stop calling this store, and check authorization, permissions, store ownership, and region |
454:404,资源不存在,请优化您的参数 |
Store + interface | More than 3 times within 60 seconds: 5 minutes; more than 4 times within 10 minutes: 30 minutes | Confirm the resource ID, owning store/site, resource status, and interface path |
459:429限流中,请降低频率 |
Store + interface | First time: 15 seconds; more than 2 times within 2 minutes: 30 seconds; more than 4 times within 3 minutes: 2 minutes | Reduce concurrency, pagination, and polling frequency and back off step by step |
- Immediately stop automatic or concurrent retries, and do not bypass protection by switching scripts or repeatedly creating tasks; prioritize following
retryAfter、blockedUntil, and when there is none, follow the duration descriptions in the table. - For 450/453/454, you must first correct the parameters, authorization, or resource identifier, and after the cooldown retry cautiously at most once; if triggered again, stop calling. During 453, stop all SP-API for that store.
- Keep existing task IDs such as
reportId、feedId; when the result of a write operation is uncertain, query the status first and do not directly replay. - Explain store protection to the user first, then give the reason, handling, and waiting time. You can reply: "To protect the security of your Amazon store, it has been detected that Amazon SP-API continuously returned {reason}, and a brief protection period is currently in effect. Please first {handling action}, and try again after an estimated {waiting time}; this does not mean account suspension, nor is it a plan or computing power limit." Do not only say "LinkFox rate limiting" or "server busy".
Computing power consumption rules
No computing power is consumed.
Feedback: skillName:linkfox-amazon-store-customer-feedback。
More cross-border skills:LinkFox Skills