GET
/
api
/
panes
List all panes
curl --request GET \
  --url http://localhost:3000/api/panes \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "message": "<string>",
  "data": [
    {
      "_id": "<string>",
      "paneNumber": "PNE-0001",
      "qrCode": "STDPLUS:PNE-0001",
      "request": "<string>",
      "order": "<string>",
      "material": "<string>",
      "inventory": "<string>",
      "currentStation": "<string>",
      "currentStatus": "pending",
      "routing": [
        "<string>"
      ],
      "customRouting": false,
      "dimensions": {
        "width": 1,
        "height": 1,
        "thickness": 1
      },
      "jobType": "<string>",
      "rawGlass": {
        "glassType": "<string>",
        "color": "<string>",
        "thickness": 123,
        "sheetsPerPane": 1
      },
      "glassType": "<string>",
      "glassTypeLabel": "<string>",
      "cornerSpec": "<string>",
      "dimensionTolerance": "<string>",
      "holes": [],
      "notches": [],
      "processes": [
        "<string>"
      ],
      "edgeTasks": [
        {
          "side": "<string>",
          "edgeProfile": "<string>",
          "machineType": "<string>",
          "status": "pending"
        }
      ],
      "withdrawal": "<string>",
      "remakeOf": "<string>",
      "mergedInto": "<string>",
      "laminateMergedAt": "2023-11-07T05:31:56Z",
      "laminateRole": "single",
      "parentPane": "<string>",
      "childPanes": [
        "<string>"
      ],
      "sheetLabel": "<string>",
      "laminateStation": "<string>",
      "startedAt": "2023-11-07T05:31:56Z",
      "completedAt": "2023-11-07T05:31:56Z",
      "deliveredAt": "2023-11-07T05:31:56Z",
      "createdAt": "2023-11-07T05:31:56Z",
      "updatedAt": "2023-11-07T05:31:56Z"
    }
  ]
}

Query: includeMerged

By default, panes with currentStatus: merged_into (retired laminate sheets/parent rows) are omitted so production views only show scannable work. Pass includeMerged=true to include them for audit or admin screens. This only applies when you are not also sending status or status_ne (those filters take precedence over the default exclusion).

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

order
string

Filter by order ID

request
string

Filter by request ID

material
string

Filter by material ID

station
string

Filter by current station ObjectId. Use the string null to find panes in virtual states (queued, completed, claimed).

status
enum<string>

Filter by exact current status

Available options:
pending,
in_progress,
awaiting_scan_out,
completed,
claimed
status_ne
enum<string>

Exclude panes with this status (not-equal filter). Useful for excluding claimed panes from order views: ?order=<id>&status_ne=claimed. If both status and status_ne are provided, status_ne takes precedence.

Available options:
pending,
in_progress,
awaiting_scan_out,
completed,
claimed
laminateRole
enum<string>

Filter by laminate role. Use parent to get only parent panes, sheet for raw sheets, single for non-laminate panes.

Available options:
single,
parent,
sheet
parentPane
string

Filter by parent pane ID. Returns all child sheets belonging to a specific parent pane.

includeMerged
enum<string>

When true, include merged_into panes. Default omits them unless status or status_ne is set.

Available options:
true,
false
limit
integer
default:200

Max results to return (default 200, max 1000)

Required range: 1 <= x <= 1000
sort
string
default:-createdAt

Sort field (prefix with - for descending)

Response

List of panes

success
boolean
Example:

true

message
string
data
object[]