merch.json

A small file a store publishes so fan tools can read its table without scraping. Put it at /merch.json, or link it from your homepage with <link rel="alternate" type="application/merch+json" href="...">.

{ "version": 1,
  "store": { "name": "DFA Records", "url": "https://www.dfarecords.com", "bands": ["LCD Soundsystem"] },
  "items": [
    { "id": "lcd-dot-hoodie",
      "title": "DOT Hoodie",
      "url": "https://www.dfarecords.com/products/lcd-soundsystem-dot-hoodie",
      "price": "74.98", "currency": "USD", "kind": "apparel", "available": true,
      "variants": [ { "title": "S", "available": true }, { "title": "M", "available": false } ],
      "image": "https://www.dfarecords.com/cdn/shop/files/DOT.png",
      "published": "2026-03-26T15:09:57-04:00" } ] }

Fields

FieldRequiredMeaning
versionyes1
store.name, store.urlyesWho and where. store.bands lists the bands sold here, so a label store can carry many.
items[].idyesStable for the life of the item. It’s how “new” is decided.
items[].title, urlyesThe item’s own page. Readers link to it untouched.
price, currencynoAs strings, e.g. “74.98” and “USD”.
kindnoapparel, music, prints, accessories, unusual, other. Readers will classify if absent.
availablenoItem-level stock. Default true.
variants[]noSizes or editions, each with title, available, optional price and id. Restock alerts are per variant.
image, publishednoAn image URL and an ISO date.

A store that publishes this and claims its page is marked “verified by the band”. A WooCommerce plugin that emits it is about forty lines; a static site can hand-write it.