---
title: "Get the cut list for a set of job operations: each part's quantity, dates, material, and the DXF attachment ids to download. An entry that does not resolve to exactly one operation with a system operation is reported in `skipped` with a reason, not as an error."
method: POST
path: "/api/nesting/work-package-manifest"
tags: ["Nesting"]
---

# Get the cut list for a set of job operations: each part's quantity, dates, material, and the DXF attachment ids to download. An entry that does not resolve to exactly one operation with a system operation is reported in \`skipped\` with a reason, not as an error.

`POST /api/nesting/work-package-manifest`

## Request body

- NestingWorkPackageManifestParameters — The job operations to build a work package for. Each is named by its job and its job-operation id — the `job.id` and `jobOperationId` values the nestable-jobs list returns — because a job-operation id alone is not unique across jobs.
  - `jobOperations` NestingWorkPackageJobOperationParameters[], required — The job operations to cut, 1 to 500. The same entry may not appear twice.
    - `jobId` string, required — Id of the job the operation belongs to.
    - `jobOperationId` string, required — Id of the job operation, as returned by the nestable-jobs list.
    - `itemToMakeId` string, nullable — Id of the job's item-to-make line the operation belongs to. Optional; needed only when the job carries the same job-operation id on more than one item to make, which the manifest reports as `ambiguousJobOperation`.

## Response `200`

The manifest. Every requested pair appears once, in `parts` or in `skipped`.

- NestingWorkPackageManifestDto — The cut list for a set of job operations: what to cut, how many, from what, by when, and the drawing attachments to download for each part.
  - `parts` NestingWorkPackagePartDto[], required — One part per requested job operation that exists, in request order.
    - `jobOperationId` string, required — Id of the job operation, as sent.
    - `job` CommonReferenceDto, required — Represents a reference to a document in a DB collection
      - `id` string, nullable — Unique Id associated to the referenced object
      - `name` string, nullable — Descriptive name associated to the object
    - `customerName` string, nullable — Name of the job's customer.
    - `productionDueDateUtc` string, date-time, nullable — The job's production due date.
    - `scheduledStartUtc` string, date-time, nullable — Scheduled start of this operation.
    - `scheduledEndUtc` string, date-time, nullable — Scheduled end of this operation.
    - `item` CommonReferenceDto — Represents a reference to a document in a DB collection
      - `id` string, nullable — Unique Id associated to the referenced object
      - `name` string, nullable — Descriptive name associated to the object
    - `itemNumber` string, nullable — The item's number.
    - `itemRevision` string, nullable — The item's revision.
    - `itemToMakeId` string, required — Id of the job's item-to-make line the operation belongs to.
    - `quantityToMake` number, double, required — Quantity the operation is to make, as stored — not rounded to whole parts.
    - `operation` CommonGuidOrMongoReferenceDto, required — A reference to an object whose id is either a GUID or a Mongo id, such as a routing operation.
      - `id` string, nullable — Unique Id associated to the referenced object
      - `name` string, nullable — Descriptive name associated to the object
    - `workOrderOperationId` string, nullable — Id of the work-order operation this job operation is already nested on. Null when it has not been nested yet.
    - `isRework` boolean, required — True when the operation is a rework of an earlier one. Its material is the source operation's.
    - `hasMultipleMaterials` boolean, required — True when the operation requires more than one material, so FulcrumProduct.PublicApi.Dto.Nesting.NestingWorkPackagePartDto.Material is only the first of them.
    - `material` NestingWorkPackageMaterialDto — A required material and the shape it is cut from.
      - `materialShapeId` string, required — Id of the material shape.
      - `name` string, required — Name of the material shape as recorded on the job. Always present; the label to display.
      - `form` 'sheet' | 'plate' | 'roundBar' | 'flatBar' | 'channel' | 'squareTube' | 'angle' | 'treadPlate' | 'hexBar' | 'squareBar' | 'teeBar' | 'hBeam' | 'rectTube' | 'pipe' | 'wBeam' | 'sBeam' | 'roundTube' | 'rectBar' | 'wideBar' | 'reinforcingBar' | 'halfRoundBar' | 'halfOvalBar' — Stock form of a material shape. Mirrors the shop's material-form list member for member.
      - `materialName` string, nullable — Display name of the shape's material, composed from the material master. Null when the master carries no name for it.
      - `grade` string, nullable — Grade of the shape's material. Null when the material master carries none.
      - `thickness` number, double, nullable — Thickness of the shape, falling back to its primary dimension when no thickness is recorded.
      - `thicknessDescription` string, nullable — Thickness as described on the shape, such as a gauge.
      - `dimensionUnits` string, nullable — Unit the shape's dimensions are in: `Inch`, `Foot`, `Yard`, `Millimeter`, `Centimeter` or `Meter`.
    - `drawings` NestingWorkPackageDrawingDto[], required — The DXF drawings to cut this part from, ordered by `attachmentId`. Empty when none resolve.
      - `attachmentId` string, required — Id of the attachment. Download it through `GET /attachments/{attachmentId}/download`.
      - `fileName` string, required — File name of the drawing.
      - `ownerType` 'item' | 'job', required — Which entity owns a drawing on the work-package manifest. Downloading an `Item`-owned drawing needs View Item on a user-bound token; a `Job`-owned one needs View Job.
      - `isOperationSpecific` boolean, required — True when the drawing is tagged for this operation specifically rather than for the item as a whole.
  - `skipped` NestingWorkPackageSkippedDto[], required — Requested job operations that produced no part, in request order.
    - `jobId` string, required — Id of the job, as sent. Together with FulcrumProduct.PublicApi.Dto.Nesting.NestingWorkPackageSkippedDto.JobOperationId this identifies the request entry.
    - `jobOperationId` string, required — Id of the job operation, as sent.
    - `reason` 'notFound' | 'ambiguousJobOperation' | 'noSystemOperation', required — Why a requested job operation produced no part on the work-package manifest.

## Other responses

- `400` — The body was missing or malformed, listed no entry or more than 500, or listed the same entry twice.

## Changes

- **2026-09-17** `dea755e5a8ab` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/changes/api/nesting/work-package-manifest/post.md)

---

[API](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi.md) · [All operations](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/llms.txt) · [OpenAPI document](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/revisions/df59e1af68d7?raw)
