Printago API
GET /v1/reports/materials

Materials report

Filament consumption by type and brand, plus spool days-of-cover.

Requires: analytics.view

Query Parameters

start required
string
end required
string
printerIds optional
string
Comma-separated printer ids; omitted = all printers.

Response Schema

MaterialsReport
byMaterialrequired
object[]
brandrequired
string
costrequired
number
gramsrequired
number
typerequired
string
wastedGramsrequired
number
wasteRatiorequired
number
coveragerequired
object
Denominators for the coverage indicator every report panel shows. print_history material/estimate fields are snapshots that can be absent; charts must state what fraction of attempts they actually cover.
attemptsrequired
number
withGramsrequired
number
withLayersrequired
number
withQueueTimesrequired
number
withTimeEstimaterequired
number
withWeightEstimaterequired
number
rangerequired
object
daysrequired
number
endrequired
string
startrequired
string
timezonerequired
string
spoolsrequired
object[]
colorrequired
string
dailyRunRateGramsrequired
number
daysOfCoverrequired
number
instanceIdrequired
string
namerequired
string
remainingGramsrequired
number
typerequired
string
usageByDayrequired
object[]
Stacked by material type; top types kept, tail folded into "Other".
costrequired
number
daterequired
string
gramsrequired
number
typerequired
string

Example Response

200 OK — application/json
{
  "range": {
    "start": "string",
    "end": "string",
    "timezone": "string",
    "days": 1
  },
  "coverage": {
    "attempts": 1,
    "withGrams": 1,
    "withLayers": 1,
    "withTimeEstimate": 1,
    "withWeightEstimate": 1,
    "withQueueTimes": 1
  },
  "usageByDay": [
    {
      "date": "string",
      "type": "string",
      "grams": 1
    }
  ],
  "byMaterial": [
    {
      "type": "string",
      "grams": 1,
      "wastedGrams": 1
    }
  ],
  "spools": [
    {
      "instanceId": "string",
      "name": "string",
      "type": "string",
      "remainingGrams": 1
    }
  ]
}