Product Feed
Introduction
The Product Feed is a GET /products/feed endpoint that you implement on your platform.
Simpler calls this endpoint to pull your entire product catalog for synchronization and caching,
enabling fast product lookups during checkout.
The Products API is called per-checkout to retrieve details for specific products in real time. The Product Feed, on the other hand, is called periodically to sync your full catalog with Simpler. Both endpoints return similar product data, but the feed returns all products at once.
The feed response is a JSON object containing a products array. Each product is either a simple product
(a standalone item) or a variable product (a parent product with multiple variations, such as different sizes or colours).
For the full API specification, see the API Reference.
Field Reference
The following table describes all available fields for products in the feed.
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
id | Yes | string | Your product's unique identifier | "123456" |
sku | Yes | string | Stock Keeping Unit. GTIN/EAN is acceptable if unique across your catalog | "NIKE-AM90-BLK-42" |
title | Yes | string | Product display title | "Nike Air Max 90" |
description | Yes | string | Plain-text product description | "Comfortable running shoe..." |
image_url | Yes | string | Public URL to product image (HTTPS recommended) | "https://mystore.com/img/shoe.jpg" |
price_cents | Yes | integer | Unit price in the smallest currency unit (cents) | 2000 (= EUR 20.00) |
shippable | Yes | boolean | true for physical products, false for virtual/digital | true |
stock | Yes | integer | Exact quantity available. 0 = out of stock. -1 = backorders allowed | 15 |
categories | No | string[] | Your store's own category names — no predefined list | ["Shoes", "Running"] |
url | No | string | Canonical product page URL on your storefront | "https://mystore.com/products/shoe" |
Whenever you see the _cents suffix, transform your values to their integer cents equivalent.
For example: EUR 20.00 = 2000, EUR 9.99 = 999, EUR 0.50 = 50.
Frequently Asked Questions
Which fields are mandatory?
All fields marked "Required" in the table above: id, sku, title, description, image_url, price_cents, shippable, and stock.
Stock: do you need the exact number, or just "in stock"/"out of stock"?
We need the exact quantity as an integer. Use 0 when the product is out of stock, and a positive number (e.g. 15) for available stock. If your store allows backorders, use -1 to indicate unlimited stock.
Can SKU be the GTIN?
Yes. If you do not maintain a separate SKU, you may use the product's GTIN or EAN as the sku value, as long as it is unique across your entire catalog.
What format is price_cents?
An integer representing the price in the smallest currency unit (cents). For example:
- EUR 20.00 =
2000 - EUR 9.99 =
999 - EUR 150.50 =
15050
Shippable: is it "yes"/"no" or something else?
It is a JSON boolean: true for physical products that require shipping, false for virtual or digital products.
Categories: which are available? Where should we pick from?
There is no predefined list. Use your store's own category names as strings. For example: ["Electronics", "Laptops"] or ["Apparel", "T-Shirts"]. If a product has no categories, omit the field or pass an empty array [].
Complete Example: Simple Product
A simple product is a standalone item with no size/colour variations.
{
"products": [
{
"id": "789012",
"sku": "BASIC-TEE-BLK",
"title": "Basic T-Shirt Black",
"description": "A comfortable everyday cotton t-shirt in black.",
"image_url": "https://www.mystore.com/assets/img/basic-tee-black.jpg",
"stock": 50,
"price_cents": 1999,
"shippable": true,
"categories": ["Apparel", "T-Shirts"],
"url": "https://www.mystore.com/products/basic-tee-black"
}
]
}
Complete Example: Variable Product
A variable product has a parent entry with options (the available attributes like size and colour)
and variations (each specific combination with its own stock, price, and SKU).
Learn more about how options and variations work in the Product Options & Variations tutorial.
{
"products": [
{
"id": "123456",
"sku": "HEJ-JACKET",
"title": "Hyperion Elements Jacket",
"description": "Lightweight jacket with wind resistance.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket.jpg",
"stock": 3,
"price_cents": 5100,
"shippable": true,
"categories": ["Apparel", "Jackets"],
"url": "https://www.mystore.com/products/hej-jacket",
"options": [
{
"id": "attr_color",
"title": "Color",
"values": [
{ "id": "val_black", "title": "Black" },
{ "id": "val_white", "title": "White" }
]
},
{
"id": "attr_size",
"title": "Size",
"values": [
{ "id": "val_s", "title": "S" },
{ "id": "val_m", "title": "M" }
]
}
],
"variations": [
{
"id": "1234567",
"sku": "HEJ-JACKET-S-BLK",
"title": "Hyperion Elements Jacket - S / Black",
"stock": 2,
"description": "Lightweight jacket with wind resistance. Size S, Black.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-s-black.jpg",
"price_cents": 5100,
"shippable": true,
"attributes": {
"attr_size": "val_s",
"attr_color": "val_black"
}
},
{
"id": "12345678",
"sku": "HEJ-JACKET-M-BLK",
"title": "Hyperion Elements Jacket - M / Black",
"stock": 3,
"description": "Lightweight jacket with wind resistance. Size M, Black.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-m-black.jpg",
"price_cents": 5100,
"shippable": true,
"attributes": {
"attr_size": "val_m",
"attr_color": "val_black"
}
},
{
"id": "123456789",
"sku": "HEJ-JACKET-S-WHT",
"title": "Hyperion Elements Jacket - S / White",
"stock": 0,
"description": "Lightweight jacket with wind resistance. Size S, White.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-s-white.jpg",
"price_cents": 5300,
"shippable": true,
"attributes": {
"attr_size": "val_s",
"attr_color": "val_white"
}
},
{
"id": "1234567890",
"sku": "HEJ-JACKET-M-WHT",
"title": "Hyperion Elements Jacket - M / White",
"stock": 0,
"description": "Lightweight jacket with wind resistance. Size M, White.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-m-white.jpg",
"price_cents": 5300,
"shippable": true,
"attributes": {
"attr_size": "val_m",
"attr_color": "val_white"
}
}
]
}
]
}
Each variation must include an attributes object mapping the option IDs to the selected value IDs.
In this example, the variation HEJ-JACKET-S-BLK maps attr_size -> val_s and attr_color -> val_black,
corresponding to the options defined in the parent product.
Full Feed Example
A complete feed response can contain a mix of simple and variable products:
{
"products": [
{
"id": "789012",
"sku": "BASIC-TEE-BLK",
"title": "Basic T-Shirt Black",
"description": "A comfortable everyday cotton t-shirt in black.",
"image_url": "https://www.mystore.com/assets/img/basic-tee-black.jpg",
"stock": 50,
"price_cents": 1999,
"shippable": true,
"categories": ["Apparel", "T-Shirts"],
"url": "https://www.mystore.com/products/basic-tee-black"
},
{
"id": "123456",
"sku": "HEJ-JACKET",
"title": "Hyperion Elements Jacket",
"description": "Lightweight jacket with wind resistance.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket.jpg",
"stock": 3,
"price_cents": 5100,
"shippable": true,
"categories": ["Apparel", "Jackets"],
"url": "https://www.mystore.com/products/hej-jacket",
"options": [
{
"id": "attr_color",
"title": "Color",
"values": [
{ "id": "val_black", "title": "Black" },
{ "id": "val_white", "title": "White" }
]
},
{
"id": "attr_size",
"title": "Size",
"values": [
{ "id": "val_s", "title": "S" },
{ "id": "val_m", "title": "M" }
]
}
],
"variations": [
{
"id": "1234567",
"sku": "HEJ-JACKET-S-BLK",
"title": "Hyperion Elements Jacket - S / Black",
"stock": 2,
"description": "Lightweight jacket with wind resistance. Size S, Black.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-s-black.jpg",
"price_cents": 5100,
"shippable": true,
"attributes": { "attr_size": "val_s", "attr_color": "val_black" }
},
{
"id": "12345678",
"sku": "HEJ-JACKET-M-BLK",
"title": "Hyperion Elements Jacket - M / Black",
"stock": 3,
"description": "Lightweight jacket with wind resistance. Size M, Black.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-m-black.jpg",
"price_cents": 5100,
"shippable": true,
"attributes": { "attr_size": "val_m", "attr_color": "val_black" }
},
{
"id": "123456789",
"sku": "HEJ-JACKET-S-WHT",
"title": "Hyperion Elements Jacket - S / White",
"stock": 0,
"description": "Lightweight jacket with wind resistance. Size S, White.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-s-white.jpg",
"price_cents": 5300,
"shippable": true,
"attributes": { "attr_size": "val_s", "attr_color": "val_white" }
},
{
"id": "1234567890",
"sku": "HEJ-JACKET-M-WHT",
"title": "Hyperion Elements Jacket - M / White",
"stock": 0,
"description": "Lightweight jacket with wind resistance. Size M, White.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-m-white.jpg",
"price_cents": 5300,
"shippable": true,
"attributes": { "attr_size": "val_m", "attr_color": "val_white" }
}
]
}
]
}