## Send Build to Device
Select a build ID to send to a device as a print job. Once the request to print is sent, the program confirms the job has started by polling the device status.
```python
import os
import time
import requests
# get API credentials from environment variables
ACCESS_KEY = os.environ.get('ACCESS_KEY')
SECRET_KEY = os.environ.get('SECRET_KEY')
BUILD_ID = '00000000-0000-0000-0000-000000000000'
PRINTER_ID = '00000000-0000-0000-0000-000000000000'
responses = {
201: 'Print Job Created',
401: 'Not Authorized. Check API Keys',
400: 'Invalid Print. Check Print ID and Compatibility',
404: 'Could not find Print or Printer',
409: 'Printer not ready to receive Print',
}
# api endpoint for interacting with our device
device_url = f"https://www.eiger.io/api/v3/devices/{PRINTER_ID}"
response = requests.post(device_url, data={"build": BUILD_ID}, auth=(ACCESS_KEY,SECRET_KEY))
code = response.status_code
message = responses.get(code, 'Something went wrong.')
if code != 201:
print(response.text)
raise Exception(message)
print_job_id = response.json()['id']
total_tries = 3
retry_interval = 2 # seconds
for i in range(total_tries):
response = requests.get(device_url, auth=(ACCESS_KEY,SECRET_KEY)).json()
if response['active_job']['id'] == print_job_id:
break
time.sleep(retry_interval)
else:
print('Print Job did not make it to Printer')
exit(1)
# display the print_job
print(response)
exit(0)
```
Click on each step to see details, and highlight the corresponding code above
Get API Credentials
You will need your API credentials (Access Key & Secret Key) to authenticate API requests.
Get Device and Build ID
You will need the ID of both the device and the build.
Define Status Codes
Define a textual message for the possible status codes.
Request the Print to Start
This request will start a Print Job if the Printer is ready and the Print is compatible. Please make sure the printer is safe to use prior to making this request!
Check if the Print Failed to Start
The API will let you know if the Print cannot be started.
Ensure the the Printer is Printing
Check the status of the Printer to make sure the Print Job is running
Display result
contact:
url: https://support.markforged.com
name: Markforged Support
version: 3.0.1
x-logo:
url: '/developer/assets/images/mf-logo-dark.svg'
altText: Markforged Logo
servers:
- url: https://www.eiger.io/api/v3
security:
- basic: []
tags:
- name: Builds
description: Endpoints for interacting with builds
- name: Devices
description: Endpoints for interacting with devices
- name: Parts
description: Endpoints for interacting with parts
- name: Print Jobs
description: Endpoints for interacting with print jobs
- name: Users
description: Endpoints for interacting with users
paths:
/backlog/{build_id}:
post:
tags:
- Builds
operationId: sendBuildToBacklog
summary: Send Build to Backlog
description: |
### Send a build to the backlog.
This will create a printjob with a backlogged status,
and return the printjob.
responses:
'201':
$ref: '#/components/responses/sendBuildToBacklog'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/build_id'
requestBody:
$ref: '#/components/requestBodies/sendBuildToBacklog'
/builds:
get:
tags:
- Builds
operationId: listBuilds
summary: List Builds
description: |
### List all the builds in your organization
Items are returned in reverse chronological order.
responses:
'200':
$ref: '#/components/responses/listBuilds'
'401':
$ref: '#/components/responses/unauthorizedError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/generic.page.number'
- $ref: '#/components/parameters/generic.page.size'
- $ref: '#/components/parameters/generic.filter.title.eq'
- $ref: '#/components/parameters/generic.filter.created_at.lt'
- $ref: '#/components/parameters/generic.filter.created_at.le'
- $ref: '#/components/parameters/generic.filter.created_at.gt'
- $ref: '#/components/parameters/generic.filter.created_at.ge'
- $ref: '#/components/parameters/generic.filter.updated_at.lt'
- $ref: '#/components/parameters/generic.filter.updated_at.le'
- $ref: '#/components/parameters/generic.filter.updated_at.gt'
- $ref: '#/components/parameters/generic.filter.updated_at.ge'
- $ref: '#/components/parameters/generic.filter.part_count.eq'
- $ref: '#/components/parameters/generic.filter.part_count.ne'
- $ref: '#/components/parameters/generic.filter.part_count.lt'
- $ref: '#/components/parameters/generic.filter.part_count.le'
- $ref: '#/components/parameters/generic.filter.part_count.gt'
- $ref: '#/components/parameters/generic.filter.part_count.ge'
- $ref: '#/components/parameters/generic.filter.sliced.eq'
- $ref: '#/components/parameters/generic.filter.blacksmith_enabled.eq'
- $ref: '#/components/parameters/generic.filter.approved.eq'
- $ref: '#/components/parameters/generic.filter.approved.ne'
- $ref: '#/components/parameters/generic.sort.order.asc'
- $ref: '#/components/parameters/listBuilds.sort.by'
/builds/{build_id}:
get:
tags:
- Builds
operationId: readBuild
summary: Get Build
description: |
### Get a single build
responses:
'200':
$ref: '#/components/responses/readBuild'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/build_id'
/builds/approved:
get:
tags:
- Builds
operationId: listApprovedBuilds
summary: List Approved Builds
description: |
### List all approved builds in your organization
responses:
'200':
$ref: '#/components/responses/listApprovedBuilds'
'204':
description: Build approvals are disabled
'401':
$ref: '#/components/responses/unauthorizedError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/generic.page.size'
- $ref: '#/components/parameters/generic.page.number'
put:
tags:
- Builds
operationId: approveBuilds
summary: Approve Builds
description: |
### Update all specified builds to be approved, unapproving all others.
responses:
'204':
description: Successfully approved builds.
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
requestBody:
$ref: '#/components/requestBodies/approveBuilds'
delete:
tags:
- Builds
operationId: disableApprovedBuilds
summary: Disable Build Approvals
description: |
### Disable all approved builds, leaving all builds as default (approved)
responses:
'204':
description: Successfully disabled approved builds.
'401':
$ref: '#/components/responses/unauthorizedError'
'500':
$ref: '#/components/responses/serverError'
/devices:
get:
tags:
- Devices
operationId: listDevices
summary: List Devices
description: |
### List all devices in organization
responses:
'200':
$ref: '#/components/responses/listDevices'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/generic.filter.name.eq'
- $ref: '#/components/parameters/generic.filter.created_at.le'
- $ref: '#/components/parameters/generic.filter.created_at.lt'
- $ref: '#/components/parameters/generic.filter.created_at.gt'
- $ref: '#/components/parameters/generic.filter.created_at.ge'
- $ref: '#/components/parameters/generic.filter.updated_at.le'
- $ref: '#/components/parameters/generic.filter.updated_at.lt'
- $ref: '#/components/parameters/generic.filter.updated_at.gt'
- $ref: '#/components/parameters/generic.filter.updated_at.ge'
- $ref: '#/components/parameters/generic.sort.order.asc'
- $ref: '#/components/parameters/listDevices.sort.by'
- $ref: '#/components/parameters/generic.page.number'
- $ref: '#/components/parameters/generic.page.size'
/devices/{device_id}:
get:
tags:
- Devices
operationId: readDevice
summary: Get a Device
description: |
### Get the state of a device
responses:
'200':
$ref: '#/components/responses/readDevice'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/device_id'
post:
tags:
- Devices
operationId: printToPrinter
summary: Print to Printer
description: |
### Send a build to a printer
> WARNING: Remotely operating machinery can be dangerous.
> Please confirm that the printer is safe to use prior to using this endpoint.
responses:
'201':
$ref: '#/components/responses/printToPrinter'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'409':
$ref: '#/components/responses/conflictError'
requestBody:
$ref: '#/components/requestBodies/printToPrinter'
/devices/{device_id}/queue:
get:
tags:
- Devices
operationId: listDeviceQueue
summary: List Queued Jobs
description: |
### List jobs in a device queue
responses:
'200':
$ref: '#/components/responses/listDeviceQueue'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
post:
tags:
- Devices
operationId: appendToDeviceQueue
summary: Add Build to Queue
description: |
### Add a build to the device queue
responses:
'201':
$ref: '#/components/responses/appendToDeviceQueue'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
requestBody:
$ref: '#/components/requestBodies/appendToDeviceQueue'
parameters:
- $ref: '#/components/parameters/device_id'
/devices/{device_id}/queue/{queued_job_id}:
delete:
tags:
- Devices
operationId: removeFromDeviceQueue
summary: Remove Job From Queue
description: |
### Remove a job from the queue
responses:
'204':
description: Build removed from queue
# No content
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
get:
tags:
- Devices
operationId: readDeviceQueue
summary: Get Queued Job
description: |
### Get job information from queue
responses:
'200':
$ref: '#/components/responses/readDeviceQueue'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/device_id'
- $ref: '#/components/parameters/queued_job_id'
/job-requests/{build_id}:
post:
tags:
- Builds
operationId: sendBuildToJobRequestQueue
summary: Send Build to Job Request Queue
description: |
### Send a build to the Job Request Queue.
This will create a printjob with a backlogged status,
and return the printjob.
responses:
'201':
$ref: '#/components/responses/sendBuildToJobRequestQueue'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/build_id'
requestBody:
$ref: '#/components/requestBodies/sendBuildToJobRequestQueue'
delete:
tags:
- Builds
operationId: removeBuildFromJobRequestQueue
summary: Delete Build from Job Request Queue
description: |
### Deletes a build's print job from the job request queue
responses:
'204':
description: Successfully deleted printjob from job request queue.
'401':
$ref: '#/components/responses/unauthorizedError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/build_id'
/parts/{part_id}:
get:
tags:
- Parts
operationId: readPart
summary: Get Part
description: |
### Get a single part.
responses:
'200':
$ref: '#/components/responses/readPart'
'400':
$ref: '#/components/responses/badRequestError'
'500':
$ref: '#/components/responses/resourceNotFoundError'
parameters:
- $ref: '#/components/parameters/part_id'
/parts/upload_stl:
post:
tags:
- Parts
operationId: uploadStl
summary: Upload a Part
description: |
### Upload an STL file.
```bash
$ curl --location 'https://eiger.io/api/v3/parts/upload_stl' \
--header 'Authorization: Basic ' \
--form 'stlFile=@"/Users/your.name/Downloads/theFileName.stl"' \
--form 'userId="uuid"'
```
requestBody:
$ref: '#/components/requestBodies/uploadStl'
responses:
'201':
$ref: '#/components/responses/uploadStl'
'400':
$ref: '#/components/responses/badRequestError'
'500':
$ref: '#/components/responses/resourceNotFoundError'
/parts/slice_status/{slice_job_id}:
get:
tags:
- Parts
operationId: getSliceStatus
summary: Get the Status of a Slice Job
description: |
### STATUS TYPES: REQUESTED, QUEUED, IN_PROGRESS, CANCELED, ERROR, COMPLETED
responses:
'200':
$ref: '#/components/responses/getSliceStatus'
'400':
$ref: '#/components/responses/badRequestError'
'500':
$ref: '#/components/responses/resourceNotFoundError'
parameters:
- $ref: '#/components/parameters/slice_job_id'
/parts/settings_presets:
get:
tags:
- Parts
operationId: getOrgSettingsPresets
summary: List Organization Settings Presets
description: |
responses:
'200':
$ref: '#/components/responses/getOrgSettingsPresets'
'400':
$ref: '#/components/responses/badRequestError'
'500':
$ref: '#/components/responses/resourceNotFoundError'
/part_versions/{part_version_id}:
get:
tags:
- Parts
operationId: readPartVersion
summary: Get Part Version
description: |
### Get a single part version.
responses:
'200':
$ref: '#/components/responses/readPartVersion'
'400':
$ref: '#/components/responses/badRequestError'
'500':
$ref: '#/components/responses/resourceNotFoundError'
parameters:
- $ref: '#/components/parameters/part_version_id'
/part_versions/{part_version_id}/download:
get:
tags:
- Parts
operationId: readSignedURL
summary: Get Part Version Download URL
description: |
### Get the download URL for the STL file of a part version, valid for 30 seconds.
responses:
'200':
$ref: '#/components/responses/readSignedURL'
'400':
$ref: '#/components/responses/badRequestError'
'500':
$ref: '#/components/responses/resourceNotFoundError'
parameters:
- $ref: '#/components/parameters/part_version_id'
/print_jobs:
get:
tags:
- Print Jobs
operationId: listPrintJobs
summary: List Print Jobs
description: |
### List the print jobs in your organization
Items are returned in reverse chronological order.
responses:
'200':
$ref: '#/components/responses/listPrintJobs'
'401':
$ref: '#/components/responses/unauthorizedError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/generic.page.size'
- $ref: '#/components/parameters/generic.page.number'
- $ref: '#/components/parameters/listPrintJobs.filter.state.eq'
- $ref: '#/components/parameters/listPrintJobs.filter.state.ne'
- $ref: '#/components/parameters/generic.filter.created_at.lt'
- $ref: '#/components/parameters/generic.filter.created_at.le'
- $ref: '#/components/parameters/generic.filter.created_at.gt'
- $ref: '#/components/parameters/generic.filter.created_at.ge'
- $ref: '#/components/parameters/generic.filter.started_at.lt'
- $ref: '#/components/parameters/generic.filter.started_at.le'
- $ref: '#/components/parameters/generic.filter.started_at.gt'
- $ref: '#/components/parameters/generic.filter.started_at.ge'
- $ref: '#/components/parameters/generic.filter.ended_at.lt'
- $ref: '#/components/parameters/generic.filter.ended_at.le'
- $ref: '#/components/parameters/generic.filter.ended_at.gt'
- $ref: '#/components/parameters/generic.filter.ended_at.ge'
- $ref: '#/components/parameters/generic.filter.updated_at.lt'
- $ref: '#/components/parameters/generic.filter.updated_at.le'
- $ref: '#/components/parameters/generic.filter.updated_at.gt'
- $ref: '#/components/parameters/generic.filter.updated_at.ge'
- $ref: '#/components/parameters/generic.filter.build.eq'
- $ref: '#/components/parameters/generic.filter.device.eq'
- $ref: '#/components/parameters/generic.sort.order.desc'
- $ref: '#/components/parameters/listPrintJobs.sort.by'
/print_jobs/{print_job_id}:
get:
tags:
- Print Jobs
operationId: readPrintJob
summary: Get Print Job
description: |
### Get a single print job
responses:
'200':
$ref: '#/components/responses/readPrintJob'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/print_job_id'
/print_jobs/{print_job_id}/scan_report:
get:
tags:
- Print Jobs
operationId: getPrintJobPartScanReport
summary: Get Print Job Scan Reports
description: |
### Get all URLs to download the scan reports for printed parts associated with a print job
A null value will be returned for any scan reports that haven't been generated yet.
responses:
'200':
$ref: '#/components/responses/getPrintJobPartScanReport'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/print_job_id'
/printed_parts:
get:
tags:
- Parts
operationId: listPrintedParts
summary: List Printed Parts
description: |
### Get all Printed Parts in an organization.
Items are returned sorted by printed_at in reverse chronological order.
responses:
'200':
$ref: '#/components/responses/listPrintedParts'
'401':
$ref: '#/components/responses/unauthorizedError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/listPrintedParts.sort.by'
- $ref: '#/components/parameters/generic.sort.order.desc'
- $ref: '#/components/parameters/generic.page.size'
- $ref: '#/components/parameters/generic.page.number'
- $ref: '#/components/parameters/listPrintedParts.filter.state.eq'
- $ref: '#/components/parameters/listPrintedParts.filter.state.ne'
- $ref: '#/components/parameters/listPrintedParts.filter.notes.eq'
- $ref: '#/components/parameters/listPrintedParts.filter.notes.ne'
/printed_parts/{printed_part_id}:
get:
tags:
- Parts
operationId: readPrintedPart
summary: Get Printed Part
description: |
### Get a single printed part
responses:
'200':
$ref: '#/components/responses/readPrintedPart'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/printed_part_id'
/printed_parts/{printed_part_id}/scan_report:
get:
tags:
- Parts
operationId: getPrintedPartScanReport
summary: Get a Printed Part's Scan Report
description: |
### Get the URL to download the scan report for a printed part
A null value will be returned if the scan report hasn't been generated yet.
responses:
'200':
$ref: '#/components/responses/getPrintedPartScanReport'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/printed_part_id'
/users:
get:
tags:
- Users
operationId: listUsers
summary: List Users
description: |
### List all users in organization
responses:
'200':
$ref: '#/components/responses/listUsers'
'400':
$ref: '#/components/responses/badRequestError'
'401':
$ref: '#/components/responses/unauthorizedError'
'404':
$ref: '#/components/responses/resourceNotFoundError'
'500':
$ref: '#/components/responses/serverError'
parameters:
- $ref: '#/components/parameters/generic.filter.name.eq'
- $ref: '#/components/parameters/listUsers.filter.email.eq'
- $ref: '#/components/parameters/generic.filter.created_at.le'
- $ref: '#/components/parameters/generic.filter.created_at.lt'
- $ref: '#/components/parameters/generic.filter.created_at.gt'
- $ref: '#/components/parameters/generic.filter.created_at.ge'
- $ref: '#/components/parameters/generic.filter.updated_at.le'
- $ref: '#/components/parameters/generic.filter.updated_at.lt'
- $ref: '#/components/parameters/generic.filter.updated_at.gt'
- $ref: '#/components/parameters/generic.filter.updated_at.ge'
- $ref: '#/components/parameters/generic.sort.order.asc'
- $ref: '#/components/parameters/listUsers.sort.by'
- $ref: '#/components/parameters/generic.page.number'
- $ref: '#/components/parameters/generic.page.size'
components:
securitySchemes:
basic:
type: http
scheme: basic
schemas:
## Views
BuildView:
description: Build
type: object
properties:
id:
description: Build Identifier
type: string
format: uuid
title:
description: Build Title
type: string
created_at:
description: Date/Time the Build was Created
type: string
format: date-time
nullable: true
updated_at:
description: Date/Time the Build was Last Updated
type: string
format: date-time
nullable: true
part_count:
description: Number of Parts
type: integer
preview_url:
description: A preview url of the Build valid for one hour.
type: string
device_series:
$ref: '#/components/schemas/DeviceSeriesEnum'
primary_material:
description: Primary Material
type: string
secondary_material:
description: Secondary Material
type: string
ccs_primary_required:
description: Amount of the Primary Material Required (cm³)
type: number
nullable: true
ccs_secondary_required:
description: Amount of the Secondary Material Required (cm³)
type: number
nullable: true
ccs_tertiary_required:
description: Amount of the Tertiary Material Required (cm³)
type: number
nullable: true
estimated_print_seconds:
description: Estimated time to print (seconds)
type: number
nullable: true
sliced:
description: Has the build been sliced?
type: boolean
blacksmith_enabled:
description: Is the build enabled for Inspection scanning?
type: boolean
approved:
description: Describes if the Build is approved to be printed
type: boolean
nullable: true
required:
- id
- title
- created_at
- updated_at
- part_count
- device_series
- primary_material
- secondary_material
- ccs_primary_required
- ccs_secondary_required
- ccs_tertiary_required
- estimated_print_seconds
- sliced
- blacksmith_enabled
- approved
BuildViewExtended:
allOf:
- $ref: '#/components/schemas/BuildView'
- type: object
properties:
part_versions:
type: array
items:
$ref: '#/components/schemas/PartVersionView'
poses:
type: array
items:
$ref: '#/components/schemas/PoseView'
required:
- part_versions
- poses
DeviceView:
type: object
properties:
id:
description: ID of the device
type: string
format: uuid
name:
type: string
description: Name of the device
device_type:
oneOf:
- type: string
enum:
- Unknown
- $ref: '#/components/schemas/PrinterTypeEnum'
device_series:
$ref: '#/components/schemas/DeviceSeriesEnum'
created_at:
type: string
format: date-time
description: Time the printer was created
nullable: true
updated_at:
type: string
format: date-time
description: Time the printer was last updated
nullable: true
queue_estimated_time_seconds:
type: number
format: float
minimum: 0
description: Total time estimate to print every print job in the printer's queue in seconds
nullable: true
queue_length:
type: integer
minimum: 0
description: Number of print jobs in the printer's queue
nullable: true
loaded_primary_material:
type: string
nullable: true
description: Name of the material loaded in the primary hot end
loaded_secondary_material:
type: string
nullable: true
description: Name of the material loaded in the secondary hot end
ccs_primary_remaining:
type: number
format: float
nullable: true
description: Cubic Centimeters of primary material remaining
ccs_secondary_remaining:
type: number
format: float
nullable: true
description: Cubic Centimeters of secondary material remaining
state:
$ref: '#/components/schemas/PrinterStateEnum'
required:
- id
- name
- device_type
- device_series
- created_at
- updated_at
- queue_estimated_time_seconds
- queue_length
DeviceViewExtended:
allOf:
- $ref: '#/components/schemas/DeviceView'
- type: object
properties:
active_job:
allOf:
- $ref: '#/components/schemas/PrintJobView'
- $ref: '#/components/schemas/DeviceStatusView'
- type: object
properties:
build:
$ref: '#/components/schemas/BuildView'
required:
- build
DeviceStatusView:
type: object
properties:
printing_state:
$ref: '#/components/schemas/PrintingStateEnum'
current_layer:
description: |
Current layer number
type: integer
minimum: 1
nullable: true
layer_count:
description: |
Number of layers
type: integer
minimum: 1
nullable: true
progress:
description: |
Percentage of completion for print job
type: number
format: float
minimum: 0
maximum: 100
nullable: true
estimated_seconds_remaining:
description: |
Estimated time left in print job in seconds
type: integer
minimum: 0
nullable: true
PartView:
type: object
properties:
id:
type: string
format: uuid
created_at:
type: string
format: date-time
nullable: true
updated_at:
type: string
format: date-time
nullable: true
cloned_from:
type: string
format: uuid
nullable: true
latest_partversion:
type: string
format: uuid
nullable: true
part_versions:
type: array
items:
type: string
format: uuid
required:
- id
- created_at
- updated_at
- cloned_from
- latest_partversion
- part_versions
PartVersionView:
type: object
properties:
id:
type: string
format: uuid
part_id:
type: string
format: uuid
title:
type: string
description:
type: string
nullable: true
version_number:
type: number
preview_url:
type: string
sliced:
type: boolean
device_series:
type: string
primary_material:
type: string
secondary_material:
type: string
settings:
type: object
properties:
scale:
type: number
euler:
type: object
properties:
x:
type: number
y:
type: number
z:
type: number
units:
type: string
required:
- id
- part_id
- title
- description
- version_number
- sliced
PoseView:
type: object
properties:
id:
type: string
format: uuid
x:
type: integer
y:
type: integer
theta:
type: integer
PrintedPartView:
type: object
properties:
id:
type: string
format: uuid
state:
$ref: '#/components/schemas/PrintedPartViewStateEnum'
nullable: true
notes:
type: string
nullable: true
printed_at:
type: string
format: date-time
nullable: true
updated_at:
type: string
format: date-time
nullable: true
required:
- id
- state
- printed_at
- updated_at
PrintedPartViewExtended:
allOf:
- $ref: '#/components/schemas/PrintedPartView'
- type: object
properties:
print_job:
allOf:
- $ref: '#/components/schemas/PrintJobView'
- type: object
properties:
build:
$ref: '#/components/schemas/BuildView'
required:
- build
required:
- print_job
PrintJobView:
type: object
properties:
id:
description: |
ID of the print job
type: string
format: uuid
state:
$ref: '#/components/schemas/PrintJobStateEnum'
queued_at:
description: |
This when the print job was queued to the device
type: string
format: date-time
nullable: true
created_at:
description: |
This when the print job was first created
type: string
format: date-time
nullable: true
started_at:
description: |
Time when the print job started on the devices.
In most cases, this is the same value as created_at.
type: string
format: date-time
nullable: true
updated_at:
description: |
The last time the print job's status was updated
type: string
format: date-time
nullable: true
ended_at:
description: |
Time when the print job ended
type: string
format: date-time
nullable: true
required:
- id
- state
- created_at
- queued_at
- started_at
- updated_at
- ended_at
PrintJobViewExtended:
allOf:
- $ref: '#/components/schemas/PrintJobView'
- $ref: '#/components/schemas/DeviceStatusView'
- type: object
properties:
build:
$ref: '#/components/schemas/BuildView'
device:
$ref: '#/components/schemas/DeviceView'
nullable: true
required:
- build
- device
QueuedPrintJobView:
description: An node in the print queue
type: object
properties:
id:
description: ID of the Queued Print Job
type: string
format: uuid
state:
$ref: '#/components/schemas/QueuedPrintJobStateEnum'
queued_at:
description: Time the print job was created
type: string
format: date-time
nullable: true
updated_at:
description: Time the queued print job was last updated
type: string
format: date-time
nullable: true
required:
- id
- state
- queued_at
- updated_at
QueuedPrintJobViewExtended:
allOf:
- $ref: '#/components/schemas/QueuedPrintJobView'
- type: object
properties:
build:
$ref: '#/components/schemas/BuildView'
required:
- build
UserView:
type: object
properties:
id:
description: ID of the User
type: string
format: uuid
nullable: true
name:
type: string
description: Name of the User
nullable: true
email:
description: Email of the User
type: string
nullable: true
## Enumerations
DeviceClassEnum:
description: Device Class (Printer, Furnace or Wash)
type: string
enum:
- Unknown
- Printer
- Furnace
- Wash
DeviceSeriesEnum:
description: Device Series
oneOf:
- type: string
enum:
- 'Unknown'
- $ref: '#/components/schemas/PrinterSeriesEnum'
- $ref: '#/components/schemas/FurnaceSeriesEnum'
- $ref: '#/components/schemas/WashSeriesEnum'
FurnaceSeriesEnum:
description: Furnace Series
type: string
enum:
- Sinter-1
- Sinter-2
FurnaceStateEnum:
type: string
enum:
- Unknown
- Offline
- Ready
- Running Job
- Finished
- Disabled
- Busy
- Updating
- Running Utility
- Canceled Job
- Downloading
- System Cooldown
- Setup Workflow
- System Precheck
PrintedPartViewStateEnum:
description: State of a printed part instance
type: string
enum:
- Unknown
- Printing
- Print Failed
- Printed
- Washing
- Washed
- Drying
- Dried
- Sintering
- Sintered
- Sinter Failed
- Wash Aborted
- Discarded
PrinterTypeEnum:
description: Model name of the printer
type: string
enum:
- Mark One
- Mark Two
- Onyx One
- Onyx Pro
- X3
- X5
- X7
- Metal X
- FX20
PrinterSeriesEnum:
description: Printer Series
type: string
enum:
- Mark One
- Desktop Series
- Industrial Series
- Metal X
- FX20
PrintingStateEnum:
description: State of the print job on the device
type: string
enum:
- Downloading
- Heating
- Printing
- Scanning
- Cooling Down
- Performing Automatic Changeover
- Stabilizing Build Chamber
- Unknown
PrinterStateEnum:
type: string
enum:
- Unknown
- Offline
- Disabled
- Ready
- Printing
- Print Finished
- Canceling
- Print Bed Needs Clearing
- Configuration in Progress
- Pausing
- Print Paused
- Resuming Print
- Low on Material
- Out of Material
- Purge Strip Removal Needed
- Update in Progress
- Dislocation Error
- Bed Needs Leveling
- Incompatible Print File
- Fiber Jam
- Material Jam
- Vacuum Not Engaged
- Print Failure Detected
- Update Required On Device
- Custom Branch In Use
- Running Utility
- Utility Finished
- User Action Required
PrintJobStateEnum:
description: State of the print job
type: string
enum:
- Completed
- Canceled
- Failed
- Paused
- Printing
- Backlogged
- Unknown
QueuedPrintJobStateEnum:
type: string
enum:
- Queued
- Removed
- Started
- Unknown
WashSeriesEnum:
description: Wash series
type: string
enum:
- Wash-1
## Requests
AppendToDeviceQueueRequest:
type: object
properties:
build:
description: ID of build to append to queue
type: string
format: uuid
required:
- build
additionalProperties: false
ApproveBuildsRequest:
type: object
properties:
builds:
description: IDs of builds to approve
type: array
items:
type: string
format: uuid
required:
- builds
additionalProperties: false
PrintToPrinterRequest:
type: object
properties:
build:
description: ID of build to print
type: string
format: uuid
required:
- build
additionalProperties: false
SendBuildToBacklogRequest:
type: object
properties:
dueDate:
description: Target date to print
type: string
format: date
additionalProperties: false
RemoveBuildFromBacklogRequest:
type: object
properties:
dueDate:
description: Target date to print
type: string
format: date
additionalProperties: false
OrgSettingsPresetsResponse:
type: array
items:
type: object
required:
- title
- id
properties:
title:
description: The Settings Preset title.
type: string
id:
description: The Settings Preset id.
type: string
format: uuid
UploadStlRequest:
type: object
properties:
stlFile:
type: string
format: file-path
folderId:
description: Folder upload destination. Defaults to the Library.
type: string
format: uuid
settingsPresetId:
description: Settings Preset for the part. Defaults to Markforged Smart Settings.
type: string
format: uuid
userId:
description: The part owner. Defaults to organization owner.
type: string
format: uuid
# solidMetadata:
# type: object
# description: |
# An object with unique field id(s) as the key and its value.
# Example: `{ 'fieldIdA': 'value', 'fieldIdB': 'value' }`
# properties:
# fieldId:
# type: string
# fieldValue:
# type: string
required:
- stlFile
## Responses
AppendToDeviceQueueResponse:
$ref: '#/components/schemas/QueuedPrintJobView'
ListApprovedBuildsResponse:
type: object
properties:
has_more_items:
description: Are there more items available on the next page?
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/BuildView'
required:
- has_more_items
- items
ListBuildsResponse:
type: object
properties:
has_more_items:
description: Are there more items available on the next page?
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/BuildView'
required:
- has_more_items
- items
ListDeviceQueueResponse:
type: object
properties:
device:
allOf:
- $ref: '#/components/schemas/DeviceViewExtended'
queue:
type: array
items:
$ref: '#/components/schemas/QueuedPrintJobViewExtended'
required:
- device
- queue
ListDevicesResponse:
type: object
properties:
has_more_items:
description: Are there more items available on the next page?
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/DeviceViewExtended'
required:
- has_more_items
- items
additionalProperties: false
ListUsersResponse:
type: object
properties:
has_more_items:
description: Are there more items available on the next page?
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/UserView'
required:
- has_more_items
- items
additionalProperties: false
ListPrintJobsResponse:
type: object
properties:
has_more_items:
description: Are there more items available on the next page?
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/PrintJobViewExtended'
required:
- has_more_items
- items
additionalProperties: false
ListPrintedPartsResponse:
type: object
properties:
has_more_items:
description: Are there more items available on the next page?
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/PrintedPartViewExtended'
required:
- has_more_items
- items
PrintToPrinterResponse:
$ref: '#/components/schemas/PrintJobView'
ReadBuildResponse:
$ref: '#/components/schemas/BuildViewExtended'
ReadDeviceResponse:
$ref: '#/components/schemas/DeviceViewExtended'
ReadDeviceQueueResponse:
anyOf:
- $ref: '#/components/schemas/QueuedPrintJobViewExtended'
- $ref: '#/components/schemas/QueuedPrintJobView'
ReadPartResponse:
$ref: '#/components/schemas/PartView'
SliceStatusResponse:
type: object
properties:
status:
type: string
ReadPartVersionResponse:
$ref: '#/components/schemas/PartVersionView'
ReadPrintJobResponse:
$ref: '#/components/schemas/PrintJobViewExtended'
GetPrintJobPartScanReportResponse:
type: array
items:
type: object
required:
- printed_part_id
- scan_report_url
properties:
printed_part_id:
description: The printed part ID
type: string
format: uuid
scan_report_url:
description: |
The URL to download the Inspection report.
This URL will be valid for approximately one hour.
If the URL is `null`, the Inspection report hasn't been generated for the printed part.
You can request that the report be generated by using the `api/v3/printed_parts/:printed_part_id/scan_report` endpoint.
type: string
nullable: true
ReadPrintedPartResponse:
$ref: '#/components/schemas/PrintedPartViewExtended'
ReadSignedURLResponse:
type: object
properties:
url:
type: string
SendBuildToBacklogResponse:
$ref: '#/components/schemas/PrintJobView'
RemoveBuildFromBacklogResponse:
$ref: '#/components/schemas/PrintJobView'
GetPrintedPartScanReportResponse:
type: object
properties:
scan_report_url:
type: string
nullable: true
required:
- scan_report_url
UploadStlResponse:
type: object
properties:
slice_job_id:
type: string
format: uuid
part_version_id:
type: string
format: uuid
## Misc
Error:
type: object
properties:
message:
type: string
description: Message describing to developer what went wrong
required:
- message
additionalProperties: false
parameters:
## Query parameters
# generic
generic.filter.approved.eq:
description: |
Limit the list to items that have been approved.
name: filter[approved][eq]
in: query
required: false
schema:
type: boolean
nullable: true
generic.filter.approved.ne:
description: |
Limit the list to items that have been approved.
name: filter[approved][ne]
in: query
required: false
schema:
type: boolean
nullable: true
generic.filter.blacksmith_enabled.eq:
description: |
Limit the list to items that have been enabled for Inspection scan.
name: filter[blacksmith_enabled][eq]
in: query
required: false
schema:
type: boolean
generic.filter.build.eq:
description: |
Limit the list to items with the specified build ID (UUID).
name: filter[build][eq]
in: query
required: false
schema:
type: string
format: uuid
generic.filter.created_at.lt:
description: |
Limit the list to items created before *date*.
name: filter[created_at][lt]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.created_at.le:
description: |
Limit the list to items created before or on *date*.
name: filter[created_at][le]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.created_at.gt:
description: |
Limit the list to items created after *date*.
name: filter[created_at][gt]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.created_at.ge:
description: |
Limit the list to items created after or on *date*.
name: filter[created_at][ge]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.device.eq:
description: |
Limit the list to items with the specified device ID (UUID).
name: filter[device][eq]
in: query
required: false
schema:
type: string
format: uuid
generic.filter.ended_at.lt:
description: |
Limit the list to items that ended before *date*.
name: filter[ended_at][lt]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.ended_at.le:
description: |
Limit the list to items that ended before or on *date*.
name: filter[ended_at][le]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.ended_at.gt:
description: |
Limit the list to items that ended after *date*.
name: filter[ended_at][gt]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.ended_at.ge:
description: |
Limit the list to items that ended after or on *date*.
name: filter[ended_at][ge]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.name.eq:
description: |
Limit the list to tiems that have the specified name
name: filter[name][eq]
in: query
required: false
schema:
type: string
generic.filter.part_count.eq:
description: |
Limit the list to items that have the specified number of parts.
name: filter[part_count][eq]
in: query
required: false
schema:
type: integer
minimum: 1
generic.filter.part_count.ne:
description: |
Limit the list to items that do not have the specified number of parts.
name: filter[part_count][ne]
in: query
required: false
schema:
type: integer
minimum: 1
generic.filter.part_count.lt:
description: |
Limit the list to items that have less than the specified number of parts.
name: filter[part_count][lt]
in: query
required: false
schema:
type: integer
minimum: 1
generic.filter.part_count.le:
description: |
Limit the list to items that have less than or equal to the specified number of parts.
name: filter[part_count][le]
in: query
required: false
schema:
type: integer
minimum: 1
generic.filter.part_count.gt:
description: |
Limit the list to items that have greater than the specified number of parts.
name: filter[part_count][gt]
in: query
required: false
schema:
type: integer
minimum: 1
generic.filter.part_count.ge:
description: |
Limit the list to items that have greater than or equal to the specified number of parts.
name: filter[part_count][ge]
in: query
required: false
schema:
type: integer
minimum: 1
generic.filter.sliced.eq:
description: |
Limit the list to items that have been sliced.
name: filter[sliced][eq]
in: query
required: false
schema:
type: boolean
generic.filter.started_at.lt:
description: |
Limit the list to items that started before *date*.
name: filter[started_at][lt]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.started_at.le:
description: |
Limit the list to items that started before or on *date*.
name: filter[started_at][le]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.started_at.gt:
description: |
Limit the list to items that started after *date*.
name: filter[started_at][gt]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.started_at.ge:
description: |
Limit the list to items that started after or on *date*.
name: filter[started_at][ge]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.title.eq:
description: |
Limit the list to items with the specified title.
name: filter[title][eq]
in: query
required: false
schema:
type: string
generic.filter.updated_at.lt:
description: |
Limit the list to items that updated before *date*.
name: filter[updated_at][lt]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.updated_at.le:
description: |
Limit the list to items that updated before or on *date*.
name: filter[updated_at][le]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.updated_at.gt:
description: |
Limit the list to items that updated after *date*.
name: filter[updated_at][gt]
in: query
required: false
schema:
type: string
format: date-time
generic.filter.updated_at.ge:
description: |
Limit the list to items that updated after or on *date*.
name: filter[updated_at][ge]
in: query
required: false
schema:
type: string
format: date-time
generic.page.size:
description: |
The number of items to return on each page (between 1 and 1000, defaults to 100).
Items are returned in pages, where the number of items in a page are determined by the `page[size]`
parameter, and the `page[number]` parameter determines which page is returned.
name: page[size]
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
default: 100
generic.page.number:
description: |
The number of the page to return. (defaults to 1)
Items are returned in pages, where the number of items in a page are determined by the `page[size]`
parameter, and the `page[number]` parameter determines which page is returned.
name: page[number]
in: query
required: false
schema:
type: integer
minimum: 1
default: 1
generic.sort.order.asc:
description: |
The direction to sort items, 'asc' (ascending) or 'desc' (descending).
If you don't specify a sort order, the default order is asc (ascending).
name: sort[order]
in: query
required: false
schema:
type: string
enum:
- asc
- desc
default: asc
generic.sort.order.desc:
description: |
The direction to sort items, 'asc' (ascending) or 'desc' (descending).
If you don't specify a sort order, the default order is descending (descending).
name: sort[order]
in: query
required: false
schema:
type: string
enum:
- asc
- desc
default: desc
# listBuildJobs
listBuilds.sort.by:
description: Sort the list
name: sort[by]
in: query
required: false
schema:
type: string
enum:
- created_at
- title
default: created_at
# listDevices
listDevices.sort.by:
description: Sort the list
name: sort[by]
in: query
required: false
schema:
type: string
enum:
- name
- created_at
- updated_at
default: name
# listUsers
listUsers.sort.by:
description: Sort the list
name: sort[by]
in: query
required: false
schema:
type: string
enum:
- name
- email
- created_at
default: name
listUsers.filter.email.eq:
description: |
Limit the list to items that have the specified email
name: filter[email][eq]
in: query
required: false
schema:
type: string
# listPrintJobs
listPrintJobs.filter.state.eq:
description: |
Limit the list of print jobs to only items with the specified *state*
name: filter[state][eq]
in: query
required: false
schema:
$ref: '#/components/schemas/PrintJobStateEnum'
listPrintJobs.filter.state.ne:
description: |
Limit the list of print jobs to exclude items with the specified *state*
name: filter[state][ne]
in: query
required: false
schema:
$ref: '#/components/schemas/PrintJobStateEnum'
listPrintJobs.sort.by:
description: Sort the list
name: sort[by]
in: query
required: false
schema:
type: string
enum:
- created_at
- started_at
- updated_at
- ended_at
default: created_at
# listPrintedParts
listPrintedParts.sort.by:
description: Sort the list
name: sort[by]
in: query
required: false
schema:
type: string
enum:
- printed_at
- updated_at
default: printed_at
listPrintedParts.filter.state.eq:
description: |
Limit the list of printed parts to only items with the specified *state*
name: filter[state][eq]
in: query
required: false
schema:
$ref: '#/components/schemas/PrintedPartViewStateEnum'
listPrintedParts.filter.state.ne:
description: |
Limit the list of printed parts to exclude items with the specified *state*
name: filter[state][ne]
in: query
required: false
schema:
$ref: '#/components/schemas/PrintedPartViewStateEnum'
listPrintedParts.filter.notes.eq:
description: |
Limit the list of printed parts to only items with the specified *notes*
name: filter[notes][eq]
in: query
required: false
schema:
type: string
maxLength: 255
listPrintedParts.filter.notes.ne:
description: |
Limit the list of printed parts to exclude items with the specified *notes*
name: filter[notes][ne]
in: query
required: false
schema:
type: string
maxLength: 255
## Path parameters
build_id:
name: build_id
in: path
description: Build ID
required: true
schema:
type: string
format: uuid
device_id:
name: device_id
in: path
description: Device ID
required: true
schema:
type: string
format: uuid
part_id:
name: part_id
in: path
description: Part ID
required: true
schema:
type: string
format: uuid
part_version_id:
name: part_version_id
in: path
description: Part Version ID
required: true
schema:
type: string
format: uuid
print_job_id:
name: print_job_id
in: path
description: Print Job ID
required: true
schema:
type: string
format: uuid
queued_job_id:
name: queued_job_id
in: path
description: Queued build ID
required: true
schema:
type: string
format: uuid
printed_part_id:
name: printed_part_id
in: path
description: Printed Part ID
required: true
schema:
type: string
format: uuid
slice_job_id:
name: slice_job_id
in: path
description: Slice Job ID
required: true
schema:
type: string
format: uuid
requestBodies:
appendToDeviceQueue:
content:
application/json:
schema:
$ref: '#/components/schemas/AppendToDeviceQueueRequest'
approveBuilds:
content:
application/json:
schema:
$ref: '#/components/schemas/ApproveBuildsRequest'
printToPrinter:
content:
application/json:
schema:
$ref: '#/components/schemas/PrintToPrinterRequest'
sendBuildToJobRequestQueue:
content:
application/json:
schema:
$ref: '#/components/schemas/SendBuildToBacklogRequest'
sendBuildToBacklog:
content:
application/json:
schema:
$ref: '#/components/schemas/SendBuildToBacklogRequest'
uploadStl:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/UploadStlRequest'
responses:
badRequestError:
description: Parameter or payload input for the request was invalid.
headers:
X-Reference-ID:
schema:
type: integer
description: An identifier of the error instance that can be used for Markforged support.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
unauthorizedError:
description: Authentication information is missing or invalid.
headers:
X-Reference-ID:
schema:
type: integer
description: An identifier of the error instance that can be used for Markforged support.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
conflictError:
description: Request could not be completed because there is a conflicting action being performed on the resource.
headers:
X-Reference-ID:
schema:
type: integer
description: An identifier of the error instance that can be used for Markforged support.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
resourceNotFoundError:
description: The requested resource does not or exist or cannot be found.
headers:
X-Reference-ID:
schema:
type: integer
description: An identifier of the error instance that can be used for Markforged support.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
serverError:
description: The server failed to process the request.
headers:
X-Reference-ID:
schema:
type: integer
description: An identifier of the error instance that can be used for Markforged support.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
## backlog
sendBuildToJobRequestQueue:
description: Send a build to the Job Request Queue.
content:
application/json:
schema:
$ref: '#/components/schemas/SendBuildToBacklogResponse'
sendBuildToBacklog:
description: Send a build to the backlog.
content:
application/json:
schema:
$ref: '#/components/schemas/SendBuildToBacklogResponse'
## builds
listBuilds:
description: A list of builds.
content:
application/json:
schema:
$ref: '#/components/schemas/ListBuildsResponse'
readBuild:
description: A single build.
content:
application/json:
schema:
$ref: '#/components/schemas/ReadBuildResponse'
listApprovedBuilds:
description: A list of approved builds.
content:
application/json:
schema:
$ref: '#/components/schemas/ListApprovedBuildsResponse'
## devices
listDevices:
description: A list of devices.
content:
application/json:
schema:
$ref: '#/components/schemas/ListDevicesResponse'
readDevice:
description: A single device.
content:
application/json:
schema:
$ref: '#/components/schemas/ReadDeviceResponse'
printToPrinter:
description: |
Build sent to printer.
NOTE: This is an "asynchronous request". It will respond with a success
without checking that the printer successfully accepted the print job.
You will need to monitor the state of the Printer or PrintJob to confirm success.
content:
application/json:
schema:
$ref: '#/components/schemas/PrintToPrinterResponse'
listDeviceQueue:
description: List of queued jobs.
content:
application/json:
schema:
$ref: '#/components/schemas/ListDeviceQueueResponse'
appendToDeviceQueue:
description: A single queued job.
content:
application/json:
schema:
$ref: '#/components/schemas/AppendToDeviceQueueResponse'
readDeviceQueue:
description: A single queued job.
content:
application/json:
schema:
$ref: '#/components/schemas/ReadDeviceQueueResponse'
listPrintJobs:
description: A list of print jobs.
content:
application/json:
schema:
$ref: '#/components/schemas/ListPrintJobsResponse'
readPrintJob:
description: A single build.
content:
application/json:
schema:
$ref: '#/components/schemas/ReadPrintJobResponse'
getPrintJobPartScanReport:
description: A list of Inspection report urls.
content:
application/json:
schema:
$ref: '#/components/schemas/GetPrintJobPartScanReportResponse'
## parts
readPart:
description: A single part.
content:
application/json:
schema:
$ref: '#/components/schemas/ReadPartResponse'
uploadStl:
description: The slice job id and part id.
content:
application/json:
schema:
$ref: '#/components/schemas/UploadStlResponse'
getSliceStatus:
description: The status of a slice job.
content:
application/json:
schema:
$ref: '#/components/schemas/SliceStatusResponse'
getOrgSettingsPresets:
description: The Settings Presets of an organization.
content:
application/json:
schema:
$ref: '#/components/schemas/OrgSettingsPresetsResponse'
# part versions
readPartVersion:
description: A single part version.
content:
application/json:
schema:
$ref: '#/components/schemas/ReadPartVersionResponse'
readSignedURL:
description: URL to download STL file.
content:
application/json:
schema:
$ref: '#/components/schemas/ReadSignedURLResponse'
## printed parts
listPrintedParts:
description: All printed parts in an organization.
content:
application/json:
schema:
$ref: '#/components/schemas/ListPrintedPartsResponse'
readPrintedPart:
description: A single printed part.
content:
application/json:
schema:
$ref: '#/components/schemas/ReadPrintedPartResponse'
getPrintedPartScanReport:
description: Return URL to download scan report
headers:
Location:
schema:
$ref: '#/components/schemas/GetPrintedPartScanReportResponse'
# users
listUsers:
description: A list of users.
content:
application/json:
schema:
$ref: '#/components/schemas/ListUsersResponse'