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

  1. Submit feed using the appropriate product/feeds endpoint (item setup, maintenance, inventory, cost, or lag time). Capture the returned feedId.
  2. Poll status with GET /v3/feeds/{feedId}. Start with includeDetails=true and page through details using nextCursor if present.
  3. Handle errors: For ERROR or item-level DATA_ERROR/SYSTEM_ERROR, inspect ingestionErrors[].code/field/description, correct the payload, and resubmit as a new feed.
  4. Stop polling when feedStatus is PROCESSED and itemsProcessing is 0.

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.

HeaderRequiredDescription
WM_SEC.ACCESS_TOKENYesAccess token used for token-based auth.
WM_QOS.CORRELATION_IDYesUnique GUID you generate per API call (useful for tracing).
AcceptNoResponse format. application/json or application/xml.
WM_CONSUMER.CHANNEL.TYPENoChannel identifier you received during onboarding.
WM_MARKETYes (for Feeds status APIs)Country market (for example, CA).

Tip
Use a new GUID in WM_QOS.CORRELATION_ID for 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 submission
  • OMNI_ONLINE_ITEM – Single item sold on Walmart.com and delivered to a Walmart warehouse
  • OMNI_OWNED_ITEM – Any single item sold by Walmart and delivered to a store/warehouse
  • OMNI_MAINTENANCE – Maintain any item
  • DSV_INVENTORY – Update inventory per ship node (DSV)
  • Cost – Update cost at ship node / SKU level
  • lagtime – 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 the nextCursor returned 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, and feedType when 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, and info from 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

NameTypeRequiredDescription
feedIdstringNoFilter by a specific feed ID.
includeDetailsstringNo (default true)Include item-level details when status is INPROGRESS or PROCESSED.
offsetstringNo (default 0)Deprecated; only when includeDetails=true and feed < 1,000 records.
limitstringNo (default 50)Max 100; only when includeDetails=true.
feedStatusstringNoFilter by RECEIVED, INPROGRESS, PROCESSED, ERROR.
feedTypestringNoFilter 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 is INPROGRESS or PROCESSED, itemDetails.itemIngestionStatus[] is included with per-item ingestionStatus and optional ingestionErrors.
  • Prefer nextCursor for pagination. Use offset/limit only 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

NameTypeRequiredDescription
feedIdstringYesFeed identifier returned at submission time.

Query parameters

NameTypeRequiredDescription
includeDetailsstringNo (default true)Include item-level details when status is INPROGRESS or PROCESSED.
nextCursorstringNoUse the cursor from the previous page to fetch the next set of records.
offsetstringNo (default 0)Deprecated; only when includeDetails=true and feed < 1,000 records.
limitstringNo (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=true and the feed is INPROGRESS or PROCESSED.
  • Pagination confusion: Prefer nextCursor. Use offset/limit only for small feeds and legacy compatibility.