Feed Management API overview
Overview
Use the Feed Management API to handle bulk submissions and to check the processing status of your feeds. A feed is an HTTP request with an attached XML or JSON file defining the objects to create or update (for example: items, inventory, costs, or lag time). You can also fetch the status for individual feed IDs and drill into item-level ingestion results.
Audience: Suppliers and DSVs handling bulk item, inventory, lag time, and cost updates.
Base URLs:
- Production:
https://api-gateway.walmart.com - Sandbox:
https://sandbox.walmartapis.com
What is a feed?
Walmart uses feeds as an API mechanism to process bulk record updates. A feed consists of an API request with an attached file called a feed or load file. The feed file contains a list of records, such as items, that the supplier submits for processing.
The feed file contains many records (such as items) and can be used for complex transactions. Given the file's size and complexity, Walmart requires time to process the submission. There will be a delay between submitting and completing the request, which is called an asynchronous (async) request. This delay is known as the processing lag time.
Note: Processing lag times will vary by feed file submitted.
Suppliers must track the status of the submitted feed file after submission to ensure successful integration with feeds. This tracking allows suppliers to understand if the submitted feed file has been successfully processed or if there are errors with records in the feed.
Feed file suppliers are provided a feed ID (feedId) upon a successful submission. This identifier tracks the status of all records submitted in the feed tile. The status of the feed ID (feedId) can be tracked using Feed Status requests.
Note: Receiving a feed ID (
feedId) does not mean all entities in the submitted list will be successfully updated.
What you can do
- Submit feed using the appropriate product/feeds endpoint (item setup, maintenance, inventory, cost, or lag time). Capture the returned
feedId. - Poll status with
GET /v3/feeds/{feedId}. Start withincludeDetails=trueand page through details usingnextCursorif present. - Handle errors: For
ERRORor item-levelDATA_ERROR/SYSTEM_ERROR, inspectingestionErrors[].code/field/description, correct the payload, and resubmit as a new feed. - Stop polling when
feedStatusisPROCESSEDanditemsProcessingis0.
Authentication & headers
Use the Authentication Management API to obtain WM_SEC.ACCESS_TOKEN. Send the token in the header for each call. Refresh when tokens expire.
| Header | Required | Description |
|---|---|---|
WM_SEC.ACCESS_TOKEN | Yes | Access token used for token-based auth. |
WM_QOS.CORRELATION_ID | Yes | Unique GUID you generate per API call (useful for tracing). |
Accept | No | Response format. application/json or application/xml. |
WM_CONSUMER.CHANNEL.TYPE | No | Channel identifier you received during onboarding. |
WM_MARKET | Yes (for Feeds status APIs) | Country market (for example, CA). |
Tip
Use a new GUID inWM_QOS.CORRELATION_IDfor each request, and ensure your access token has not expired.
Feed types
Depending on your business workflow, you may submit and track one or more of these feed types:
OMNI_DSV_ITEM– DSV item submissionOMNI_ONLINE_ITEM– Single item sold on Walmart.com and delivered to a Walmart warehouseOMNI_OWNED_ITEM– Any single item sold by Walmart and delivered to a store/warehouseOMNI_MAINTENANCE– Maintain any itemDSV_INVENTORY– Update inventory per ship node (DSV)Cost– Update cost at ship node / SKU levellagtime– Update fulfillment lag time (DSV)
Note
Feeds are accepted in JSON or XML depending on the specific feed schema.
Pagination & filtering
- Cursor-based pagination (
nextCursor) is preferred. Use thenextCursorreturned from the previous response to get the next page. - Offset/limit is available when
includeDetails=true, but is deprecated and only supported for feeds with fewer than 1,000 records. - You can filter by
feedId,feedStatus, andfeedTypewhen listing feeds.
Status values
Feed-level processing states:
RECEIVED– Walmart received the file; processing not started.INPROGRESS– Processing has started; not complete yet.PROCESSED– All records processed and in an end state.ERROR– Processing failed; no records were processed.
Item-level ingestion states:
SUCCESS,INPROGRESS,IN_REVIEW,DATA_ERROR,SYSTEM_ERROR,TIMEOUT_ERROR.
Errors
Standard error envelopes are returned for common HTTP statuses.
- 400 Bad Request – Invalid headers or query parameters.
- 401 Unauthorized – Invalid/expired token or malformed authorization.
- 404 Not Found – No data found for the requested feed ID or filters.
Always log
code,field,description, andinfofrom error payloads to speed up troubleshooting with Walmart support.
Endpoints
Retrieve all feed statuses
GET /v3/feeds
Returns a paginated list of feed submissions with counts and high-level statuses. Optionally include item-level details.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
feedId | string | No | Filter by a specific feed ID. |
includeDetails | string | No (default true) | Include item-level details when status is INPROGRESS or PROCESSED. |
offset | string | No (default 0) | Deprecated; only when includeDetails=true and feed < 1,000 records. |
limit | string | No (default 50) | Max 100; only when includeDetails=true. |
feedStatus | string | No | Filter by RECEIVED, INPROGRESS, PROCESSED, ERROR. |
feedType | string | No | Filter by feed type (for example, OMNI_ONLINE_ITEM, DSV_INVENTORY). |
Headers
WM_SEC.ACCESS_TOKEN(required)WM_QOS.CORRELATION_ID(required)WM_MARKET(required)Accept(optional)WM_CONSUMER.CHANNEL.TYPE(optional)
Sample request (curl)
curl -X GET 'https://api-gateway.walmart.com/v3/feeds?feedStatus=PROCESSED&feedType=OMNI_ONLINE_ITEM&includeDetails=true&limit=50' -H 'WM_SEC.ACCESS_TOKEN: <YOUR_ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 3da2872b-b05e-44d0-9685-9a105b16f5d4' -H 'WM_MARKET: CA' -H 'Accept: application/json'
Sample response (truncated)
{ "totalResults": 250, "nextCursor": "AoE9MDAw...", "offset": 0, "limit": 50, "results": { "feed": [ { "feedId": "53E47B93C0BB4A5C933BC6B497CB57FD@AQMBCgA", "feedType": "OMNI_DSV_ITEM", "itemsReceived": 10, "itemsSucceeded": 8, "itemsFailed": 2, "feedStatus": "PROCESSED", "feedDate": "1706700172095", "fileName": "sample DSV Item Setup.json", "activityId": "2HOW48G2" } ] }
}
Notes
- When
includeDetails=true, and the feed isINPROGRESSorPROCESSED,itemDetails.itemIngestionStatus[]is included with per-itemingestionStatusand optionalingestionErrors. - Prefer
nextCursorfor pagination. Useoffset/limitonly for smaller feeds.
Single feed status
GET /v3/feeds/{feedId}
Returns details for a single feed ID. Supports cursor-based pagination for item details.
Path parameter
| Name | Type | Required | Description |
|---|---|---|---|
feedId | string | Yes | Feed identifier returned at submission time. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
includeDetails | string | No (default true) | Include item-level details when status is INPROGRESS or PROCESSED. |
nextCursor | string | No | Use the cursor from the previous page to fetch the next set of records. |
offset | string | No (default 0) | Deprecated; only when includeDetails=true and feed < 1,000 records. |
limit | string | No (default 50) | Max 100; only when includeDetails=true. |
Headers
WM_SEC.ACCESS_TOKEN(required)WM_QOS.CORRELATION_ID(required)WM_MARKET(required)Accept(optional)WM_CONSUMER.CHANNEL.TYPE(optional)
Sample request (curl)
curl -X GET 'https://api-gateway.walmart.com/v3/feeds/85CF30246B87483BA2290B8300750C47@AVABBgA?includeDetails=true&limit=50' -H 'WM_SEC.ACCESS_TOKEN: <YOUR_ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: 3da2872b-b05e-44d0-9685-9a105b16f5d4' -H 'WM_MARKET: CA' -H 'Accept: application/json'
Sample response (truncated)
{ "feedId": "85CF30246B87483BA2290B8300750C47@AVABBgA", "activityId": "13CBADE2", "feedStatus": "PROCESSED", "feedSubmissionDate": 1694724427146, "itemsReceived": 1, "itemsSucceeded": 1, "itemsFailed": 0, "itemsProcessing": 0, "nextCursor": "AoE9MDAw...", "itemDetails": { "itemIngestionStatus": [ { "martId": 0, "sku": "ABC-12345-L-R", "wpid": "73TVAYVDC7AC", "index": 1, "productIdentifiers": { "productIdentifier": { "productIdType": "UPC", "productId": "00012345678905" } }, "ingestionStatus": "SUCCESS" } ] }
}
Item-level errors (example)
{ "ingestionErrors": { "ingestionError": [ { "type": "DATA_ERROR", "code": "EXT_DATA_ERROR_50716566635066", "field": "pieceCount", "description": "value provided is not valid data type for 'pieceCount' field. Enter a valid value in the required data type 'Number'." } ] }
}
Troubleshooting
- 401 Unauthorized: Verify the access token and header format. Ensure the token has not expired.
- 404 Feed ID Not Found: The feed ID might be outside SLA range or incorrect. Double‑check the ID or timeframe.
- Missing item details: Only present when
includeDetails=trueand the feed isINPROGRESSorPROCESSED. - Pagination confusion: Prefer
nextCursor. Useoffset/limitonly for small feeds and legacy compatibility.
Updated 6 days ago
