Printago API
GET
/v1/reports/materials
Materials report
Filament consumption by type and brand, plus spool days-of-cover.
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
}
]
}