Data and API
Structured access to the AdditiveCompare dataset for developers, researchers and AI agents.
Data files
/data/fff-systems.json: every printer with specs, price basis, sources and verification date./data/material-rules.json: material thresholds and status definitions./llms.txt: a plain-text guide to the site for language models.
A null value means the manufacturer doesn't publish that figure. Temperatures are in °C, lengths in mm, volumes in litres.
Structured data on pages
Each printer page carries a schema.org Product in JSON-LD with specs as PropertyValue entries and UN/CEFACT unit codes (CEL for °C, MMT for mm, LTR for litres). Material pages carry an ItemList of qualified printers.
Printer record fields
| Field | Meaning |
|---|---|
slug | Stable identifier, also the printer page path. |
buildMm | Build envelope [X, Y, Z] in mm. |
nozzleMaxC | Maximum nozzle temperature. |
chamber | type (active, passive, enclosed, open), activeMaxC, optional passiveMaxC. |
maxSpeedMmS | Manufacturer's maximum speed claim. |
exteriorMm | Machine external dimensions in mm. |
price | usd, basis, and quoteOnly for quote-only systems. |
materialSystem | open, validated or closed. |
vendorCatalog | Closed systems only: material keys the vendor sells. |
sources, verified | Where each record came from and when it was checked. |
Linking to a view
The comparison tool reads its state from the URL, so any view can be linked or bookmarked:
/?material=peek&x=volL&y=tier&idex=1 /?select=markforged-fx20&view=table
Parameters: material, x, y, size, select, view, q, eco, minNozzle, maxTier, and 1-valued flags idex, heatedChamber, fiber, hideUnfit, hideDiscontinued. Metric keys: volL, noz, cham, spd, foot, eff, tier.
In-page scripting interface
Browser agents on the comparison page can call window.AdditiveCompare instead of operating the controls:
AdditiveCompare.qualify("peek") // status and headroom for every printer
AdditiveCompare.pareto("noz", "cham") // frontier slugs for the visible set
AdditiveCompare.setState({ material: "ultem", xAxis: "volL", yAxis: "tier",
filters: { idex: true } })
AdditiveCompare.shortlist.add("bambu-lab-x1e")
AdditiveCompare.shortlist.compare() // full records for the shortlist
Every change fires an additivecompare:change event on document with the new state.
Use of the data
You're welcome to read and cite the data with a link to the printer page it came from. For bulk, commercial or republication use, email data@additivecompare.com. A keyed server API with live updates is planned.