---
title: "Product Feed V2"
method: HEAD
path: "/feeds/{token}/feed.xml"
tags: ["Storefront"]
---

# Product Feed V2

`HEAD /feeds/{token}/feed.xml`

Stream the gzipped XML product feed from the merchant's own domain.

Backs the new `product_feeds` system in extension-backend. The token is
stable per-feed (rotated on regen via S3 key reuse), and the underlying
object is uploaded with `Content-Encoding: gzip`, so we pass the raw
bytes through unchanged and mirror the upstream headers so crawlers
(Meta Catalog, TikTok, Google Merchant Center) decompress correctly.

HEAD is forwarded upstream as HEAD: crawlers probe it before fetching,
and we answer with the object's headers without streaming the body.

## Path parameters

- `token` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-31** `fdf856eebc08` — 1 info
  - api operation id `product_feed_v2_feeds__token__feed_xml_get` removed and replaced with `product_feed_v2_feeds__token__feed_xml_head`
- **2026-08-23** `09009598427e` — 1 info
  - api operation id `product_feed_v2_feeds__token__feed_xml_head` removed and replaced with `product_feed_v2_feeds__token__feed_xml_get`
- **2026-08-19** `d8f61c4396a4` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/johrh/apis/vitrin/changes/feeds/:token/feed.xml/head.md)

---

[API](https://skmtc.dev/johrh/apis/vitrin.md) · [All operations](https://skmtc.dev/johrh/apis/vitrin/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/johrh/vitrin/revisions/fdf856eebc08/schema)
