Selling partnerRevelyst Inc.Vendor group ×11 · Seller account ×3US · CA · MX53 critical alerts unactionedSupabase · synced Aug 27, 10:10 PM UTC
SP-API Integration
How this console reaches Amazon: one self-authorised Selling Partner API application, three marketplaces, 10 roles (7 granted), 18 scheduled report pulls and 10 push subscriptions. Connection state as of Aug 27, 2026. Credentials shown masked, and none of them are real.
Connected accounts
4
1 Seller Central, 3 vendor groups
Marketplaces
3
NA region, one endpoint
Granted roles
7 of 10
3 PII roles left ungranted
Scheduled pulls
18
Reports, Vendor API, Data Kiosk
Pulls healthy
16 of 18
1 failed, 1 late
Subscriptions active
8 of 10
1 in error
Events ingested 24h
76K
EventBridge + SQS
Throttled calls 24h
167
4 operations affected
2 feeds degraded, with downstream screens already drifting. GET_VENDOR_TRAFFIC_REPORT (Vendor traffic (glance views)) last succeeded Aug 27, 10:50 AM, so glance views on Sales & Traffic go stale for every vendor-channel brand: conversion and unit-session rates there are computed on a frozen denominator and will read high until the pull recovers. GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT is past its window (Weekly Tue 10:00); search-term share on Brand Breakouts is one cycle behind. BRANDED_ITEM_CONTENT_CHANGE is in ERROR, so unauthorised copy and image edits on branded detail pages stop being detected: a third-party contribution can overwrite a title or bullet set and nothing raises a catalog alert until the next full listings pull. Both are re-grant or re-subscribe operations, not code changes, and neither is self-healing.
ConnectionDeveloper Central application profile · Login with Amazon
Application type
SP-API private application, self-authorised
LWA client id
amzn1.application-oa2-client.••••4c7e
Authorisation model
Login with Amazon refresh token per selling partner, rotated quarterly
Region
North America (us-east-1)
Endpoint
https://sellingpartnerapi-na.amazon.com
Request signing
LWA access token only (AWS SigV4 signing was retired for SP-API)
Restricted Data Token
Not requested: no PII roles are granted, so no RDT is required
Token cache
Access token valid 1 hour, refreshed at 55 minutes
Seller id
A2••••••••9QK7
Vendor group codes
RVLYS, RVOUT, RVRGT
Brands mapped
14 across 3 segments
ASINs in scope
1,448
MarketplacesgetMarketplaceParticipations
CountryMarketplace IDChannelsASINsStatus
United StatesATVPDKIKX0DERVendor Central + Seller Central1,448ACTIVE
CanadaA2EUQ1WTGCTBG2Vendor Central + Seller Central898ACTIVE
MexicoA1AM78C64UM0Y8Seller Central only405LIMITED
Roles and scopesDeveloper Central role grants · 7 of 10 granted
RoleGrantedData classUsed by
Inventory and Order TrackingGrantedNo PIIInventory Health, Replenishment, Alerts
Amazon FulfillmentGrantedNo PIIFulfillment Centers, Shipments, Reimbursements
Product ListingGrantedNo PIICatalog Health
PricingGrantedNo PIIPricing & Buy Box
Finance and AccountingGrantedNo PIIFees & Profitability, Reimbursements
Selling Partner InsightsGrantedNo PIISales & Traffic, Overview
Brand AnalyticsGrantedNo PIISales & Traffic
Buyer CommunicationNot grantedPII-
Direct-to-Consumer ShippingNot grantedPII-
Tax InvoicingNot grantedPII-
The 3 ungranted roles are ungranted on purpose. Requesting a PII scope (Buyer Communication, Direct-to-Consumer Shipping, Tax Invoicing) puts the application into Amazon's Data Protection Policy audit track: annual security questionnaire, encryption and retention attestations, and penetration-test evidence. No screen in this console needs a buyer name, address or email, so the application stays outside that scope and every response it handles is aggregate or ASIN-level.
Scheduled data pullsReports API createReport / Vendor Retail Analytics / Data Kiosk
Report typeWhat it feedsAPICadenceLast runNext runRowsStatus
GET_VENDOR_TRAFFIC_REPORTVendor traffic (glance views)VENDOR APIDaily 10:30 UTCAug 27, 10:50 AMAug 28, 10:04 AM2,216FAILED
GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORTBrand analytics: search termsSP APIWeekly Tue 10:00Aug 26, 10:36 AMSep 2, 10:56 AM100,000LATE
GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATAFBA inventory: unsuppressedSP APIEvery 4 hoursAug 27, 12:14 PMAug 27, 4:32 PM4,187HEALTHY
GET_FBA_INVENTORY_PLANNING_DATAInventory planning (age, DOS, IPI)SP APIDaily 06:00 UTCAug 27, 6:30 AMAug 28, 6:40 AM3,962HEALTHY
GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORTRestock recommendationsSP APIDaily 07:00 UTCAug 27, 7:03 AMAug 28, 7:22 AM2,411HEALTHY
GET_AFN_INVENTORY_DATA_BY_COUNTRYAFN inventory by countrySP APIDaily 06:30 UTCAug 27, 6:04 AMAug 28, 6:15 AM5,104HEALTHY
GET_STRANDED_INVENTORY_UI_DATAStranded inventorySP APIDaily 15:00 UTCAug 27, 3:14 PMAug 28, 3:42 PM118HEALTHY
GET_LEDGER_DETAIL_VIEW_DATAInventory ledger: detail viewSP APIDaily 05:00 UTCAug 27, 5:17 AMAug 28, 5:39 AM26,840HEALTHY
GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATAFBA customer returnsSP APIDaily 08:00 UTCAug 27, 8:43 AMAug 28, 8:28 AM942HEALTHY
GET_FBA_REIMBURSEMENTS_DATAFBA reimbursementsSP APIDaily 08:30 UTCAug 27, 8:00 AMAug 28, 8:26 AM407HEALTHY
GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATAAged inventory surchargeSP APIWeekly Mon 09:00Aug 25, 9:04 AMSep 1, 9:55 AM1,633HEALTHY
GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILESettlement: flat file v2SP APIOn Amazon closeAug 23, 3:32 AMSep 6, 3:05 AM88,214HEALTHY
GET_SALES_AND_TRAFFIC_REPORTSales & traffic by ASINSP APIDaily 09:00 UTCAug 27, 9:53 AMAug 28, 9:55 AM1,348HEALTHY
GET_VENDOR_SALES_REPORTVendor sales (Retail Analytics)VENDOR APIDaily 10:00 UTCAug 27, 10:08 AMAug 28, 10:11 AM2,216HEALTHY
GET_VENDOR_INVENTORY_REPORTVendor inventory (sourceable, on-hand)VENDOR APIDaily 10:15 UTCAug 27, 10:07 AMAug 28, 10:38 AM2,216HEALTHY
GET_VENDOR_FORECASTING_REPORTVendor demand forecastVENDOR APIWeekly Mon 11:00Aug 25, 11:10 AMSep 1, 11:41 AM1,904HEALTHY
GET_VENDOR_REAL_TIME_INVENTORY_REPORTVendor real-time inventoryVENDOR APIHourlyAug 27, 3:45 PMAug 27, 4:42 PM2,216HEALTHY
salesAndTrafficByAsinData Kiosk: sales & traffic GraphQLDATA KIOSKDaily 09:30 UTCAug 27, 9:15 AMAug 28, 9:24 AM1,348HEALTHY
Push notificationsNotifications API createSubscription · destination per type
Notification typeDestinationStatusEvents 24hPurpose
BRANDED_ITEM_CONTENT_CHANGEEventBridgeERROR-Unauthorised copy edits: SQS policy needs re-grant
FEE_PROMOTIONEventBridgePENDING-Fee change early warning
ANY_OFFER_CHANGEDEventBridgeACTIVE41,822Buy box and competitive price monitoring
LISTINGS_ITEM_STATUS_CHANGEEventBridgeACTIVE316Suppression detection inside 2 minutes
LISTINGS_ITEM_ISSUES_CHANGEEventBridgeACTIVE204Catalog health queue
FBA_INVENTORY_AVAILABILITY_CHANGESSQSACTIVE12,904Live days-of-supply recompute
FBA_OUTBOUND_SHIPMENT_STATUSSQSACTIVE2,211Fulfilment exception tracking
ORDER_CHANGEEventBridgeACTIVE18,740Order-level velocity signal
REPORT_PROCESSING_FINISHEDSQSACTIVE96Report ingestion pipeline trigger
PRODUCT_TYPE_DEFINITION_CHANGEEventBridgeACTIVE7Attribute schema drift
Why two latencies exist in this app. Notifications land on an EventBridge bus or an SQS queue, a small consumer normalises the payload and writes it to Supabase, and the alert rules evaluate on write rather than on a poll. That is why buy-box loss and suppression alerts appear within minutes of the event, while anything sourced from a report (fees, settlement, aged inventory, vendor traffic) can only move on the report cadence shown above. When a number on another page looks behind, the row that explains it is in one of these two tables.
Rate limits and throttlingx-amzn-RateLimit-Limit headers, trailing 24h
OperationRate / secBurstUsage of quotaThrottles 24h
getPricing (competitive)0.50001
92%
118
getInventorySummaries2.02
78%
41
searchCatalogItems2.02
61%
6
getReportDocument0.016715
51%
-
createReport0.016715
44%
2
getCatalogItem5.05
34%
-
getPurchaseOrders (Vendor)10.010
22%
-
submitShipmentConfirmations10.010
14%
-
submitAcknowledgement (Vendor)10.010
8%
-
createFulfillmentOrder2.030
3%
-
The client holds a per-operation token bucket and retries a 429 with jittered exponential backoff, so a throttle costs latency rather than a dropped record. The binding constraint is getPricing competitive pricing at 0.5 requests per second: at 1,448 ASINs a full polled sweep of buy-box state takes over an hour, which is why it currently runs at 92% of quota with 118 throttles in the last 24 hours. Buy-box and offer changes are therefore taken from the ANY_OFFER_CHANGED notification, which carries the same signal push-side at no quota cost, and getPricing is reserved for on-demand checks when an operator opens a single ASIN.
Data flowAuthorise, pull, normalise, evaluate, render
  1. 1Authorise. The selling partner authorises the application in Seller Central or Vendor Central once, the app stores the returned refresh token per partner, and every call exchanges that token for a one-hour LWA access token.
  2. 2Request. A cron worker calls createReport for each schedule above and createSubscription once per notification type, so the same domain is covered by a slow authoritative feed and a fast event feed.
  3. 3Collect. The worker polls getReport until the processing status is DONE, then getReportDocument returns a pre-signed URL to a gzipped tab-delimited (or JSON, for Data Kiosk) document it streams and parses.
  4. 4Normalise. Rows are mapped onto the app's camelCase model, keyed on ASIN, FC code, PO number or claim id, and upserted into the Supabase tables listed on Data Admin.
  5. 5Evaluate. Alert rules run on write for event-sourced tables and on cron for report-sourced tables, comparing each record against its threshold and writing an alert plus an email or Slack notification when it crosses.
  6. 6Render. Every page in this app is an async server component that reads through one accessor, so nothing in the UI knows or cares whether the row came from Amazon an hour ago or from the demo generator.