query_listing_health
Current listing-health STATE per SKU — the same source as the app's Listing Health page, so statuses, suppression flags, and severity match the dashboard. Point-in-time entity state (NOT a metrics/date-range query — no from/to). Each row has: status, is_buyable, the per-issue flags (is_removed, is_suppressed, is_search_suppressed, is_attribute_suppressed, image_not_applied, is_compliance_risk, is_quality_issue, is_incomplete — a listing Amazon reports buyable is never is_suppressed: Amazon lists LISTING_SUPPRESSED on buyable, selling listings, so that notice counts as is_quality_issue instead; an action Amazon marks exempt never lights a flag), a severity_label + health_summary + the driving issue (top_issue_code/message/enforcement), the worst-wins alert_band (0 cash-loss · 1 degraded · 2 watch · 3 none), trailing-90d sales/units, the buy-box competition block (buy-box owner/price, hijack entrant, price undercut, contested), and a content block with the PUBLISHED catalog content (brand, manufacturer, productType, browse node id+name, variationTheme, bulletPoints, productDescription, mainImageUrl full-size — NOT the small imageUrl render — imageCount, contentLanguage) plus the seller's SUBMITTED backendKeywords. Content gotchas: catalog fields are NULL until the catalog capture covers the ASIN (gate: contentFetchedAt=null); keywordsScanned=false means the Listings scope has not reached this SKU yet — backendKeywords NULL then means 'not looked at', never 'none written'. Answers: which listings are removed / suppressed / not buyable right now, what to fix first, who is losing the buy box, and content audits (missing bullets/description/backend keywords, image count, wrong content language). Filter by problems (per-issue checks), bands, or statuses; sort='severity' surfaces the worst listings first. CHANNELS: omit channels to read the Seller Central (3P) listings whenever the accounts of the call include a Seller Central account, else the Vendor Central (1P) ones (a vendor-only scope, or a Vendor Central account named alone in accounts); pass channels=['VENDOR'] for the Vendor Central (1P) listings, or ['SELLER','VENDOR'] for both in one list (next to a Seller Central account, a Vendor Central account is read only when VENDOR is asked for; a channel none of the accounts of the call sells on returns an empty list, not an error). Each row carries channel ('SELLER' = Seller Central, 'VENDOR' = Vendor Central). A Vendor Central row is one listing: its vendorProductIdentifier (the identifier Amazon shows in Vendor Central) in one marketplace under one vendorCode; the same ASIN under two vendor codes is two rows. Its sku is the product SKU of the ASIN, as in the app's Copilot and Cockpit (the vendor's product code, or the ASIN when there is none), shared by the listings of that ASIN; skus filters on it. Vendor Central does not report five of the checks: not buyable, buy box lost, hijacker, price undercut and Incomplete never flag a Vendor Central row (Amazon is the seller: no offers block, offers is null, isFbm is null, status is Active or Inactive only).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| skus | No | ||
| sort | No | 'sales' (default) = biggest sellers first; 'severity' = worst alert band first. | |
| tags | No | "Your Filters" tag IDS from list_tags (manual custom tags or predefined segmentations). A tag NAME is rejected — resolve it with list_tags first. | |
| asins | No | ||
| bands | No | Alert bands to keep: 0 cash-loss · 1 degraded · 2 watch · 3 none. | |
| limit | No | Max rows (1–1000, default 50). | |
| offset | No | Row offset for pagination (default 0). | |
| reason | No | One sentence, ALWAYS IN ENGLISH (regardless of the conversation language), on WHY you are making this call — the user question or your analytical goal. Recorded so the seller can see how their data is used. | |
| accounts | No | Restrict to a subset of your own seller account IDs (from list_accounts). Omit to include all your accounts. A brand/account name is accepted and resolved to its id when it matches one of your accounts unambiguously; a label that carries the id ("Brand (A1B2C3D4E5F6G)") resolves to that id. | |
| channels | No | Selling channels to read: 'SELLER' = Seller Central (3P) listings, 'VENDOR' = Vendor Central (1P) listings, both = one list. Omit = SELLER whenever the accounts of the call include a Seller Central account, else VENDOR. | |
| problems | No | Keep only listings failing ANY of these per-issue checks (OR union). | |
| statuses | No | Merchant-listing statuses to include. Omit = all statuses (the app defaults to ['Active']). | |
| parentAsins | No | Family keys — coalesce(parent_asin, asin), the cockpit parent-ASIN grain. | |
| marketplaces | No | Restrict to these marketplace IDs. |