Supplier feed CSV and JSON format: fields, examples and limits
Prepare a supplier product feed for comparison with five required fields: sku, name, price, stock and currency. See valid examples and fixes for common errors.
Supplier Feed Watch product guide · Updated September 22, 2026
The five required fields
Use a UTF-8 encoded .csv or .json file, no larger than 1,000,000 bytes (1 MB), containing no more than 10,000 product rows. Both snapshots must use the same SKU convention. The two files can use different supported formats.
| Field | Expected value | Example |
|---|---|---|
| sku | Unique, nonempty text. Matching is case-sensitive; retain leading zeros. | 001-MUG |
| name | Nonempty product name, up to 500 characters. | Stoneware mug |
| price | Nonnegative decimal, up to 9 digits before the point and 2 after. No currency symbols or thousands separators. | 12.50 |
| stock | Nonnegative whole number. | 24 |
| currency | Three uppercase letters. This is a format check, not verification of a currency code. | USD |
A valid CSV example
sku,name,price,stock,currency 001-MUG,Stoneware mug,12.50,24,USD 002-BOWL,"Bowl, large",18.00,0,USD
The delimiter is a comma. Quote an entire field if its value contains a comma, double quote or line break. Inside a quoted field, represent a literal double quote with two double quotes. Each row must have the same number of fields as the header.
The checker accepts ordinary line endings and a UTF-8 byte-order mark. Semicolon-delimited exports, spreadsheet workbooks and XML feeds must be converted first. Avoid opening SKU columns as numbers in a spreadsheet: that can remove leading zeros and change the identifiers.
A valid JSON example
[
{"sku":"001-MUG","name":"Stoneware mug","price":12.50,"stock":24,"currency":"USD"},
{"sku":"002-BOWL","name":"Bowl, large","price":18.00,"stock":0,"currency":"USD"}
]Use a top-level array of product objects. Keep SKUs and names as strings. Repeated object keys are rejected, since silently keeping the last value could hide a mistaken price. JSON Lines, an object wrapping the array and nested field mappings are not supported.
Fix common validation errors
- Missing required field: rename your supplier’s equivalent column to the required header in an export copy. For example, map a stable product identifier to
sku. There is no automatic field mapping yet. - Duplicate SKU: choose the correct unique variant identifier or resolve the duplicate with the supplier. The checker does not guess which row to keep.
- Invalid price: replace currency-formatted strings with plain decimal amounts. Use
1250.50, not$1,250.50. Do not round or convert values without checking their meaning. - Invalid stock: use an actual whole quantity. Labels such as “in stock” and negative quantities need an explicit conversion rule outside this tool.
- Malformed quotation: re-export valid CSV or fix the affected field’s escaping. Adding a separator inside an unquoted name changes the row width.
- File too large: create matched, complete subsets under the limits. Arbitrarily splitting snapshots into different groups can produce misleading missing-product reports.
What happens to extra columns?
Additional column names are checked for additions or removals between snapshots. Changes to their values are not compared. Image URLs, categories, descriptions, shipping and channel-specific attributes therefore need separate validation. CSV has a maximum of 100 columns, and a parsed field cannot exceed 4,096 characters.
Ready to compare?
Use the home page’s downloadable sample files to confirm the format, or follow the step-by-step comparison guide. Files stay in your browser. A valid comparison checks the supported data fields, not whether your supplier’s underlying information is correct.
Compare two files in your browser. Free, no account needed.
Open the free feed checker →