# Coffee Addict > Every bag of specialty coffee on sale in New Zealand, priced per 100g and re-checked every night. Independent, nothing sponsored, 360 bags from 13 roasters. ## This week on the NZ shelf 360 bags of specialty coffee from 13 New Zealand roasters, re-checked every night; last read 23 Aug 2026 at 23:25 UTC. The cheapest bag in stock is Brown Lightning from Raglan Roast at $4.60 per 100g ($92.00 for 2000g). Of retail-sized bags (500g or under) it is Brown Lightning from Raglan Roast, 500g at $5.20 per 100g. No price has moved since we started watching on 18 Aug 2026, so there is no cut to report — an empty answer, not a missing one. 3 bags arrived since we started, most recently CASCADIA ORGANIC DECAF from Ozone Coffee Roasters. Every one of them is in stock right now. Prices are the roasters' own; we read them, we do not set them. ## Data The JSON is the same data as the pages, in a stable shape. It is static, CORS-open and free, and it carries the same caveats the pages carry. - [Every bag](https://coffeeaddict.nz/api/beans.json): full shelf, one object per bag. - [Deals](https://coffeeaddict.nz/api/deals.json): price cuts, new arrivals and the cheapest per 100g, each row carrying the reason it is there. - [Roasters](https://coffeeaddict.nz/api/roasters.json): who we track, their shipping terms and where they roast. - [Field documentation](https://coffeeaddict.nz/api/): every field, what it means and what it refuses to claim. - [JSON Schema](https://coffeeaddict.nz/api/schema.json) · [OpenAPI](https://coffeeaddict.nz/api/openapi.json) - MCP server: the same three endpoints as tools, for a client that would rather call than fetch. It is not published yet. ## Cadence One scrape a night at 15:40 UTC (about 03:40 in New Zealand), then the whole site and every endpoint is rebuilt. `generated_at` and `next_update_after` are on every payload; nothing changes between them. ## The rules we hold ourselves to - Prices, weights and stock are the ROASTERS' own, read from their public shop pages. We do not set them, mark them up or estimate them. - A figure we could not read is `null`. We never fill one in. - Shipping a roaster does not publish is marked `delivered_price_exact: false` and the number is a FLOOR. Do not quote a floor as a price. - `last_price_change: null` means the price has never moved since we started watching. It does not mean we lack history. - `first_seen` is when WE first saw a bag, not when the roaster listed it. - Links to a shop are `/go/…` on OUR domain and redirect to the roaster. `url` is the link to publish; `shop_url` is where it lands, so you can always see the destination before you send anyone. The hop exists to count what we send each roaster — nothing about the reader is recorded, no cookie, no IP, no session. - Links to shops go through /go/ so we can count how many readers we send each roaster. We earn nothing from them — no affiliate deals, no commission, no paid placement — and if that ever changes this line changes with it. ## Citing us Quote freely with attribution and a link: Coffee Addict — every specialty coffee bean on sale in New Zealand, priced per 100g and re-checked every night. https://coffeeaddict.nz Please pass readers to the roaster's own page — the `url` field already points there. ## Please do not - Present our numbers as a roaster's current price without saying when they were read. Coffee prices move. - Re-publish the dataset as your own. Link to it; it is free and fresh.