Printago API
GET
/v1/filament-stock
Get filament stock
On-hand filament weight per variant, split into tracked spools and untagged bulk Needs the filament-inventory add-on. The tracked figures are 0 without the spool-tracking add-on. No figure is ever negative: stock stops at 0 g.
Query Parameters
includeEmpty
optional
boolean
Include variants that have never held stock.
Response Schema
FilamentStockResponse
rowsrequired
object[]
brandrequirednullable
string
bulkGramsrequired
number
colorrequirednullable
string
lastIntakeAtrequirednullable
string
format: date-time
materialIdrequirednullable
string
pattern: ^[a-z0-9]{24}$
materialNamerequirednullable
string
materialTyperequirednullable
string
onHandGramsrequired
number
Bulk + every tracked spool of this variant.
pricePer1000grequirednullable
number
Effective price per kg (variant's, else the material's), in cents.
trackedCountrequired
number
trackedGramsrequired
number
valueCentsrequirednullable
number
variantIdrequired
string
pattern: ^[a-z0-9]{24}$
variantNamerequired
string
summaryrequired
object
bulkGramsrequired
number
onHandGramsrequired
number
trackedCountrequired
number
trackedGramsrequired
number
unpricedVariantCountrequired
number
Variants holding stock at no known price, so the value above is a floor.
valueCentsrequired
number
What the priced stock is worth. Filament with no price is not in here.
variantCountrequired
number
Example Response
200 OK — application/json
{
"rows": [
{
"variantId": "string",
"variantName": "string",
"materialId": "string",
"materialName": "string",
"brand": "string",
"materialType": "string",
"color": "string",
"onHandGrams": 1,
"bulkGrams": 1,
"trackedGrams": 1,
"trackedCount": 1,
"pricePer1000g": 1,
"valueCents": 1,
"lastIntakeAt": "2025-01-15T12:00:00.000Z"
}
],
"summary": {
"onHandGrams": 1,
"bulkGrams": 1,
"trackedGrams": 1,
"trackedCount": 1,
"valueCents": 1,
"unpricedVariantCount": 1,
"variantCount": 1
}
}