Step 1: Prepare the Source File

Before you can upload and sync a product feed to Experience OS, make sure your feed file complies with the size, format, and content requirements.

Feed SizeFile Type
Up to 20,000 itemsCSV, JSON, XML
20,000-200,000CSV, JSON
More than 200,000CSV

The file can be stored in any URL or a local folder, or in an Amazon S3 bucket that we provide. You can transfer the feeds to Amazon S3 using SFTP as well. If you use a CSV file, items must be separated by commas. See Step 2 for more information on these methods.

Product feed structure

The product feed must include the basic information about your product (SKU, group ID, price, image, URL, in stock or not, and its categories). You can see the list of mandatory attributes in the following table, with detailed instructions (format, limitations, and so on).

SKUs must be unique, or the feed won't sync.



If you change the group ID structure or category structure between syncs, the feed might reset, causing all previous recommendation data to be lost.

Mandatory feed columns:

Column (case sensitive)DescriptionFormatExample
skuUnique product identifier. Note: SKUs cannot contain spaces or the string "//"String
(up to 256 characters, no spaces)
Optional but highly recommended
The type of item:
Offer, Product, or Article

Financial Institutions only.
group_idIdentifies a group of products that differ in some product attributes.String
(up to 256 characters, no spaces)
nameProduct nameString
(up to 1000 characters)
urlURL to the product details page (must be a valid URL, starting with HTTP/HTTPS)String
(up to 1000 characters)
pricePrice of the product (must be a number)Float
(up to 1000 characters)
in_stockIndication whether the product is in stock (noted by ‘true/false’)Boolean
(must be lower case)
image_urlThe URL to the product image (must be a valid URL, starting with HTTP/HTTPS)String
(up to 1000 characters)</span<m/135.png
categoriesThe categories associated with the product, from general to specificStrings
(separated by pipes with no spaces, up to 1,000 characters)
Optional but highly recommended
Any additional information describing the product, separated by pipes. Used for our machine learning and affinity algorithms. Because this column is optional, blank values will not trigger errors or warnings.Strings
(separated by pipes with no spaces, up to 1,000 characters)


Missing mandatory values:

If a product is missing a value in a mandatory column, it isn't synced. If more than 10% of products have an empty value in one of the mandatory columns, the entire sync fails.


Use a parser function to sync from a pre-existing file:

If your feed source has this information, but names are different (for example, if you have a Google Product Feed), or this information exists in 2 separate feeds, you can use a parser function when syncing the feed to adapt it to the provided guidelines. This is available for feeds that have fewer than 200,000 items and are smaller than 180 MB. Learn more.


Multi-language support:

See the multi-language support page to learn more about creating a feed for multi-language sites or apps.

See also the included subpages for custom columns and feed file examples.