# What is new

**Status:** current · **Verified:** 2026-10-31, documentation and code review
**Owner:** Vizen API documentation · **Serves:** `GET /docs/changelog`
**Related:** `/docs/quickstart`, `/docs/index.json`

## 2026-11-02

- **New picture, same links:** `POST /v1/storages/files/{id}` → PUT → `done` replaces a file's bytes and keeps its `file_id`, so galleries, `item_key` and `preview_id` stay; traps and the bulk plan are in the [import guide](/docs/catalog-import) §7.4.

## 2026-10-31

- **[Reviews](/docs/reviews)** like large marketplaces: pros and cons, buyer photos and videos, server-checked "verified purchase", who may post (`anyone`, `buyers`, `nobody`), star and media filters, one "helpful" vote per person, batch moderation, `GET /reviews/{id}`; `approve` is now required. A `catalog:write` key now also changes review settings and moderates in batches.
- **[Record sets](/docs/record-sets) by record:** `GET`/`PATCH /products/{id}/records/{code}` (and `/categories/…`) — add, change, remove or move one record, the rest stays; `revision` guards parallel edits. A product's `/spec` now lists its own sets outside the template. OpenAPI: a ZIP release answers `200` with `publish=1`.
- **[Record sets](/docs/record-sets)** got their own area: buyer access, the base64 → UTF-8 answer, always `code`, a component recipe. A fresh upload created with `fileType:"image"` is accepted by an `image` field.

## 2026-10-30

- **Record sets (`group`):** repeating records on products and sections; public `GET /record-sets` ([record sets](/docs/record-sets)).

## 2026-10-29

- Home page: any section; key: `/v1/home-page`

## 2026-10-28

- **Site folder as home page:** `home_folder_id` ([file storage](/docs/file-storage))
- **Large documents answer with their contents.** Over 32 KB, `GET /docs/<x>`
  lists sections with their size; open one with `?section=<slug>`, the whole
  document with `?full=1`.
- **[Characteristics](/docs/characteristics)** — types and their values, options,
  why a section's filter panel stays empty, groups and spec templates, section
  values, and traps measured on a live stand.
- Variant sets: `is_active` left out means on in `PUT /products/{id}/variants`
  too, as in the import ([import guide](/docs/catalog-import) §5).
- **A finished site is moved as it is.** A whole separate site goes into a site
  folder, pages that become the shop through `vizen-transfer`; never into
  components unless the owner asks (`vizen-start` §0).
- **Characteristic edits reach the cards.** A rename, option label, unit, section,
  order or delete shows on product cards at once; filters match `multiselect`,
  `bool`, `date`, `color` and `url` ([characteristics](/docs/characteristics)).
- **Changing existing goods.** `PUT /products/{id}` is partial except `price`,
  `seo` and `categories` (replaces); bulk edit, off sale, copy, delete, moving —
  [import guide](/docs/catalog-import) §12.
- **A design group in use keeps its label**; a lone unused feed or `design`
  group can be deleted ([chrome](/docs/chrome) §6).

## How to use this page

Follow the linked contract before changing a shop. Dates describe documented
changes, not a promise that an arbitrary server already runs that version.
Read the target API's schema and generated references before using new fields.
