Bulk item delete
Use the DELETE_ITEM feed type to remove multiple seller-fulfilled (SFF) items in a single request using the Bulk Item Setup API. This is designed for operational cleanup (for example, end-of-life SKUs) and supports consistent processing through the same Items pipeline you use for item creation and updates.
The bulk item delete feature provides an efficient and standardized way to remove SKUs, reducing operational complexity and manual cleanup.
- Faster catalog hygiene: Remove many SKUs in one operation instead of individual API calls.
- Consistent tooling: Reuse existing Item Spec generation and ingestion infrastructure.
- Clearer processing: Standardized success confirmations per SKU make deletion easier to track.
- Improved data fidelity: Clean catalogs reduce customer confusion and prevent invalid inventory or pricing updates.
Deletions are permanent. If you need a reversible option, consider unpublishing or inventory zeroing first.
Use cases
Common use case scenarios where you may use the Bulk SKU Delete feed include:
- End-of-life cleanup: End-of-life cleanup for products no longer sold.
- Catalog accuracy: Remove duplicates or legacy SKUs that should not appear in search or browse.
- Seasonal rotation: Clearing out seasonal assortment items before loading a new cycle.
- Operational consolidation: Merging product lines or removing SKUs that have transitioned to new item numbers.
- Post-audit corrections: Cleaning up SKUs after quality/compliance reviews.
Reference guide
This guide explains how to use the DELETE_ITEM feed type, providing practical examples and step-by-step instructions for integrating the Bulk Item Setup API into your solution.
For full technical details, including endpoints, parameters, and brief descriptions, refer to the Bulk Item Setup API.
Endpoint
POST https://marketplace.walmartapis.com/v3/feeds
Sample request
{ "ItemFeedHeader": { "locale": "en", "version": "5.0.20250919-16_45_47-api", "businessUnit": "WALMART_US" }, "Item": [ { "Deletable": { "sku": "00682463902703" } } ]
}
import requests url = 'YOUR_ENDPOINT_URL' # Replace with the actual endpoint URL
data = { "ItemFeedHeader": { "locale": "en", "version": "5.0.20250919-16_45_47-api", "businessUnit": "WALMART_US" }, "Item": [ { "Deletable": { "sku": "00682463902703" } } ]
} headers = { 'Content-Type': 'application/json', # Add other headers as needed, e.g., Authorization
} response = requests.post(url, json=data, headers=headers)
print(response.status_code)
print(response.json())
Modify your code
- Set required headers: Include
AcceptandContent-Typeasapplication/json, and your auth headers (for example,WM_SEC.ACCESS_TOKEN). - Build an Item Spec–formatted JSON body with
ItemFeedHeaderand anItemarray. - Populate
ItemFeedHeader:
locale: Use a valid locale (for example, en).version: Provide the Item Spec version used to generate the payload.businessUnit: Match your program (for example, WALMART_US).
- List all SKUs to remove under
Item. Add oneDeletable.skuper item.. - Ensure SKUs are correct and active in your catalog before deleting.
- Send a POST request to the /v3/feeds ingestion endpoint.
- Validate processing: Poll or review the feed processing result and confirm per-SKU status.
Sample response
{ "feedId": "187D70B1F67B51F2B40AD50C06F5ACA1@AXkBBgA" }
Response handling
Use the returned feedId to track processing and confirm which SKUs were successfully deleted.
- Track the delete feed.
- After you POST the DELETE_ITEM payload to
/v3/feeds, store the returnedfeedId. - Use the All feed status API or Feed item status API to look up this feedId and monitor the delete feed as it moves through Walmart’s ingestion pipeline.
- Monitor feed and item status.
- Continue polling feed status until the feed reaches
PROCESSED. - When the feed status is
PROCESSED, all SKUs in that feed have either been successfully deleted, or failed validation and returned submission errors.
Important: Not all SKUs submitted in the same feed are processed at the exact same moment. Some SKUs may complete processing earlier than others while Walmart systems continue working through the remaining items.
- Review and fix item-level errors.
- If the processed feed includes errors for specific SKUs:
- Review the item-level error details returned by the feed status.
- Compare your original DELETE_ITEM payload against the latest Item Spec and schema requirements (for example,
Deletable.skuformat and required fields). - Correct any issues and resubmit a new DELETE_ITEM feed for the affected SKUs.
- If the same errors persist after you correct and resubmit, contact Partner Support with the
feedIdand relevant SKU details for further assistance.
Error handling
- Payload too large (413): Check the payload size of DELETE_ITEM feed. Reduce the number of SKUs per feed or split large deletion jobs into multiple smaller feeds. Re-submit each smaller feed separately.
- Rate limited (429): Wait the number of seconds in
Retry-After, then retry. - Unsupported media type (415): For DELETE_ITEM, send
Content-Type: application/jsonwith a valid raw JSON payload orContent-Type: multipart/form-datawith a valid JSON feed file. Ensure the JSON matches the current Item Spec and schema. - Internal Server Error (500): The server encountered an unexpected condition and could not fulfill the request. Retry with exponential backoff and random jitter. Log only non-sensitive request metadata (timestamp, path, status, duration, attempt, backoff delay).
Next steps
- Use your catalog or reporting endpoints to confirm the SKUs are no longer published.
- Keep your Item spec version aligned with the latest program requirements to avoid validation errors.
Updated about 4 hours ago
