Feed format
A feed is a JSON Lines file: one JSON object per product, one per line. Records use Google Merchant Center product data attribute names, so records from an existing Merchant Center feed are valid without changes. The machine-readable version of this page is the JSON Schema (2020-12).
File
A UTF-8 file with the extension .jsonl (or .ndjson), at most 200 MB; a
byte-order mark is ignored and blank lines are skipped. Each line is checked on
its own: a bad line is reported in errors.jsonl with its line number and
skipped, and the rest of the feed still runs.
Required fields
Enrichment reads the product's photos and text, so it cannot run without these.
| Field | Rule |
|---|---|
id |
Unique, stable product identifier; 1–50 characters. Use the variant ID when variants are sold separately. |
title |
1–150 characters. |
image_link |
Main product photo, an http(s) URL that Unimode can download. Links to private or internal network addresses are rejected. |
Optional fields
| Field | Type | Notes |
|---|---|---|
description |
text, ≤ 5000 | The product description. |
additional_image_link |
URL list, ≤ 10 | More photos. Photos are the main input, so send every product photo you have. |
brand |
text | |
product_type |
text list, ≤ 5 | Your own category breadcrumb, >-separated (Men > Shirts > Button-Down). The first one decides which attributes are extracted. A single string is accepted. |
condition |
new, refurbished, used |
Matched without regard to case. |
color |
text | Up to three colors separated by / (Indigo/Black). |
size |
text | |
price, sale_price |
<amount> <currency> |
ISO 4217 currency, e.g. 49.00 USD. |
attributes |
object of name → value | Any other fact about the product (material, gender, fit, rise, inseam_in, style_tags). Values are text, numbers, booleans or text lists. |
Other fields are ignored
Only the fields above are read. Any other attribute, including Merchant
Center attributes such as gtin, mpn, link, google_product_category,
gender, material, product_detail or availability, is accepted and
dropped: it is not used and not stored. To pass one of those facts to
enrichment, put it in attributes, for example
"attributes": {"material": "Linen", "gender": "male"}. Send brand, color,
size and condition as the fields above, not inside attributes.
How your data is used
- Photos are read in order, main photo first, at most 12 per product; duplicates are dropped.
- The first
product_typesets the product's category; its last level decides which attributes are extracted. - Your values (brand, color, size, condition,
attributes) are treated as hints to check against the photos, not as facts to copy: a wrong color or material in the feed can be corrected by what the photos show. - Prices in USD are used as given; other currencies are kept with the record but not converted.
Example
{"id": "SKU-2040", "title": "Women's High-Rise Wide-Leg Jeans", "description": "Rigid denim with a high rise and full-length wide leg.", "image_link": "https://cdn.example.com/sku-2040/front.jpg", "brand": "Harbor & Pine", "product_type": "Women > Jeans > Wide-Leg", "condition": "new", "color": "Indigo/Black", "size": "28", "price": "98.00 USD", "attributes": {"material": "Cotton", "gender": "female", "rise": "high", "inseam_in": 32}}
Feeds must not contain personal data; see Security and data handling.