---
title: "Make a library project file an inspected print source"
method: PUT
path: "/v1/model-files/{id}/print-source"
tags: ["Print Jobs"]
---

# Make a library project file an inspected print source

`PUT /v1/model-files/{id}/print-source`

## Request

- Base URL: `https://api.printhiv3d.com`
- URL: `https://api.printhiv3d.com/v1/model-files/{id}/print-source`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/printhiv3d/apis/hive-api-documentation/docs/v1/model-files/:id/print-source/put.ts> (a function with typed inputs; its response is checked against the schema)

Idempotent. Copies the library .3mf into the organization's source vault once, then reports its plates, material slots, and machine. The status is `reading` until the worker has inspected the source; repeat the call to read it again. Slots are zero-based. A file that is not a .3mf, or that holds a toolpath, answers 422.

## Path parameters

- `id` string, uuid, required

## Response `200`

Default Response

- union
  - object
    - `status` 'reading', required
    - `sourceVersionId` string, uuid, required
    - `filename` string, required
    - `bytes` integer, required
  - object
    - `status` 'ready', required
    - `sourceVersionId` string, uuid, required
    - `filename` string, required
    - `bytes` integer, required
    - `plates` object[], required
      - `plateNumber` integer, required
      - `objects` object[], required
        - `name` string, nullable, required
      - `usedSlots` integer[], required
      - `usage` 'resolved' | 'unresolved', required
    - `slots` object[], required
      - `sourceSlot` integer, required
      - `material` string, nullable, required
      - `color` string, nullable, required
      - `profile` string, nullable, required
    - `machine` object, nullable, required
      - `model` string, required
      - `nozzleDiameterMm` number, required
      - `bed` string, required
      - `compatibleMachines` string[]
      - `compatibleMachinesDeclared` boolean
    - `printerModel` string, nullable, required
  - object
    - `status` 'failed', required
    - `sourceVersionId` string, uuid, required
    - `filename` string, required
    - `bytes` integer, required
    - `error` object, required
      - `code` 'invalid_archive' | 'unsafe_path' | 'unsafe_xml' | 'resource_limit' | 'invalid_project' | 'toolpath_only' | 'processing_timeout' | 'storage_object_changed' | 'inspection_interrupted' | 'upload_interrupted', required
      - `message` string, required

## Other responses

- `400`: Invalid file id
- `401`: Authentication required
- `403`: API key requires control scope
- `404`: Library file not found
- `409`: Default Response
- `413`: Default Response
- `422`: Default Response
- `429`: Default Response
- `503`: Default Response

## Changes

- **2026-11-10** `09f2403145b5`: 1 info
  - api operation id `openPrintSource` was added
- **2026-11-10** `12865bb46cca`: 2 info
  - added the optional property `anyOf[subschema #2]/machine/compatibleMachines` to the response with the `200` status
  - added the optional property `anyOf[subschema #2]/machine/compatibleMachinesDeclared` to the response with the `200` status
- **2026-11-08** `1a89960bb819`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/printhiv3d/apis/hive-api-documentation/changes/v1/model-files/:id/print-source/put.md)

---

[API](https://skmtc.dev/printhiv3d/apis/hive-api-documentation.md) - [All operations](https://skmtc.dev/printhiv3d/apis/hive-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/printhiv3d/apis/hive-api-documentation/revisions/35a7515c29d5?raw)
