Tool Reference
Amazon Inventory MCP Tool Reference
Amazon Seller Central MCP reference for inventory tools: stock levels, order tracking, sales velocity, listing registry, shipment receiving, risk triage, and live pricing data.
Related paths
Hosted Amazon Seller Central MCP overview for Claude, ChatGPT, and custom agents.
Amazon seller data layerHow ads, inventory, orders, catalog, ranking, finance, and fulfillment data are structured for agents.
Claude connection walkthroughStep-by-step path from Seller Central OAuth to a Claude connector or MCP config.
ChatGPT Seller Central setupChatGPT-specific setup and examples for Amazon seller data through MCP.
Tools (29)
read
live api
read
get_fba_inventory
readGet FBA inventory snapshot. Fulfillable, reserved, inbound, and unfulfillable quantities per ASIN/SKU. Defaults to latest snapshot date.
When to use
Check current stock levels across FBA warehouses, including reserved, inbound, and unfulfillable quantities.
Parameters7
| Name | Type | Description |
|---|---|---|
asin | string | Filter by ASIN. |
sku | string | Filter by SKU. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to query (1-1000). Use a higher limit when the user asks for all matching rows; large responses are capped automatically. |
snapshot_date | string | Snapshot date (YYYY-MM-DD). Defaults to latest. |
sort_by | enum (fulfillable_quantity) | Column to sort by: fulfillable_quantity, reserved_quantity, unfulfillable_quantity, asin. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Check unfulfillable_quantity regularly. These units need removal orders or will incur fees.
- High reserved_quantity relative to fulfillable_quantity may indicate slow processing or customer-reserved units.
- Use snapshot_date to compare inventory levels over time.
get_fba_storage_fees
readGet FBA storage fee report rows. Monthly storage fees are reported by ASIN/FNSKU with SKU resolved from FBA inventory where possible; long-term storage charges include SKU/FNSKU/ASIN directly.
When to use
Answer SKU/ASIN-level FBA storage-fee questions, including monthly storage fee estimates and long-term storage charge rows. This does not cover AWD fees because Amazon does not expose AWD fee rows through the public AWD API.
Parameters12
| Name | Type | Description |
|---|---|---|
view | enum (monthly_storage) | monthly_storage or long_term_storage. |
asin | string | Filter by ASIN. |
sku | string | Filter by SKU. monthly_storage resolves SKU from the latest FBA inventory snapshot. |
fnsku | string | Filter by FNSKU. |
month_of_charge | string | monthly_storage only. Filter by Amazon month_of_charge. |
snapshot_date | string | monthly_storage only. Ingestion snapshot date; defaults to latest. |
start_date | string | long_term_storage only. Start charge snapshot date. |
end_date | string | long_term_storage only. End charge snapshot date. |
sort_by | enum | Column to sort by. Allowed columns depend on view. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (100) | Max rows to return (1-1000). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Use monthly_storage for the FBA monthly storage fee report at ASIN/FNSKU/fulfillment-center grain.
- Use long_term_storage for Amazon long-term storage charge rows with direct SKU/FNSKU/ASIN fields.
- For AWD fees, use settlement/account-level rows today or a manual Seller Central report import; the public AWD API exposes inventory and shipments, not fee rows.
get_inventory_health
readGet FBA inventory health. Age buckets, weeks of cover, LTSF charges, sell-through, and Amazon recommended order quantity field.
When to use
Inspect aging inventory, estimated long-term storage fees, weeks of cover, sell-through, and Amazon recommended order quantity values.
Parameters8
| Name | Type | Description |
|---|---|---|
sku | string | Filter by SKU. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to return (1-1000). |
snapshot_date | string | Snapshot date (YYYY-MM-DD). Defaults to latest. |
min_age_days | number | Only show items with inventory older than N days. |
excess_only | boolean (false) | Only show items with estimated LTSF charges > 0. |
sort_by | enum (available) | Column to sort by: available, weeks_of_cover_t30, estimated_ltsf_next_charge, sell_through, inv_age_365_plus_days, sku. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Use excess_only=true to quickly find items that will incur long-term storage fees.
- Sort by estimated_ltsf_next_charge descending to list the highest estimated long-term storage fee exposure first.
- Cross-reference with get_listing_registry to get the ASIN for each SKU.
Watch out
- This report only has SKU, not ASIN. Use get_listing_registry to map SKU to ASIN.
get_inventory_movements
readGet inventory ledger movements. Shipments, receipts, adjustments, customer orders, and returns by date/ASIN/SKU. Each row carries reference_id (the source document) and date_and_time (the event timestamp, UTC).
When to use
Track inventory movements over time to understand stock changes, investigate discrepancies, or audit inbound shipments. For Receipts events, reference_id is the inbound FBA shipment ID, so you can measure how long shipments take to be received at the fulfillment center.
Parameters9
| Name | Type | Description |
|---|---|---|
asin | string | Filter by ASIN. |
sku | string | Filter by SKU. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to query (1-1000). Use a higher limit when the user asks for all matching rows; large responses are capped automatically. |
start_date | string | Start date (YYYY-MM-DD). |
end_date | string | End date (YYYY-MM-DD). |
event_type | string | Filter by event type (e.g. Shipments, Receipts, CustomerOrders). |
sort_by | enum (date) | Column to sort by: date, quantity, asin. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Filter by event_type=Receipts to track inbound shipment receiving progress.
- On Receipts events, reference_id is the inbound FBA shipment ID. Join it to get_inbound_shipments (shipment_id) to measure created-to-received lead time, e.g. comparing ocean vs air.
- Receipts for one shipment can span several dates and FCs as units arrive. Use MIN(date) per reference_id for first-received and MAX(date) for fully-received.
- Use event_type=CustomerOrders to see daily outbound order volume per ASIN.
- Compare inbound (Receipts) vs outbound (CustomerOrders) to validate sell-through rates.
get_inventory_by_fulfillment_center
readAbsolute on-hand inventory broken down by fulfillment center. Returns ending warehouse balance per ASIN, SKU, FC, and disposition for the latest available snapshot date.
When to use
See how FBA inventory is physically distributed across Amazon's fulfillment center network, including daily flow components (receipts, shipments, adjustments) by FC.
Parameters9
| Name | Type | Description |
|---|---|---|
asin | string | Filter by ASIN. |
sku | string | Filter by SKU. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to query (1-1000). Use a higher limit when the user asks for all matching rows; large responses are capped automatically. |
snapshot_date | string | Snapshot date (YYYY-MM-DD). Defaults to the latest available date in the ledger summary. |
fulfillment_center | string | Filter to a specific FC code (e.g. ONT8). |
disposition | string | Filter by disposition (e.g. SELLABLE, CUSTOMER_DAMAGED). |
sort_by | enum (ending_warehouse_balance) | Column to sort by: ending_warehouse_balance, fulfillment_center, asin. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- ending_warehouse_balance is the absolute on-hand count per (ASIN, FC, disposition) at the close of the snapshot date.
- Filter by disposition=SELLABLE to focus on usable inventory and exclude damaged/defective units.
- in_transit_between_warehouses reflects units Amazon is moving between FCs that haven't arrived yet.
- Sum ending_warehouse_balance across FCs for a given ASIN/disposition to reconcile with get_fba_inventory totals.
get_awd_inventory
readGet AWD (Amazon Warehousing and Distribution) inventory snapshot. Inbound and on-hand quantities per SKU/FNSKU.
When to use
Check upstream inventory stored in AWD warehouses that will be automatically replenished to FBA.
Parameters6
| Name | Type | Description |
|---|---|---|
sku | string | Filter by SKU. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to return (1-1000). |
snapshot_date | string | Snapshot date (YYYY-MM-DD). Defaults to latest. |
sort_by | enum (total_onhand_quantity) | Column to sort by: total_onhand_quantity, total_inbound_quantity, sku. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- AWD on-hand is reported separately by get_days_of_cover but excluded from its cover numerator, since AWD is upstream of FBA and not directly fulfillable.
- Cross-reference with get_listing_registry to map SKU/FNSKU to ASIN.
- Use get_awd_shipments to track the status of inbound AWD shipments.
Watch out
- AWD data only has SKU and FNSKU, not ASIN. Use get_listing_registry for the mapping.
get_awd_shipments
readGet AWD shipment-level data. Shipment IDs, statuses, and timestamps. For per-SKU quantities within a shipment, use get_awd_shipment_items.
When to use
Track the status of AWD inbound shipments, check delivery timelines, or filter by shipment status.
Parameters7
| Name | Type | Description |
|---|---|---|
start_date | string | Filter shipments created after this date (YYYY-MM-DD). |
end_date | string | Filter shipments created before this date (YYYY-MM-DD). |
shipment_status | string | Filter by shipment status. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to return (1-1000). |
sort_by | enum (created_at) | Column to sort by: created_at, updated_at, shipment_status. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Use get_awd_shipment_items to see per-SKU quantities within a specific shipment.
- Filter by shipment_status to monitor in-transit or receiving shipments.
get_awd_shipment_items
readGet per-SKU line items from AWD shipments. SKU, quantity per shipment. Use to prorate AWD/AGL freight charges to specific ASINs. Defaults to latest snapshot.
When to use
Break down an AWD shipment into per-SKU quantities for cost allocation or to verify shipment contents.
Parameters6
| Name | Type | Description |
|---|---|---|
shipment_id | string | Filter by specific shipment ID. |
sku | string | Filter by specific SKU. |
snapshot_date | string | Snapshot date (YYYY-MM-DD). Defaults to latest. |
sort_order | enum (desc) | Sort order by snapshot_date. |
limit | number (20) | Max rows to return (1-1000). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Filter by shipment_id to see the per-SKU breakdown of a specific shipment.
- Use the quantities to prorate AWD/AGL freight charges to specific SKUs for profitability analysis.
Watch out
- AWD data only has SKU and FNSKU, not ASIN. Use get_listing_registry for the mapping.
get_inbound_shipments
readGet FBA inbound shipment data. Shipment IDs, statuses, destination fulfillment centers, and timestamps. Returns the current state of each shipment. For per-SKU receiving progress, use get_shipment_receiving_status.
When to use
Track FBA inbound shipments, check which fulfillment center is receiving, or monitor shipment status (WORKING, SHIPPED, RECEIVING, CLOSED).
Parameters7
| Name | Type | Description |
|---|---|---|
start_date | string | Only include shipments last refreshed on or after this date (YYYY-MM-DD). |
end_date | string | Only include shipments last refreshed on or before this date (YYYY-MM-DD). |
shipment_status | string | Filter by status (e.g., WORKING, SHIPPED, RECEIVING, CLOSED, CANCELLED). |
sort_by | enum (snapshot_date) | Column to sort by: snapshot_date, shipment_status, shipment_name. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to return (1-1000). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Use get_shipment_receiving_status to see per-SKU quantities and receiving progress within a shipment.
- Filter by shipment_status=RECEIVING to find shipments currently being checked in at Amazon.
get_shipment_receiving_status
readGet per-SKU receiving status for FBA inbound shipments. Shows quantity shipped vs quantity received by Amazon. Returns the current state of each shipment's items.
When to use
Track how many units Amazon has received per SKU in an inbound shipment, find receiving discrepancies, or verify shipment completeness.
Parameters6
| Name | Type | Description |
|---|---|---|
shipment_id | string | Filter by specific shipment ID. |
sku | string | Filter by specific seller SKU. |
snapshot_date | string | Only include rows last refreshed on this date (YYYY-MM-DD). Defaults to current state. |
sort_order | enum (desc) | Sort order by snapshot_date. |
limit | number (20) | Max rows to return (1-1000). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Compare quantity_shipped vs quantity_received to find receiving discrepancies.
- Filter by shipment_id to see the per-SKU breakdown of a specific inbound shipment.
Watch out
- Data uses SKU and FNSKU, not ASIN. Use get_listing_registry for the SKU-to-ASIN mapping.
get_sales_velocity
readGet product-level sales velocity with Orders API net_units_sold by ASIN/period plus Business Reports sales and traffic fields when available.
When to use
Answer units-sold-by-ASIN questions, analyze historical product velocity for inventory planning, or get periodized ASIN trends without treating order-header counts as units.
Parameters9
| Name | Type | Description |
|---|---|---|
asin | string | Filter by ASIN. |
sku | string | Filter by SKU. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to query (1-1000). Use a higher limit when the user asks for all matching rows; large responses are capped automatically. |
start_date | string | Start date (YYYY-MM-DD). |
end_date | string | End date (YYYY-MM-DD). |
time_grain | enum | Period grain: summary, day, week, or month. Defaults to day when asin is provided, otherwise summary. |
sort_by | enum (net_units_sold) | Column to sort by: net_units_sold, net_order_count, gross_order_header_count, cancelled_order_count, units_ordered, ordered_product_sales, sessions, page_views, buy_box_percentage, unit_session_percentage, avg_daily_units, asin, date, period_start, period_end. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Use net_units_sold for total units sold by ASIN/period; it comes from order items with positive quantity and excludes canceled parent orders.
- Results sort by net_units_sold (actual units sold) by default; pass sort_by=units_ordered for the Business Reports ordered-units column instead.
- Use time_grain=month for month-level ASIN units without asking the agent to sum daily rows manually.
- Business Reports fields such as units_ordered, ordered_product_sales, sessions, and page_views are included when available, but net_units_sold does not depend on Sales & Traffic coverage.
- The avg_daily_units value is used by get_days_of_cover for reorder calculations.
Watch out
- get_orders returns order headers containing an ASIN, including canceled orders; do not use get_orders row counts as units sold. Use net_units_sold here for units by ASIN/period.
get_listing_registry
readGet active listing registry rows, text-search matches, or brand-resolved ASIN sets from latest active listings joined to catalog metadata.
When to use
Use this source-surface tool to map ASINs to SKUs, search listings by product/brand/title text, or resolve the active ASIN set for a catalog brand before downstream inventory, sales, catalog, or ads analysis.
Parameters13
| Name | Type | Description |
|---|---|---|
view | enum (listings) | listings returns latest ASIN/SKU rows; search performs listing discovery; brand_asins resolves active ASINs for a brand. |
asin | string | Filter by ASIN. Exact match for listings/brand_asins, substring match for search. |
sku | string | Filter by seller SKU. Exact match for listings, substring match for search. |
query | string | search view only. Search across ASIN, SKU, active listing item_name, catalog title, and brand. |
brand | string | search or brand_asins view. Required for brand_asins. |
title | string | search view only. Filter active listing item_name or catalog title. |
brand_match | enum (contains) | brand_asins view only. contains or exact. |
include_title_matches | boolean (false) | brand_asins view only. Include item_name/catalog_title fallback matches. |
include_synthetic_skus | boolean (false) | Include reimbursement placeholder SKUs such as FBA...missing1. |
sort_by | enum | Sort column. Allowed columns depend on view. |
sort_order | enum (asc) | Sort direction: asc or desc. |
limit | number | Max rows (1-1000). Defaults to 20 for listings/search and 1000 for brand_asins. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Use view="search" when the user gives a brand, title phrase, product line, or broad listing description.
- Use view="listings" when ASIN/SKU is already known and you need the raw registry mapping.
- Use view="brand_asins" before brand-level analysis so the product set is not inferred from sampled pages.
Watch out
- This reads active listing rows only. Catalog items without a current active listing are not returned.
get_suppressed_listings
readGet suppressed/stranded listings. Items that are in FBA inventory but not buyable. Use this to identify affected SKUs/ASINs, quantities, observation dates, and source-reported issue context.
When to use
Find listings that have been suppressed or stranded, meaning you have inventory at FBA but the listing is not live for customers to purchase.
Parameters7
| Name | Type | Description |
|---|---|---|
asin | string | Filter by ASIN. |
sku | string | Filter by SKU. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to query (1-1000). Use a higher limit when the user asks for all matching rows; large responses are capped automatically. |
ob_date | string | Filter by observation date (YYYY-MM-DD). |
sort_by | enum (sku) | Column to sort by: asin, sku, quantity. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Suppressed listing rows identify FBA inventory attached to offers that are not currently buyable.
- Use affected SKUs/ASINs, quantities, and observation dates to show listing visibility gaps for customer or agent workflows.
- Common source-reported causes can include missing product information, listing policy violations, or brand disputes.
get_days_of_cover
readGet days-of-cover analysis. Computes how many days of stock remain per ASIN from FBA fulfillable + FBA inbound divided by recent sales velocity. AWD on-hand is reported as a separate field but excluded from the cover numerator (AWD is upstream of FBA, not directly fulfillable). Sorted by most urgent (lowest cover) first by default.
When to use
Identify products at risk of going out of stock by checking how many days of inventory remain at the current sales velocity.
Parameters8
| Name | Type | Description |
|---|---|---|
asin | string | Filter by ASIN. |
sku | string | Filter by SKU. |
limit | number (20) | Max rows to return (1-1000). |
sales_lookback_days | number (30) | Number of days to look back for sales velocity (7-90). |
min_days_of_cover | number | Only show ASINs with at least this many days of cover. |
max_days_of_cover | number | Only show ASINs with at most this many days of cover. |
sort_order | enum (asc) | Sort direction. Default asc shows most urgent first. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Days of cover is a core reorder signal: FBA fulfillable + FBA inbound divided by recent sales velocity. AWD on-hand is shown separately and not folded into the cover numerator.
- Set max_days_of_cover=30 to focus on ASINs that need reordering within the next month.
- The pipeline_total includes FBA fulfillable + reserved + inbound + AWD on-hand.
- Adjust sales_lookback_days for seasonal products (shorter for volatile periods, longer for stable).
get_inventory_risk_triage
readReturn inventory risk signals across FBA/AWD stock, sales velocity, inventory health, and suppressed-listing data.
When to use
Inspect stockout, overstock, aged inventory, stranded listing, and unfulfillable-unit risk states in one result set.
Parameters8
| Name | Type | Description |
|---|---|---|
asin | string | Filter by ASIN. |
sku | string | Filter by SKU. |
sales_lookback_days | number (30) | Sales velocity lookback window in days (7-90). |
stockout_threshold_days | number (21) | Flag stockout risk at or below this many days of cover. |
overstock_threshold_days | number (180) | Flag overstock risk at or above this many days of cover. |
risk_focus | enum (all) | Risk category: all, stockout, overstock, aged_inventory, suppressed_listing, unfulfillable_inventory, or data_gap. |
include_healthy | boolean (false) | Set true to include healthy rows after risks. |
limit | number (20) | Max risk rows to return (1-100). Values above 100 are clamped to 100. |
Tips
- Filter risk_focus=stockout to return rows at or below the selected days-of-cover threshold.
- Filter risk_focus=aged_inventory to return rows with aged inventory or estimated storage charges.
- Filter risk_focus=data_gap to return active FBA listings whose FBA inventory summary row is missing, leaving days of cover unknown.
- Use ASIN or SKU filters when investigating a product called out by another tool.
Watch out
- Suppressed listing risk is skipped when suppressed listings history is not yet available. Other inventory signals still run.
get_todays_sales
readAggregate today's orders in the seller's reporting time zone. Returns top ASINs by priced line-item revenue with units, order counts, priced/unpriced unit counts, deterministic estimate fields, and account-level totals in structuredContent.totals.
When to use
Get a quick real-time snapshot of today's Orders API sales broken down by ASIN, with explicit price-finality fields for current-day missing item prices.
Parameters3
| Name | Type | Description |
|---|---|---|
limit | number (20) | Max ASIN rows to return. |
fulfillment_channel | enum | Filter by fulfillment channel: AFN (FBA) or MFN (merchant). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- This is near-real-time, unlike Business Reports which have a ~72 hour delay.
- revenue uses revenue_basis=orders_api_priced_line_items_only; unpriced units are counted separately while prices are unavailable.
- estimated_revenue adds unpriced_unit_count * average_priced_unit_price when priced units exist; totals use account/day ASP and ASIN rows use ASIN-level ASP.
- Today is evaluated in the seller's reporting time zone, not UTC. Check sales_date and timezone_basis in structuredContent.totals.
- structuredContent.totals summarizes all matching orders, not just the displayed ASIN rows.
- Filter by fulfillment_channel=AFN to see only FBA orders.
Watch out
- Current-day revenue is not final. If unpriced_unit_count is greater than zero, revenue excludes those units and estimated_revenue is the deterministic ASP-filled estimate.
Related tools
get_sales_summary
readGet aggregated daily sales metrics by seller reporting date. Final rows use Sales API daily totalSales. Non-final current/recent Orders API rows keep total_sales as priced line-item revenue only and add unpriced_sales_estimate, estimated_total_sales, and sales_completeness_state. Does not break down by ASIN.
When to use
Get an account-level daily revenue series with explicit finality, source, and estimate fields. Check is_final and sales_completeness_state before comparing recent days to finalized baselines.
Parameters6
| Name | Type | Description |
|---|---|---|
start_date | string (7 days ago) | Seller reporting start date (YYYY-MM-DD). |
end_date | string (today) | Seller reporting end date (YYYY-MM-DD). |
sort_by | enum (metric_date) | Column to sort by: metric_date, total_sales, estimated_total_sales, unpriced_sales_estimate, unit_count, order_count, average_unit_price. |
sort_order | enum (asc) | Sort direction: asc or desc. |
limit | number (20) | Max rows to return (1-1000). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Current-day and recent non-final rows use the same Orders API priced line-item source as get_todays_sales.
- For is_final=false rows, total_sales_basis=orders_api_priced_line_items_only means total_sales excludes unpriced units; estimated_total_sales adds unpriced_unit_count * average_unit_price when priced units exist.
- Final historical rows use Sales API snapshots and set estimated_total_sales equal to total_sales.
- Rows include date_basis and timezone_basis so dashboards can reconcile daily totals to the seller's reporting calendar.
- Use for account-level trends. For per-ASIN breakdown, use get_sales_velocity instead.
- Default sort is ascending by date, giving you a natural time series.
Watch out
- Does not break down by ASIN. Use get_sales_velocity for per-ASIN data.
- The default window can contain only non-final recent rows; use is_final, revision_state, and diagnostics.sales_finality before treating rows as baseline-comparable.
get_orders
readList order headers with optional filters (seller reporting date range, order status, ASIN, fulfillment channel). Omitting start_date/end_date returns only the trailing 90 days ending today; pass explicit dates for any prior period.
When to use
Browse recent orders, check order statuses, or filter orders by specific criteria like ASIN or fulfillment method.
Parameters9
| Name | Type | Description |
|---|---|---|
start_date | string (90 days ago) | Start date (YYYY-MM-DD) for seller reporting purchase_date. Omit both dates to default to the trailing 90 days ending today. |
end_date | string (today) | End date (YYYY-MM-DD) for seller reporting purchase_date. For any prior period (e.g. a past month or year), pass explicit start_date and end_date. |
order_status | string | Filter by order status (e.g. Pending, Shipped, Canceled). |
asin | string | Filter orders containing this ASIN. |
fulfillment_channel | enum | Filter by fulfillment channel: AFN (FBA) or MFN (merchant). |
sort_by | enum (purchase_date) | Column to sort by: purchase_date, order_total_amount, order_status. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Maximum number of orders to return (max 200). The response reports the true total via diagnostics.total_matching_count when more rows match. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Omitting start_date/end_date returns only the last 90 days ending today — always pass explicit dates for a prior month or year (e.g. year-over-year analysis).
- The asin filter counts order headers containing the ASIN (gross, including cancelled/zero-quantity orders), not units sold; for per-ASIN units use get_order_details or product-level sales tools.
- Filter by order_status=Pending to monitor orders awaiting shipment.
- purchase_date is the seller reporting date; purchase_at and purchase_date_utc are returned for UTC audit and reconciliation.
- Order data is near-real-time, unlike Business Reports.
Related tools
get_order_details
readGet full details for a single order including the order header and all line items.
When to use
Look up a specific order by ID to see full details including line items, shipping address, prices, and promotions.
Parameters1
| Name | Type | Description |
|---|---|---|
order_id* | string | The Amazon order ID to look up. |
* required
Tips
- Use get_orders first to find the order_id, then use this tool for full details.
- The response includes both the order header and all line items with per-item pricing.
- Check promotion_ids and promotion_discount_amount to understand discount impact on specific items.
Related tools
get_returns
readGet FBA return records. Filter by date range, ASIN, SKU, return reason, or disposition status.
When to use
Investigate return trends, find products with high return rates, or check the disposition of returned items.
Parameters10
| Name | Type | Description |
|---|---|---|
start_date | string | Start date (YYYY-MM-DD) for return_date. |
end_date | string | End date (YYYY-MM-DD) for return_date. |
asin | string | Filter by ASIN. |
sku | string | Filter by SKU. |
reason | string | Filter by return reason (e.g. DEFECTIVE, CUSTOMER_RETURN). |
disposition | string | Filter by item disposition (e.g. SELLABLE, DAMAGED). |
sort_by | enum (return_date) | Column to sort by: return_date, quantity, asin, reason. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Maximum number of rows to return (1-1000). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Filter by reason=DEFECTIVE to identify potential product quality issues.
- Check customer_comments for insights into why customers are returning products.
- High return rates on specific ASINs may indicate listing accuracy issues or product defects.
Related tools
get_reimbursements
readGet FBA reimbursement records. Filter by date range, ASIN, or reason. Sorted by amount_total by default to surface highest-value reimbursements first.
When to use
Track FBA reimbursements for lost, damaged, or destroyed inventory, and identify patterns that may need investigation.
Parameters8
| Name | Type | Description |
|---|---|---|
start_date | string | Start date (YYYY-MM-DD) for approval_date. |
end_date | string | End date (YYYY-MM-DD) for approval_date. |
asin | string | Filter by ASIN. |
reason | string | Filter by reimbursement reason (e.g. LOST_INBOUND, DAMAGED_WAREHOUSE). |
sort_by | enum (amount_total) | Column to sort by: approval_date, amount_total, reason, asin. |
sort_order | enum (desc) | Sort direction: asc or desc. |
limit | number (20) | Maximum number of rows to return (1-1000). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Sort by amount_total descending to focus on the highest-value reimbursements first.
- Filter by reason=LOST_INBOUND to track inventory that went missing during inbound shipments.
- Compare reimbursement amounts against product value to ensure you are being fully reimbursed.
get_seasonality_index
readGet the seasonality index for ASINs. A pre-computed 52-week demand curve built from historical sales, sessions, and revenue data. Index value of 1.0 = average week, >1.0 = above-average demand, <1.0 = below-average.
When to use
Plan inventory and advertising around seasonal demand patterns, or understand which weeks have peak and trough demand.
Parameters6
| Name | Type | Description |
|---|---|---|
asin | string | Filter by ASIN. Omit for a summary of all ASINs ranked by seasonal amplitude. |
min_confidence | number | Only show data with at least this confidence score (0-1). |
event | string | Filter to weeks matching a retail event (e.g. Prime Day, BFCM, Christmas, New Year, Back to School). |
limit | number (20) | Max rows to return (1-1000). |
sort_order | enum (desc) | Sort direction. Default desc shows most seasonal first. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Use without ASIN to get a summary view ranked by amplitude (most seasonal products first).
- Use with a specific ASIN to get the full 52-week demand curve for inventory planning.
- Filter by event to see how your products perform during specific retail events.
- Combine with get_days_of_cover to ensure you have enough inventory ahead of peak weeks.
Related tools
live api
get_current_rank
live apiCheck the current search rank position for a keyword in real time. Returns the top results from Amazon catalog search. If a target ASIN is provided, highlights its position.
When to use
Spot-check where a product currently ranks for a specific keyword in Amazon search results, right now.
Parameters3
| Name | Type | Description |
|---|---|---|
keyword* | string | Search keyword to check ranking for (1-200 characters). |
target_asin | string | Your ASIN to find in results. If provided, highlights its position. |
max_pages | number (3) | Number of result pages to check, 20 results per page (1-5). |
* required
Tips
- Use target_asin to quickly see if your product appears and at what position.
- Results reflect the current moment, so they may differ from daily rank snapshots.
- Increase max_pages to 5 if your product is expected to rank beyond page 3.
Watch out
- This is a live API call. Results vary throughout the day due to Amazon search personalization and A/B testing.
Related tools
get_offer_listings
live apiSee who is selling a product right now. Returns current Amazon offer listings for an ASIN, including seller IDs, prices, fulfillment method, seller feedback, and Buy Box status.
When to use
Investigate the competitive landscape for a specific ASIN by seeing active offers, seller identifiers, prices, and seller reputation.
Parameters3
| Name | Type | Description |
|---|---|---|
asin* | string | ASIN to check offers for. |
item_condition | enum (New) | Item condition to filter offers by: New, Used, Collectible, Refurbished, or Club. |
customer_type | enum (Consumer) | Whether to return Consumer or Business offers. |
* required
Tips
- Check seller feedback ratings to understand the quality of your competition.
- Compare FBA vs merchant-fulfilled offer prices to gauge fulfillment advantage.
- Use customer_type=Business when you need Amazon Business offer visibility instead of the consumer view.
- Low total offer count suggests less competitive pressure.
get_subscribe_and_save
live apiGet Amazon Subscribe & Save offer status, historical snapshots, and Amazon-provided Subscribe & Save metrics.
When to use
Use this to inspect source-provided Subscribe & Save offer eligibility, offer price, active subscriptions, inventory risk, delivery forecasts, offer-level metrics, and seller/brand-level retention metrics.
Parameters11
| Name | Type | Description |
|---|---|---|
view | enum | Data view: offers, offer_history, offer_metrics, or seller_metrics. Defaults to offers, or offer_history when dates are provided without a view. |
asins | array | Optional ASIN filters. Max 20 ASINs for live offer status. |
skus | array | Optional SKU filters for metrics views where Amazon supports SKU filters. |
brand_names | array | Optional brand filters for seller_metrics where Amazon supports brand-level metrics. |
metrics | array | Optional Amazon metric allowlist for seller_metrics, such as SUBSCRIBER_RETENTION or ACTIVE_SUBSCRIPTIONS. |
time_period_type | enum (PERFORMANCE) | Metrics period type: PERFORMANCE or FORECAST. |
aggregation_frequency | enum (WEEK) | Metrics aggregation frequency: DAY, WEEK, MONTH, QUARTER, or YEAR. |
start_date | string | For offer_history, reads stored daily snapshots. For metrics views, starts the Amazon metric interval. |
end_date | string | History or metrics interval end date. Defaults to today for history and metrics views. |
limit | number (20) | Max live offers, historical rows, or offer metric rows to return. Live offer calls are capped at 100 by Amazon. |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
Tips
- Use view=offers for current Subscribe & Save offer status and Amazon current S&S offer price.
- Use view=offer_metrics for ASIN/SKU-level active subscriptions, subscription revenue, shipped units, coupon share, and forecasts.
- Use view=seller_metrics for seller/brand-level retention fields like subscriberRetentionFor30Days and subscriberRetentionFor90Days.
- Use the delivery condition and metric fields as Amazon source-provided status, not agentcentral-authored advice.
Watch out
- Amazon's current Subscribe & Save offer price may not equal every subscriber's locked-in net price after coupons or promotions.
- Amazon exposes 30/90-day retention as seller/brand-level metrics, not true per-ASIN subscriber cohorts.
get_fba_eligibility
live apiCheck if an ASIN is eligible for FBA (Fulfillment by Amazon). Returns eligibility status and any Amazon ineligibility reason codes.
When to use
Verify FBA eligibility before sending inventory to Amazon, especially for new products or products in restricted categories.
Parameters2
| Name | Type | Description |
|---|---|---|
asin* | string | ASIN to check FBA eligibility for. |
program | enum (INBOUND) | FBA program to check: INBOUND or COMMINGLING. |
* required
Tips
- Check eligibility before creating inbound shipments to avoid rejected inventory.
- COMMINGLING eligibility means your units can be commingled with other sellers identical products.
- Amazon returns ineligibility reason codes rather than full remediation guidance, so pair this with get_listing_restrictions when a product is blocked.
get_listing_restrictions
live apiCheck listing restrictions for an ASIN. Returns any restrictions on selling the product in a specific condition, including approval requirements and reasons.
When to use
Before listing a product, check if there are any category restrictions, approval requirements, or selling limitations.
Parameters3
| Name | Type | Description |
|---|---|---|
asin* | string | ASIN to check restrictions for. |
condition_type | enum (new_new) | Product condition to check. Options: new_new, new_open_box, new_oem, refurbished_refurbished, used_like_new, used_very_good, used_good, used_acceptable, collectible_like_new, collectible_very_good, collectible_good, collectible_acceptable, club_club. |
reason_locale | string | Optional locale for localized reason text, for example en_US. |
* required
Tips
- No restrictions returned means you are clear to list in that condition.
- Restriction responses may include approval links that you can follow to apply for category approval.
- Check multiple condition types if you plan to sell in both new and used conditions.
Related tools
hybrid
get_buybox_status
hybridCheck current Buy Box status for ASINs, or provide a date window to return stored Buy Box win-rate history from daily pricing snapshots.
When to use
Check whether you currently own the Buy Box, or use a date window to measure how consistently you kept it over time.
Parameters5
| Name | Type | Description |
|---|---|---|
asins* | array | ASINs to check Buy Box status for (1-20, string array). |
start_date | string | Start date (YYYY-MM-DD). When provided, switches to pricing-history mode. |
end_date | string | End date (YYYY-MM-DD). Defaults to today when using history mode. |
limit | number (100) | Max historical rows to return (1-1000). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
* required
Tips
- Losing the Buy Box directly impacts sales since most purchases go through the Buy Box winner.
- Compare your price against the Buy Box price to understand competitiveness.
- Check total offer listings count to gauge competitive intensity.
- Provide start_date/end_date to get daily ownership history plus range win-rate columns from stored pricing snapshots.
Watch out
- Without a date window this is a live point-in-time snapshot. With a date window it uses daily pricing snapshots, so intraday shifts are not captured.
- Buy Box loss is only one buyability signal. For a full 'can buyers buy this right now' check, fan out across get_listing_restrictions, get_fba_eligibility, and get_suppressed_listings.
get_competitive_pricing
hybridGet competitive price points for ASINs. Defaults to live SP-API data, or provide a date window to return stored pricing history from daily snapshots.
When to use
Get a complete live pricing view for your ASINs, or inspect how Buy Box and lowest non-featured prices moved over time.
Parameters5
| Name | Type | Description |
|---|---|---|
asins* | array | ASINs to check competitive pricing for (1-20, string array). |
start_date | string | Start date (YYYY-MM-DD). When provided, switches to pricing-history mode. |
end_date | string | End date (YYYY-MM-DD). Defaults to today when using history mode. |
limit | number (100) | Max historical rows to return (1-1000). |
include_raw_rows | boolean (true) | Set false to return a compact row preview. Defaults to true; large result sets are capped automatically to keep the response manageable. |
* required
Tips
- Compare landed prices (listing price + shipping) for a true cost comparison.
- Check if your price is the Buy Box price (price type "Buy Box") vs lowest non-featured.
- Use alongside get_buybox_status to see both price points and Buy Box ownership.
- Provide start_date/end_date to get daily pricing snapshots for trend analysis and price-change review.
Watch out
- Without a date window this is a live API call. With a date window it returns the stored daily pricing snapshots, not every intraday change.