Perfume prices and price per ml of perfume samples and decants: 10ML open data on a tiny web server
64
A tiny web server image that serves 10ML's open perfume price data: the price per ml of perfume samples and decants, official full-bottle prices, perfume prices across Europe and more. Every file is an exact copy of the CSV and JSON that 10ML publishes on 10ml.com, licensed CC BY 4.0.
10ML is an online shop for perfume samples and decants of original designer and niche perfumes. Its catalogue lists more than 1,000 perfumes from 89 perfume houses, most of them in three sizes: 3ml to discover, 10ml to wear and 30ml to keep. 10ML decants every perfume itself, from the original bottle into a travel atomiser. Orders ship from the EU to 26 EU countries, and the shop is available in 10 languages: English, German, French, Spanish, Italian, Polish, Romanian, Czech, Greek and Hungarian.
Alongside the shop, 10ML publishes perfume price research on its perfume market and prices hub.
The 10ML Price-per-ml Index has one row per perfume and decant size that 10ML sells (3ml, 10ml and 30ml): the price (10ML member price, VAT included) and that price divided by the size, in EUR per ml. The snapshot in this image (13 October 2026) covers 1,059 perfumes from 89 houses in 3,169 rows. Two companion tables give the median price per ml by decant size for all, designer and niche perfumes, and by house for houses with at least 10 perfumes on sale. On 10ml.com the index is recomputed at least every hour; this image is a dated copy.
| Dataset | Files | Source page |
|---|---|---|
| 10ML Price-per-ml Index | /data/price-per-ml-index.csv .json | Perfume price per ml index |
| Median price per ml by size and tier | /data/price-per-ml-index-summary.csv .json | Perfume price per ml index |
| Median price per ml by house | /data/price-per-ml-index-houses.csv .json | Perfume price per ml index |
| Official full-bottle prices of 47 perfumes | /data/full-bottle-reference-2026-09.csv .json | Perfume price per ml index |
| The price of trying a perfume: samples, travel sprays, discovery sets and full bottles | /data/trial-formats-2026-10.csv .json | Perfume sample prices |
| Gift sets vs full bottles, per ml | /data/gift-sets-2026-10.csv .json | Perfume gift sets per ml |
| Same perfume, different price: house e-shop prices in 13 European countries | /data/europe-house-prices-2026-10.csv .json | Perfume prices in Europe |
| Standard VAT rates in the 27 EU countries, 2026 | /data/eu-vat-standard-rates-2026.csv .json | Perfume prices in Europe |
| Who owns the 89 perfume houses 10ML sells | /data/house-ownership-2026.csv .json | Who owns perfume brands |
| Perfumes per release year, 2010–2025 | /data/perfume-launches-per-year.csv .json | New perfume launches per year |
| Perfume dupe prices vs the originals, 2026 | /data/dupe-price-gap-2026-10.csv .json | Perfume dupes price list |
Each JSON file carries the dataset's method, coverage, caveats, sources and column definitions next to the rows.
docker run --rm -p 8080:8080 10ml/perfume-price-index
Then open http://localhost:8080 for the dataset list, or fetch a file directly:
curl http://localhost:8080/data/price-per-ml-index-summary.csv
The image is BusyBox httpd on busybox:1.37 (linux/amd64 and linux/arm64), runs as nobody and listens on port 8080. Tags: latest and a date version such as 2026.10.13.
The data is licensed CC BY 4.0. Credit 10ML and link to the source page, for example:
10ML (2026). 10ML Price-per-ml Index. https://10ml.com/guides/perfume-price-per-ml-index. CC BY 4.0.
Every JSON file has a ready-made citation field. The research datasets are also archived on Zenodo with DOIs.
Content type
Image
Digest
sha256:819d4d2ea…
Size
2.3 MB
Last updated
3 days ago
docker pull 10ml/perfume-price-index