The data
What we collect, and how it reaches you.
One record per product, one per variant (a colour or size of it), and a new entry each time a price or stock value changes. History starts from our first read of each store, late September 2026 at the earliest.
The record
What every product record holds
Every product, read the same way from every store. Each field with an example.
FieldWhat it holdsExample
ProductName, brand, store, category and the page it was read from
Product A · Brand 1VariantsEach colour and size, with its own price and stock
Colour 1 · MPriceWhat the store charges now: exact text, and whole minor units
"129.00" · 12900List priceThe price before a sale, when the store shows one
"159.00" · 15900StockIn stock or out, for every variant
in_stock: falseSpecsCapacity, size, weight and the like, read into fields of our own
weight_g: 1200Store pageA link to the product on the store, where its photos and description are
urlHistoryEvery change in price and stock, with its time
9 changes since 28 SepChange eventsTen kinds of change, each with its time, in their own feed
GET /api/v1/eventsChanges
The ten change events
Each one carries its time and the values before and after. Choose any of them for alerts, or read them as a feed at /api/v1/events.
Price
- Price down
- A variant's price fell.
- Price up
- A variant's price rose.
- Sale started
- A variant went on sale: its price is now below its list price.
- Sale ended
- A variant came off sale.
Stock
- Back in stock
- A variant that was out of stock can be bought again.
- Out of stock
- A variant sold out.
Assortment
- New product
- A product appeared on a store already in the catalogue.
- New colour or size
- A product gained a colour or size.
- No longer listed
- A product left its store.
- Listed again
- A product that had left its store is listed again.
API
The JSON
Products and variants at /api/v1/products. Prices come as exact text and in whole minor units, never rounded. Each product links to its full price history.
{
"id": "3b0e7a52-9c1d-4f6e-8a2b-5d7c1e9f0a34",
"name": "Product A",
"brand": "Brand 1",
"source": "source_1",
"category": "Category 1",
"url": "https://source-1.example/products/product-a",
"first_seen_at": "2026-09-28T09:12:00Z",
"variants": [
{
"colour": "Colour 1",
"size": "M",
"currency": "EUR",
"price": "129.00",
"list_price": "159.00",
"price_minor": 12900,
"list_price_minor": 15900,
"on_sale": true,
"in_stock": false,
"observed_at": "2026-10-07T13:17:00Z"
}
],
"prices_href": "/api/v1/products/3b0e7a52-9c1d-4f6e-8a2b-5d7c1e9f0a34/prices"
}See the full data inside.
Every open store's products, prices and history: in the app, as alerts, or through the API.