Printago API
GET /v1/filament-stock/{variantId}/spools

Get tracked spools

The individually tracked spools of one filament, newest roll first Returns whole instance records — serials, intake pricing, source ids — so it is held to the same bar as the material-instance endpoints.

Requires: material.viewmaterial.instance.view

Path Parameters

variantId required
string
Material variant ID

Response Schema

MaterialInstance[]
Array of MaterialInstance, each with:
createdAtrequired
string
format: date-time
customMetadataoptional
Record<string, any>
Construct a type with a set of properties K of type T
externalIdoptionalnullable
string
formoptionalnullable
"spool" | "refill"
spoolrefill
idrequired
string
pattern: ^[a-z0-9]{24}$
intakeLineIdoptionalnullable
string
pattern: ^[a-z0-9]{24}$
labelCodeoptionalnullable
string
Reserved QR label code.
materialIdrequired
string
pattern: ^[a-z0-9]{24}$
materialTyperequired
string
nominalGramsoptionalnullable
number
What the roll weighed when full.
pricePer1000goptionalnullable
number
What was paid for this roll, per kg, in cents.
remainingMaterialrequired
number
min: 0
serialoptionalnullable
string
The roll's own identifier (RFID tag id, or one entered by hand).
serialSourceoptionalnullable
"tag" | "manual" | "integration"
tagmanualintegration
sourceoptionalnullable
string
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
updatedAtrequired
string
format: date-time
variantIdrequired
string
pattern: ^[a-z0-9]{24}$

Example Response

200 OK — application/json
[
  {
    "variantId": "string",
    "materialId": "string",
    "materialType": "string",
    "remainingMaterial": 0,
    "source": "string",
    "externalId": "string",
    "customMetadata": {},
    "serial": "string",
    "serialSource": "tag",
    "form": "spool",
    "nominalGrams": 1,
    "pricePer1000g": 1,
    "labelCode": "string",
    "intakeLineId": "string",
    "id": "string",
    "storeId": "string",
    "createdAt": "2025-01-15T12:00:00.000Z",
    "updatedAt": "2025-01-15T12:00:00.000Z"
  }
]