---
title: "Manually assign filaments to a print job"
method: PATCH
path: "/v1/print-jobs/{id}/filaments"
tags: ["Filament Consumption", "Print Jobs"]
---

# Manually assign filaments to a print job

`PATCH /v1/print-jobs/{id}/filaments`

Assigns filaments to a print job for consumption tracking. Use this for past jobs that don't have captured filament data. Only terminal jobs (COMPLETED, FAILED, CANCELLED) can have filaments manually assigned.

## Path parameters

- `id` string, required

## Request body

- object
  - `slots` object[], required — Array of slot-to-material assignments
    - `position` number, required — Slot position (0-15 for AMS, 254/255 for external spool)
    - `material_id` string, uuid, required — Material ID to assign to this slot
  - `organizationId` string, uuid — Organization ID (optional, defaults to user's primary organization)

## Response `200`

Filaments assigned successfully

- object — Filaments assigned successfully
  - `success` boolean
  - `job` object
    - `id` number
    - `captured_filaments` object
      - `printer_id` unknown
      - `captured_at` string
      - `slots` object[]
        - `position` number
        - `material_id` unknown
        - `material_type` unknown
        - `color` unknown
      - `manual_assignment` boolean

## Other responses

- `400` — Bad request - invalid input or job not in terminal state
- `404` — Print job not found
- `422` — Unprocessable - material not found
- `500` — Internal server error

---

[API](https://skmtc.net/printhiv3d/apis/hive-api-documentation.md) · [All operations](https://skmtc.net/printhiv3d/apis/hive-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/printhiv3d/hive-api-documentation/versions/3b06bcb5f808/schema)
