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

Get stock activity

Every gram in and out of a filament's stock, newest first Needs the filament-inventory add-on. Bulk rows have a null `instanceId`. With the spool-tracking add-on, rows for the filament's tracked rolls come back too, each naming its roll; `instanceId` narrows the list to one roll. On a print row, `consumedGrams` is what the print used and `deltaGrams` is what came off; they differ when the stock ran short.

Requires: material.view

Path Parameters

variantId required
string
Material variant ID

Query Parameters

limit optional
number
Rows per page, default 50, at most 200.
offset optional
number
Rows to skip, for the next page.
instanceId optional
string
Only this tracked roll's rows.

Response Schema

StockActivityEntry[]
Array of StockActivityEntry, each with:
actorIdrequirednullable
string
actorNamerequirednullable
string
causerequirednullable
object
attemptNumberrequirednullable
number
intakeIdrequirednullable
string
pattern: ^[a-z0-9]{24}$
partNamerequirednullable
string
printerNamerequirednullable
string
printJobIdrequirednullable
string
pattern: ^[a-z0-9]{24}$
supplierrequirednullable
string
consumedGramsrequirednullable
number
On print rows, what the print used. Larger than `-deltaGrams` when the bucket or roll ran short, since stock never goes below zero. Null on other kinds.
createdAtrequired
string
format: date-time
deltaGramsrequired
number
What was applied to the bucket or roll.
idrequired
string
pattern: ^[a-z0-9]{24}$
instancerequirednullable
object
The roll a roll row moved, null on bucket rows. A deleted roll carries the serial and label code it had when the row was written.
deletedrequired
boolean
The roll has since been deleted; its rows stay.
labelCoderequirednullable
string
serialrequirednullable
string
instanceIdrequirednullable
string
The tracked roll this row moved; null for the variant's bulk bucket.
pattern: ^[a-z0-9]{24}$
intakeLineIdrequirednullable
string
pattern: ^[a-z0-9]{24}$
kindrequired
"manual" | "intake" | "convert" | "print" | "opening" | "closing"
manualintakeconvertprintopeningclosing
materialUsageIdrequirednullable
string
pattern: ^[a-z0-9]{24}$
printHistoryIdrequirednullable
string
pattern: ^[a-z0-9]{24}$
reasonrequirednullable
string
remainingAfterGramsrequired
number
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
[
  {
    "instance": {
      "serial": "string",
      "labelCode": "string",
      "deleted": true
    },
    "cause": {
      "printJobId": "string",
      "partName": "string",
      "attemptNumber": 1,
      "printerName": "string",
      "intakeId": "string",
      "supplier": "string"
    },
    "variantId": "string",
    "instanceId": "string",
    "deltaGrams": 1,
    "consumedGrams": 1,
    "remainingAfterGrams": 1,
    "kind": "manual",
    "reason": "string",
    "actorId": "string",
    "actorName": "string",
    "materialUsageId": "string",
    "printHistoryId": "string",
    "intakeLineId": "string",
    "id": "string",
    "storeId": "string",
    "createdAt": "2025-01-15T12:00:00.000Z",
    "updatedAt": "2025-01-15T12:00:00.000Z"
  }
]