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

  1. Usage limits are posted on the Walmart Developer portal for your convenience.
  2. When you call Walmart APIs, the response header includes two parameters indicating your current rate limit for the specific API you are calling.
ParameterDescription
x-current-token-countYour current number of tokens available, which is your request limit for this API.
X-Next-Replenishment-TimeThe 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 categoryAPI name / EndpointUS rate limitCA rate limitMX rate limitCL rate limitMethod
Assortment RecommendationsGet Recommendations
/v3/growth/assortment/recommendations
500/min10/min50/hourNAPOST
Get Variants
/v3/growth/assortment/recommendations/variants
500/hourNANANAGET
Get Recommendation Trends /v3/growth/assortment/recommendations/trends500/hourNANANAGET
Get Categorization /v3/growth/assortment/recommendations/categorization/counts200/hour200/hour300/hourNAPOST
Reject Recommendations /v3/growth/assortment/recommendations/rejections20/hour50/hour50/hourNAPUT
Disputes ManagementDispute status
/v3/items/dispute/duplicates/status
10/minNANANAPOST
Dispute submission
/v3/items/dispute/duplicates/contest
10/minNANANAPOST
Feed ManagementAll feed statuses
/v3/feeds
5000/min
(Shared with Feed item status)
5000/min
(Shared with Feed item status)
5000/min
(Shared with Feed item status)
5000/min
(Shared with Feed item status)
GET
Feed item status
/v3/feeds/{feedId}
5000/min
(Shared with All feed statuses)
5000/min
(Shared with All feed statuses)
5000/min
(Shared with All feed statuses)
5000/min
(Shared with All feed statuses)
GET
Get feed error report
/v3/feeds/{feedId}/errorReport
60/hourNANANAGET
Fulfillment Management (WFS)Update Shipment Quantities
/v3/fulfillment/shipment-quantities
PUT
Hazmat Items On Hold
/v3/items/onhold/search
30/hourNANANAPOST
Update Shipment Tracking
/v3/fulfillment/shipment-tracking
2/min50/min50/minNAPOST
Create Inbound Shipment label
/v3/fulfillment/shipment-label
20/min500/min500/minNAPOST
Get Shipments
/v3/fulfillment/inbound-shipments
32/min50/min50/minNAGET
Create Inbound Shipment
/v3/fulfillment/inbound-shipments
500/min50/min50/minNAPOST
Fetch Inbound Preview
/v3/fulfillment/inbound-preview
60/hourNANANAPOST
Get Carrier Rate Quote
/v3/fulfillment/carrier-rate-quotes/{shipmentId}/{mode}
150/min50/minNANAGET
Create Carrier Rate Quote
/v3/fulfillment/carrier-rate-quotes
8/min50/minNANAPOST
Confirm Carrier Rate Quote
/v3/fulfillment/carrier-rate-quote/confirm
8/min50/minNANAPOST
Print Carrier Label
/v3/fulfillment/carrier-label/{shipmentId}
30/min50/minNANAPOST
Get WFS Inventory Health Report
/v3/report/wfs/getInventoryHealthReport
5/min50/min50/minNAGET
Get WFS Inventory Reconciliation Report
/v3/report/wfs/inventoryReconciliationReport
1/hourNANANAGET
Get Inventory Log for a WFS item
/v3/fulfillment/inventory-log
500/min50/min50/minNAGET
Get Inbound Shipment Items
/v3/fulfillment/inbound-shipment-items
300/min50/min50/minNAGET
Get Inbound Shipment errors
/v3/fulfillment/inbound-shipment-errors
10/min50/min50/minNAGET
Cancel Inbound Shipment
/v3/fulfillment/inbound-shipments/{inboundOrderId}
10/min50/min50/minNADELETE
Cancel Carrier Rate Quote
/v3/fulfillment/carrier-rate-quote
DELETE
Create Inbound Shipment label (Deprecated)
/v3/fulfillment/label/{shipmentId}
GET
Create Carrier Rate Quote
/v4/fulfillment/inbound-shipments-quote
10/minNANANAPOST
Get Carrier Rate Quote
/v4/fulfillment/inbound-shipments- quote/{quoteType}/{shipmentId}
150/minNANANAGET
Create Booking
/v4/fulfillment/inbound-shipments-booking
8/minNANANAPOST
Get Booking
/v3/fulfillment/inbound-shipments-booking
GET
Print Bill of Lading (BOL)
/v4/fulfillment/inbound-shipments-bol/{shipmentId}/{mode}
10/minNANANAGET
Generate Label
/v4/fulfillment/generate-label
20/minNANANAPOST
Download Label
/v4/fulfillment/download-label/{shipmentId}/{labelType}/{labelSize}
300/minNANANAGET
Cancel Booking
/v4/fulfillment/inbound-shipments-booking/{shipmentId}/{mode}
10/minNANANADELETE
Get Pickup Seller Schedule
/v3/fulfillment/inbound-seller-schedule
GET
Get Shipment Tracking
/v3/fulfillment/inbound-shipments-tracking
GET
Update Pickup Scheduling
/v3/fulfillment/inbound-schedule-update
POST
Create Customer Order
/v3/fulfillment/orders-fulfillments
POST
Fetch Delivery Promise Details
/v3/fulfillment/orders-fulfillments/fetchOrderPromiseOptions
20/minNANANAPOST
Cancel Customer Order
/v3/fulfillment/orders-fulfillments/cancel
600/minNANANAPOST
Get fulfillment orders status
/v3/fulfillment/orders-fulfillments/status
20/minNANANAGET
Create Customer Return Order
/v3/fulfillment/return-orders
POST
Get Customer Return Orders status
/v3/fulfillment/return-orders
GET
Cancel Customer Return Order
/v3/fulfillment/return-orders/{orderId}/cancel
POST
Create MCS sales channel details
/v3/fulfillment/orders-fulfillments/channel-details
POST
Get MCS sales channel details
/v3/fulfillment/orders-fulfillments/channel-details
GET
Update MCS sales channel details
/v3/fulfillment/orders-fulfillments/channel-details
PUT
Insights ManagementItem Listing Quality Details
/v3/insights/items/listingQuality/items
1/min60/min2/minNAPOST
Item count with listing quality issues
/v3/insights/items/listingQuality/count
GET
Seller Listing Quality Score
/v3/insights/items/listingQuality/score
10/hour60/min15/minNAGET
Pro Seller Tier and Rewards Status
/v3/insights/sellerIncentives
1/min1/minNANAGET
Pro Seller Badge Status
/v3/insights/prosellerbadge
1/minNANA1/minGET
Unpublished Items
/v3/insights/items/unpublished/items
100/min100/min100/minNAGET
Unpublished Item Counts
/v3/insights/items/unpublished/counts
100/min100/min100/minNAGET
Inventory ManagementInventory (legacy)
/v3/inventory
200/min200/min200/min200/minGET
Update Inventory
/v3/inventory
200/min200/min200/min200/minPUT
Single Item Inventory by Ship Node
/v3/inventories/{sku}
200/min200/min200/min200/minGET
Update Item Inventory per Ship Node
/v3/inventories/{sku}
200/min200/min200/min200/minPUT
Multiple Item Inventory for All Ship Nodes
/v3/inventories
200/minNANANAGET
WFS Inventory
/v3/fulfillment/inventory
GET
Item ManagementGet Spec
/v3/items/spec
10/minNANANAPOST
Catalog Search
/v3/items/catalog/search
200/min
(Shared with Get Item Associations)
200/min200/min200/minPOST
Get Item Associations
/v3/items/associations
200/min
(Shared with Catalog Search)
200/min200/minNAPOST
All items
/v3/items
300/min
(if used with query parameters 60/min)
300/min300/min300/minGET
An item
/v3/items/{id}
900/min
(if used with query parameters 60/min)
900/min900/min900/mimGET
Item Search
/v3/items/walmart/search
200/min

1000/day (if used with specFormat=SPEC
NANANAGET
Taxonomy
/v3/items/taxonomy
200/min
(Shared with Get items count by status)
200/min200/minNAGET
Get item count by groups
/v3/items/groups/count
100/min100/min100/min100/minGET
Get items count by status
/v3/items/count
200/min
(Shared with Taxonomy)
200/min200/min200/minGET
Retire an item
/v3/items/{sku}
900/min900/min900/min900/minDELETE
Lag TimeLag Time
/v3/lagtime
20/hour200/min200/min200/minGET
Notifications ManagementTest Notification
/v3/webhooks/test
10/minNANANAPOST
All Subscriptions
/v3/webhooks/subscriptions
50/minNANANAGET
Create Subscription
/v3/webhooks/subscriptions
200/minNANANAPOST
Delete Subscription
/v3/webhooks/subscriptions/{subscriptionId}
10/minNANANADELETE
Update Subscription
/v3/webhooks/subscriptions/{subscriptionId}
5/minNANANAPATCH
Event Types
/v3/webhooks/eventTypes
5/minNANANAGET
On-Request Report ManagementGet All Report Requests
/v3/reports/reportRequests
200/min200/min200/min200/minGET
Create Report Schedule
/v3/reports/schedules
60/minNANANAPOST
Report Request Status
/v3/reports/reportRequests/{requestId}
20/hour20/hour20/hour20/hourGET
Download Report URL
/v3/reports/downloadReport
20/hour20/hour20/hour20/hourGET
Order ManagementShip Order Lines
/v3/orders/{purchaseOrderId}/shipping
60/min60/min60/min60/minPOST
Multi-package shipping updates
/v3/orders/{purchaseOrderId}/multiPackageShipping
POST
Refund Order Lines
/v3/orders/{purchaseOrderId}/refund
60/min60/min60/min60/minPOST
Cancel Order Lines
/v3/orders/{purchaseOrderId}/cancel
60/min60/min60/min60/minPOST
Acknowledge Orders
/v3/orders/{purchaseOrderId}/acknowledge
60/min60/min60/min60/minPOST
All orders
/v3/orders
5000/min60/min60/min60/minGET
Get an order
/v3/orders/{purchaseOrderId}
5000/min60/min60/min60/minGET
All released orders
/v3/orders/released
60/min60/minNANAGET
All wfs orders
/v3/orders/wfs
GET
Delivery Updates
/v3/orders/{purchaseOrderId}/deliver
POST
Get Shipping Label
/v3/orders/label/{trackingNumber}
GET
Download Bulk Shipping Label
/v3/orders/labels
POST
Price ManagementUpdate Repricer Strategy
/v3/repricer/strategy/{strategyCollectionId}
10/hour120/hour120/hourNAPUT
Delete Repricer Strategy
/v3/repricer/strategy/{strategyCollectionId}
10/hour120/hour120/hourNADELETE
Create Repricer Strategy
/v3/repricer/strategy
20/hour20/hour20/hourNAPOST
List of Repricer Strategies
/v3/repricer/strategies
50/hour120/hour120/hourNAGET
List of Price Incentive Items
/v3/price/incentives
60/minNANANAGET
Update the enrollment status of Walmart-funded incentive items
/v3/price/incentives/wfpreference
1/minNANANAPUT
Update Walmart-funded incentives enrollment
/v3/feeds?feedType=WALMART_FUNDED_INCENTIVES_ENROLLMENT
POST
Update reduced referral fee incentives enrollment
/v3/feeds?feedType=INCENTIVE_ENROLLMENT
POST
Update bulk prices Multiple
/v3/feeds?feedType=PRICE_AND_PROMOTION
10/hour30/day30/day30/dayPOST
Assign/Unassign items to/from Repricer Strategy
/v3/repricerFeeds
6/hour6/hour6/hourNAPOST
Update pricing for a single item
/v3/price
100/hourNA30/min5/minPUT
Promotion ManagementUpdate a promotional price
/v3/price
100/hourNA60/min100/minPUT
Promotional prices
/v3/promo/sku/{sku}
1000/min60/min50/min60/minGET
Returns ManagementRefund Order Lines
/v3/returns/{returnOrderId}/refund
60/min NA60/minNAPOST
Get Returns
/v3/returns
50/minNA60/min (Both Get Returns and Get Returns With Cursor)NAGET
Get all returns with cursor mark
/v3/returns/cursor
GET
RecommendationsRecommended Shipment Quantity
/v3/wfs/recommendation/shipment-quantity
100/minNANANAGET
Reviews AccelerationBulk Update Item Status
/v3/growth/reviews-accelerator/items/status
100/hourNANANAPUT
Get RAP Post-Purchase Items
/v3/growth/reviews-accelerator/items
20/minNANANAPOST
Get Categories
/v3/growth/reviews-accelerator/categories
100/hourNANANAPOST
Settings ManagementGet Shipping Template Details
/v3/settings/shipping/templates/{templateId}
750/min100/min100/minNAGET
Update Shipping Templates
/v3/settings/shipping/templates/{templateId}
100/min100/min100/minNAPUT
Delete Shipping Template
/v3/settings/shipping/templates/{templateId}
100/min100/min100/minNADELETE
Get all fulfillment centers
/v3/settings/shipping/shipnodes
50/min100/min100/minNAGET
Update fulfillment center
/v3/settings/shipping/shipnodes
60/min100/min100/minNAPUT
Create fulfillment center
/v3/settings/shipping/shipnodes
10/min100/min100/minNAPOST
Get account level settings
/v3/settings/shipping/account
50/min100/min100/minNAGET
Update account level settings
/v3/settings/shipping/account
100/min100/min100/minNAPUT
Create account level settings
/v3/settings/shipping/account
10/min100/min100/minNAPOST
Get All Shipping Templates
/v3/settings/shipping/templates
300/min100/min100/minNAGET
Create Shipping Templates
/v3/settings/shipping/templates
60/min100/min100/minNAPOST
Third party fulfillment center association
/v3/settings/shipping/3plshipnodes
10/minNANANAPOST
Get Shipping Configurations
/v3/settings/shippingprofile
100/minNANANAGET
Get Shipping Template Activation Status
/v3/settings/shipping/templates/activationStatus
10/minNANANAGET
Get coverage for fulfillment centers
/v3/settings/shipping/shipnodes/coverage
100/minNANANAGET
Get carrier methods
/v3/settings/shipping/carriers
10/minNANANAGET
Get all third party fulfillment providers
/v3/settings/shipping/3plproviders
10/minNANANAGET
Get Partner Configurations
/v3/settings/partnerprofile
50/minNANANAGET
Ship With WalmartCreate label
/v3/shipping/labels
100/min200/min200/min200/minPOST
Shipping estimates
/v3/shipping/labels/shipping-estimates
100/min200/min200/min200/minPOST
Labels detail by purchase order id
/v3/shipping/labels/purchase-orders/{purchaseOrderId}
100/min200/min200/min200/minGET
Supported carriers
/v3/shipping/labels/carriers
100/min200/min200/min200/minGET
Download label
/v3/shipping/labels/carriers/{carrierShortName}/trackings/{trackingNo}
100/min200/min200/min200/minGET
Discard label
/v3/shipping/labels/carriers/{carrierShortName}/trackings/{trackingNo}
100/min200/min200/min200/minDELETE
Supported carrier package types
/v3/shipping/labels/carriers/{carrierShortName}/package-types
100/min200/min200/min200/minGET
Simplified Shipping Settings ManagementUpdate FC Level Simplified Shipping Settings
/v3/settings/shipping/simplifiedshippingsettings/fulfillmentcenter
25/minNANANAPUT
Update Simplified Shipping Settings
/v3/settings/shipping/simplifiedshippingsettings/account
25/minNANANAPUT
Create Simplified Shipping Settings
/v3/settings/shipping/simplifiedshippingsettings/account
5/minNANANAPOST
Get Simplified Shipping Settings
/v3/settings/shipping/simplifiedshippingsettings
50/minNANANAGET
Utilities ManagementTaxonomy by Spec
/v3/utilities/taxonomy
20/minNANANAGET
API Platform Status
/v3/utilities/apiStatus
100/minNANANAGET

Feed type usage limits

Feed typeUS
Maximum file size
US
Rate limit
CA
Maximum file size
CA
Rate limit
MX
Maximum file size
MX
Rate limit
CL
Maximum file size
CL
Rate limit
inventory10 MB10/hour10 MB10/hour10 MB10/hour10 MB10/hour
mp_item_price_update25 MB20/hour
sku_template_map10 MB10/hour10 MB20/hour10 MB20/hourNANA
dsv_inventory10 MB50/hourNANANANANANA
mp_inventory1 MB50/hour1 MB20/hour1 MB50/hourNANA
mp_item25 MB10/hourNANANANANANA
mp_maintenance25 MB10/hourNA10/hour25 MB10/hourNANA
delete_item0.4 MB10/hourNANANANANANA
lagtime10 MB6/hour10 MB6/hourNANA10 MB6/hour
price10 MB6/dayNANANANANANA
PRICE_AND_PROMOTIONNA10/hourNA30/dayNA30/dayNA30/day
promo10 MB6/dayNANANANANANA
mp_item_match25 MB20/hour25 MB10/hour25 MB10/hour25 MB10/hour
INCENTIVE_ENROLLMENTNA6/dayNA6/dayNA6/dayNA6/day
omni_dsv_item25 MB20/hourNANANANANANA
omni_maintenance25 MB20/hourNANANANANANA
item25 MB10/hourNANANANANANA
shipping_overrides25 MB10/hourNANANANANANA
mp_wfs_item25 MB10/hourNANANANANANA
omni_wfs25 MB10/hourNANANANANANA
program_actions25 MB20/hourNANANANANANA
mp_wfs_maintenance25 MB10/hourNANANANANANA
split_and_merge25 MB10/hourNANANANANANA
omni_wfssetupNANA25 MB10/hour25 MB10/hourNANA
omni_wfsconvertNANA25 MB10/hour25 MB10/hourNANA
mp_item_intlNANA25 MB10/hour25 MB10/hour25 MB10/hour