Rate limiting
API rate limiting is a crucial mechanism used to control the number of API requests a seller can make in a given time period. This ensures the stability and reliability of the API service by preventing abuse and overuse.
Benefits
API rate limiting provides multiple advantages that enhance overall service efficiency and security.
- Enhanced performance: By limiting the number of requests, APIs can maintain optimal performance levels, ensuring that all users experience consistent and reliable service.
- Fair usage: Rate limits ensure that resources are distributed fairly among all users, preventing any single user from monopolizing the service.
- Protection against abuse: Rate limiting helps protect the API from malicious attacks such as Denial of Service (DoS), where an attacker overwhelms the service with excessive requests.
- Improved security: It acts as a layer of security by reducing the risk of automated scraping and other unauthorized activities.
By implementing API rate limiting, Walmart aims to offer a more secure, stable, and fair service to all users, enhancing the overall user experience.
API usage limits (Rate limits and throttling)
Walmart imposes limits on its API usage to ensure fair resource usage and protect platform stability. All Walmart API users are responsible for ensuring their API usage remains within these limits.
The API usage is restricted in two ways:
Rate limits
- Definition: Limits the number of API requests allowed within a particular timeframe.
- Variability: Rate limits vary by API.
- Consequences: If rate limits are exceeded, then you will be throttled, receiving a
429 – Too Many Requests
error code response.
Max file size limits
- Definition: Limits the file size allowed for different API feed types.
- Variability: File size limits vary by feed type.
- Consequences: If file size limits are exceeded, then your request will be denied, receiving a
413 – Payload Too Large
error code response.
Algorithm for rate limits
Walmart utilizes a token bucket algorithm to enforce rate limits. Imagine a bucket that holds a fixed number of tokens, each representing an API call. When there are tokens in the bucket, an API request is allowed, and a token is removed from the bucket. If there are no tokens left, the API request is denied. The bucket is continuously replenished with tokens at a fixed rate. For example, if the rate limit is 20 requests per hour, the limit may replenish one request every 3 minutes.
Finding your usage limits
- Usage limits are posted on the Walmart Developer portal for your convenience.
- When you call Walmart APIs, the response header includes two parameters indicating your current rate limit for the specific API you are calling.
Parameter | Description |
---|---|
x-current-token-count | Your current number of tokens available, which is your request limit for this API. |
x-next-replenish-time | The next time at which your token count increases, allowing additional requests for this API. |
API rate limits
The following table provides the default API call limit rates for individuals and smaller businesses.
API category | API name | Rate limit | Method | Endpoint |
---|---|---|---|---|
Assortment Recommendations | Get Recommendations | 500/min | POST | /v3/growth/assortment/recommendations |
Get Variants | 500/hour | GET | /v3/growth/assortment/recommendations/variants | |
Get Recommendation Trends | 500/hour | GET | /v3/growth/assortment/recommendations/trends | |
Get Categorization | 200/hour | POST | /v3/growth/assortment/recommendations/categorization/counts | |
Reject Recommendations | 20/hour | PUT | /v3/growth/assortment/recommendations/rejections | |
Disputes Management | Dispute status | 10/min | POST | /v3/items/dispute/duplicates/status |
Dispute submission | 10/min | POST | /v3/items/dispute/duplicates/contest | |
Feed Management | All feed statuses | 5000/min | GET | /v3/feeds |
Feed item status | 5000/min | GET | /v3/feeds/{feedId} | |
Get feed error report | 60/hour | GET | /v3/feeds/{feedId}/errorReport | |
Fulfillment Management (WFS) | Hazmat Items On Hold | 30/hour | POST | /v3/items/onhold/search |
Update Shipment Tracking | 2/min | POST | /v3/fulfillment/shipment-tracking | |
Create Inbound Shipment label | 20/min | POST | /v3/fulfillment/shipment-label | |
Get Customer Return Orders status | 60/min | GET | /v3/fulfillment/return-orders | |
Create Customer Return Order | 60/min | POST | /v3/fulfillment/return-orders | |
Cancel Customer Return Order | 60/min | POST | /v3/fulfillment/return-orders/{orderId}/cancel | |
Create Customer Order | 600/min | POST | /v3/fulfillment/orders-fulfillments | |
Fetch Delivery Promise Details | 20/min | POST | /v3/fulfillment/orders-fulfillments/fetchOrderPromiseOptions | |
Cancel Customer Order | 600/min | POST | /v3/fulfillment/orders-fulfillments/cancel | |
Get Shipments | 32/min | GET | /v3/fulfillment/inbound-shipments | |
Create Inbound Shipment | 500/min | POST | /v3/fulfillment/inbound-shipments | |
Fetch Inbound Preview | 60/hour | POST | /v3/fulfillment/inbound-preview | |
Get Carrier Rate Quote | 150/min | GET | /v3/fulfillment/carrier-rate-quotes/{shipmentId}/{mode} | |
Create Carrier Rate Quote | 8/min | POST | /v3/fulfillment/carrier-rate-quotes | |
Confirm Carrier Rate Quote | 8/min | POST | /v3/fulfillment/carrier-rate-quote/confirm | |
Print Carrier Label | 30/min | POST | /v3/fulfillment/carrier-label/{shipmentId} | |
Get WFS Inventory Health Report | 5/min | GET | /v3/report/wfs/getInventoryHealthReport | |
Get fulfillment orders status | 20/min | GET | /v3/fulfillment/orders-fulfillments/status | |
Get Inventory Log for a WFS item | 500/min | GET | /v3/fulfillment/inventory-log | |
Get Inbound Shipment Items | 300/min | GET | /v3/fulfillment/inbound-shipment-items | |
Get Inbound Shipment errors | 10/min | GET | /v3/fulfillment/inbound-shipment-errors | |
Cancel Inbound Shipment | 10/min | DELETE | /v3/fulfillment/inbound-shipments/{inboundOrderId} | |
Insights Management | Item Listing Quality Details | 1/min | POST | /v3/insights/items/listingQuality/items |
Pro Seller Tier and Rewards Status | 1/min | GET | /v3/insights/sellerIncentives | |
Pro Seller Badge Status | 1/min | GET | /v3/insights/prosellerbadge | |
Valid Tracking Rate Performance Metrics | 1/min | GET | /v3/insights/performance/vtr/summary | |
Get Valid tracking orders report in Microsoft xlsx format | 1/min | GET | /v3/insights/performance/vtr/report | |
Simplified Shipping Settings Metrics - Ship-from Location accuracies | 1/min | GET | /v3/insights/performance/sss/sfla/summary | |
Get the report of Simplified Shipping Settings Metrics - Ship-from location accury in Microsoft xlsx format | 1/min | GET | /v3/insights/performance/sss/sfla/report | |
Simplified Shipping Settings Metrics - On-time Shipment rate | 1/min | GET | /v3/insights/performance/sss/ots/summary | |
Get the report of Simplified Shipping Settings Metrics - On-time shipment rate in Microsoft xlsx format | 1/min | GET | /v3/insights/performance/sss/ots/report | |
Simplified Shipping Settings Metrics - Carrier Method Accuracy | 1/min | GET | /v3/insights/performance/sss/cma/summary | |
Get the report of Simplified Shipping Settings Metrics - Carrier Method Accuracy in Microsoft xlsx format | 1/min | GET | /v3/insights/performance/sss/cma/report | |
Seller Response Rate Performance Metrics | 1/min | GET | /v3/insights/performance/srr/summary | |
Get Seller Response Rate orders in Microsoft xlsx format | 1/min | GET | /v3/insights/performance/srr/report | |
Refund Performance Metrics | 1/min | GET | /v3/insights/performance/refunds/summary | |
Get refunded orders report in Microsoft xlsx format | 1/min | GET | /v3/insights/performance/refunds/report | |
On Time Delivery Performance Metrics | 1/min | GET | /v3/insights/performance/otd/summary | |
Get On Time Delivery Orders Report in Microsoft xlsx format | 1/min | GET | /v3/insights/performance/otd/report | |
Cancellations Performance Metrics | 1/min | GET | /v3/insights/performance/cancellations/summary | |
Get cancelled orders report in Microsoft xlsx format | 1/min | GET | /v3/insights/performance/cancellations/report | |
Unpublished Items | 100/min | GET | /v3/insights/items/unpublished/items | |
Unpublished Item Counts | 100/min | GET | /v3/insights/items/unpublished/counts | |
Seller Listing Quality Score | 10/hour | GET | /v3/insights/items/listingQuality/score | |
Inventory Management | Inventory | 200/min | GET | /v3/inventory |
Update Inventory | 200/min | PUT | /v3/inventory | |
Single Item Inventory by Ship Node | 200/min | GET | /v3/inventories/{sku} | |
Update Item Inventory per Ship Node | 200/min | PUT | /v3/inventories/{sku} | |
Multiple Item Inventory for All Ship Notes | 200/min | GET | /v3/inventories | |
Item Management | Get Spec | 10/min | POST | /v3/items/spec |
Catalog Search | 200/min | POST | /v3/items/catalog/search | |
Get Item Associations | 200/min | POST | /v3/items/associations | |
All items | 300/min | GET | /v3/items | |
An item | 900/min | GET | /v3/items/{id} | |
Item Search | 200/min | GET | /v3/items/walmart/search | |
Taxonomy | 200/min | GET | /v3/items/taxonomy | |
Get item count by groups | 100/min | GET | /v3/items/groups/count | |
Get items count by status | 200/min | GET | /v3/items/count | |
Retire an item | 900/min | DELETE | /v3/items/{sku} | |
Lag Time | Lag Time | 20/hour | GET | /v3/lagtime |
Notifications Management | Test Notification | 10/min | POST | /v3/webhooks/test |
All Subscriptions | 50/min | GET | /v3/webhooks/subscriptions | |
Create Subscription | 200/min | POST | /v3/webhooks/subscriptions | |
Delete Subscription | 10/min | DELETE | /v3/webhooks/subscriptions/{subscriptionId} | |
Update Subscription | 5/min | PATCH | /v3/webhooks/subscriptions/{subscriptionId} | |
Event Types | 5/min | GET | /v3/webhooks/eventTypes | |
On-Request Report Management | Get All Report Requests | 200/min | GET | /v3/reports/reportRequests |
Report Request Status | 20/hour | GET | /v3/reports/reportRequests/{requestId} | |
Download Report URL | 20/hour | GET | /v3/reports/downloadReport | |
Order Management | Ship Order Lines | 60/min | POST | /v3/orders/{purchaseOrderId}/shipping |
Refund Order Lines | 60/min | POST | /v3/orders/{purchaseOrderId}/refund | |
Cancel Order Lines | 60/min | POST | /v3/orders/{purchaseOrderId}/cancel | |
Acknowledge Orders | 60/min | POST | /v3/orders/{purchaseOrderId}/acknowledge | |
All orders | 5000/min | GET | /v3/orders | |
An order | 5000/min | GET | /v3/orders/{purchaseOrderId} | |
All released orders | 60/min | GET | /v3/orders/released | |
Pre-generated Reports Retiring on June 30, 2022 | Recon Report (Legacy) | 100/min | GET | /v3/report/reconreport/reconFile |
Payment Statement Report | 15/min | GET | /v3/report/payment/statement | |
Performance Report | 15/min | GET | /v3/report/payment/performance | |
Price Management | Update Repricer Strategy | 10/hour | PUT | /v3/repricer/strategy/{strategyCollectionId} |
Delete Repricer Strategy | 10/hour | DELETE | /v3/repricer/strategy/{strategyCollectionId} | |
Update a price | 100/hour | PUT | /v3/price | |
Assign/Unassign items to/from Repricer Strategy | 6/hour | POST | /v3/repricerFeeds | |
Create Repricer Strategy | 20/hour | POST | /v3/repricer/strategy | |
Set up CAP SKU All | 30/min | POST | /v3/cppreference | |
List of Repricer Strategies | 50/hour | GET | /v3/repricer/strategies | |
List of Price Incentive Items | 60/min | GET | /v3/price/incentives | |
Update the enrollment status of Walmart-funded incentive items | 1/min | PUT | /v3/price/incentives/wfpreference | |
Promotion Management | Update a promotional price | 100/hour | PUT | /v3/price |
Promotional prices | 1000/min | GET | /v3/promo/sku/{sku} | |
Returns Management | Issue refund | 60/min | POST | /v3/returns/{returnOrderId}/refund |
Returns | 50/min | GET | /v3/returns | |
Reviews Acceleration | Bulk Update Item Status | 100/hour | PUT | /v3/growth/reviews-accelerator/items/status |
Get RAP Post-Purchase Items | 20/min | POST | /v3/growth/reviews-accelerator/items | |
Get Categories | 100/hour | POST | /v3/growth/reviews-accelerator/categories | |
Settings Management | Get Shipping Template Details | 750/min | GET | /v3/settings/shipping/templates/{templateId} |
Update Shipping Templates | 100/min | PUT | /v3/settings/shipping/templates/{templateId} | |
Delete Shipping Template | 100/min | DELETE | /v3/settings/shipping/templates/{templateId} | |
Get all fulfillment centers | 50/min | GET | /v3/settings/shipping/shipnodes | |
Update fulfillment center | 60/min | PUT | /v3/settings/shipping/shipnodes | |
Create fulfillment center | 10/min | POST | /v3/settings/shipping/shipnodes | |
Get account level settings | 50/min | GET | /v3/settings/shipping/account | |
Update account level settings | 100/min | PUT | /v3/settings/shipping/account | |
Create account level settings | 10/min | POST | /v3/settings/shipping/account | |
Get All Shipping Templates | 300/min | GET | /v3/settings/shipping/templates | |
Create Shipping Templates | 60/min | POST | /v3/settings/shipping/templates | |
Third party fulfillment center association | 10/min | POST | /v3/settings/shipping/3plshipnodes | |
Get Shipping Configurations | 100/min | GET | /v3/settings/shippingprofile | |
Get Shipping Template Activation Status | 10/min | GET | /v3/settings/shipping/templates/activationStatus | |
Get coverage for fulfillment centers | 100/min | GET | /v3/settings/shipping/shipnodes/coverage | |
Get carrier methods | 10/min | GET | /v3/settings/shipping/carriers | |
Get all third party fulfillment providers | 10/min | GET | /v3/settings/shipping/3plproviders | |
Get Partner Configurations | 50/min | GET | /v3/settings/partnerprofile | |
Ship With Walmart | Create label | 100/min | POST | /v3/shipping/labels |
Shipping estimates | 100/min | POST | /v3/shipping/labels/shipping-estimates | |
Labels detail by purchase order id | 100/min | GET | /v3/shipping/labels/purchase-orders/{purchaseOrderId} | |
Supported carriers | 100/min | GET | /v3/shipping/labels/carriers | |
Download label | 100/min | GET | /v3/shipping/labels/carriers/{carrierShortName}/trackings/{trackingNo} | |
Discard label | 100/min | DELETE | /v3/shipping/labels/carriers/{carrierShortName}/trackings/{trackingNo} | |
Supported carrier package types | 100/min | GET | /v3/shipping/labels/carriers/{carrierShortName}/package-types | |
Simplified Shipping Settings Management | Update FC Level Simplified Shipping Settings | 25/min | PUT | /v3/settings/shipping/simplifiedshippingsettings/fulfillmentcenter |
Update Simplified Shipping Settings | 25/min | PUT | /v3/settings/shipping/simplifiedshippingsettings/account | |
Create Simplified Shipping Settings | 5/min | POST | /v3/settings/shipping/simplifiedshippingsettings/account | |
Get Simplified Shipping Settings | 50/min | GET | /v3/settings/shipping/simplifiedshippingsettings | |
Utilities Management | Taxonomy by Spec | 20/min | GET | /v3/utilities/taxonomy |
API Platform Status | 100/min | GET | /v3/utilities/apiStatus |
Feed type usage limits
Feed type | Maximum file size | Rate limit |
---|---|---|
inventory | 5 MB | 10/hour |
mp_item_price_update | 26 MB | 20/hour |
sku_template_map | 10 MB | 10/hour |
dsv_inventory | 10 MB | 50/hour |
mp_inventory | 10 MB | 50/hour |
mp_item | 26 MB | 10/hour |
mp_maintenance | 26 MB | 10/hour |
lagtime | 10 MB | 6/hour |
price | 10 MB | 10/hour |
promo | 10 MB | 10/hour |
mp_item_match | 26 MB | 20/hour |
promo_price | 10 MB | 6/day |
returns_overrides | 0.4 MB | 20/day |
omni_dsv_item | 26 MB | 20/hour |
omni_maintenance | 26 MB | 20/hour |
cpt_seller_eligibility | 10 MB | 7/day |
item | 26 MB | 10/hour |
shipping_overrides | 26 MB | 10/hour |
mp_wfs_item | 26 MB | 10/hour |
omni_wfs | 26 MB | 10/hour |
program_actions | 25 MB | 20/hour |
mp_wfs_maintenance | 26 MB | 10/hour |
split_and_merge | 26 MB | 10/hour |
Updated about 23 hours ago