Runs, Patterns & Master Data

Scope

Run and pattern endpoints need runs:read; machines and paper types need their own read scopes. Read-only — runs are created and driven in the web app.

List Runs

http
GET /api/v2/runs?page=1&size=20&status=IN_PROGRESS
json
{
  "success": true,
  "data": {
    "data": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "status": "IN_PROGRESS",
        "machineId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "machineName": "Winder A",
        "paperType": "Kraft",
        "gsmValue": 80,
        "totalWastePct": 0.38,
        "createdAt": "2026-06-06T05:45:00"
      }
    ],
    "meta": { "page": 1, "size": 20, "total": 7, "totalPages": 1 }
  }
}

Get a Run

http
GET /api/v2/runs/{id}

The summary fields plus notes, totalPaperConsumedMT and totalProductMT.

Run Patterns

http
GET /api/v2/runs/{id}/patterns

All cutting patterns for the run, in sequence. Each has its wastePct / wasteMm, widthUsedMm, runForMT, status, and a paperCuts array of { orderWidthId, widthMm, stripCount }.

Status Vocabulary

The API maps internal run statuses to a stable set:

  • PENDING — optimized, accepted, not yet started (internal Optimized).
  • IN_PROGRESS — started, or paused.
  • CLOSED — completed.
  • CANCELLED — cancelled.

Runs still in Draft or Optimizing report their internal name.

Machines & Paper Types

http
GET /api/v2/machines
GET /api/v2/paper-types

Machines returns id, name, deckleWidth, maxBlades. Paper types returns each grade with a nested gsm array of { id, gsmValue, minimumTrimming }. Both return a plain array (no pagination).

Was this page helpful?

Something unclear or missing? Reach out and we'll update this page.

Give Feedback