Eiger Parts API
Retrieves parts and part versions, uploads STL files, checks slice job status, downloads part versions, and lists organization settings presets.
Retrieves parts and part versions, uploads STL files, checks slice job status, downloads part versions, and lists organization settings presets.
openapi: 3.0.1
info:
title: Eiger API V3
description: >-
REST API for the Markforged Eiger cloud 3D printing platform. The Eiger API
is organized around resources (devices, builds, print jobs, parts, printed
parts, users) each addressable at its own URI, accessed with standard HTTP
methods. Responses are JSON. Authentication is HTTP Basic Auth using an Eiger
Access Key (username) and Secret Key (password). Requests must use the fully
qualified host https://www.eiger.io to avoid redirect/security issues. This
document models the publicly documented Eiger API V3 surface; consult the
official reference at https://www.eiger.io/developer/spec for request and
response schemas, which are not fully reproduced here.
termsOfService: https://markforged.com/terms
contact:
name: Markforged / Eiger Support
url: https://support.markforged.com/portal/s/
version: 'v3'
servers:
- url: https://www.eiger.io/api/v3
security:
- basicAuth: []
paths:
/devices:
get:
operationId: listDevices
tags:
- Devices
summary: List all devices (printers) in the organization.
responses:
'200':
description: A list of devices.
/devices/{device_id}:
get:
operationId: getDevice
tags:
- Devices
summary: Get the state of a specific device.
parameters:
- name: device_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Device state.
post:
operationId: sendBuildToPrinter
tags:
- Devices
summary: Send a build to a printer.
parameters:
- name: device_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Build sent to the printer.
/devices/{device_id}/queue:
get:
operationId: listDeviceQueue
tags:
- Devices
summary: List queued jobs for a device.
parameters:
- name: device_id
in: path
required: true
schema:
type: string
responses:
'200':
description: A list of queued jobs.
post:
operationId: addBuildToQueue
tags:
- Devices
summary: Add a build to a device's queue.
parameters:
- name: device_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Build added to the queue.
/devices/{device_id}/queue/{queued_job_id}:
get:
operationId: getQueuedJob
tags:
- Devices
summary: Get details of a queued job.
parameters:
- name: device_id
in: path
required: true
schema:
type: string
- name: queued_job_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Queued job details.
delete:
operationId: removeQueuedJob
tags:
- Devices
summary: Remove a job from a device's queue.
parameters:
- name: device_id
in: path
required: true
schema:
type: string
- name: queued_job_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Job removed from the queue.
/builds:
get:
operationId: listBuilds
tags:
- Builds
summary: List all builds in the organization.
responses:
'200':
description: A list of builds.
/builds/{build_id}:
get:
operationId: getBuild
tags:
- Builds
summary: Retrieve a specific build.
parameters:
- name: build_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Build details.
/builds/approved:
get:
operationId: listApprovedBuilds
tags:
- Builds
summary: List approved builds.
responses:
'200':
description: A list of approved builds.
put:
operationId: updateApprovedBuilds
tags:
- Builds
summary: Update the approved-builds list.
responses:
'200':
description: Approved-builds list updated.
delete:
operationId: disableBuildApprovals
tags:
- Builds
summary: Disable build approvals.
responses:
'200':
description: Build approvals disabled.
/backlog/{build_id}:
post:
operationId: sendBuildToBacklog
tags:
- Builds
summary: Send a build to the backlog.
parameters:
- name: build_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Build sent to backlog.
/job-requests/{build_id}:
post:
operationId: addJobRequest
tags:
- Builds
summary: Send a build to the job-request queue.
parameters:
- name: build_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Build added to the job-request queue.
delete:
operationId: removeJobRequest
tags:
- Builds
summary: Remove a build from the job-request queue.
parameters:
- name: build_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Build removed from the job-request queue.
/print_jobs:
get:
operationId: listPrintJobs
tags:
- Print Jobs
summary: List print jobs.
responses:
'200':
description: A list of print jobs.
/print_jobs/{print_job_id}:
get:
operationId: getPrintJob
tags:
- Print Jobs
summary: Get print job details.
parameters:
- name: print_job_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Print job details.
/print_jobs/{print_job_id}/scan_report:
get:
operationId: getPrintJobScanReport
tags:
- Print Jobs
summary: Get scan report URLs for a print job.
parameters:
- name: print_job_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Scan report URLs.
/parts/{part_id}:
get:
operationId: getPart
tags:
- Parts
summary: Get part details.
parameters:
- name: part_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Part details.
/parts/upload_stl:
post:
operationId: uploadStl
tags:
- Parts
summary: Upload an STL file.
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'200':
description: STL uploaded; slice job created.
/parts/slice_status/{slice_job_id}:
get:
operationId: getSliceStatus
tags:
- Parts
summary: Check slice job status.
parameters:
- name: slice_job_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Slice job status.
/parts/settings_presets:
get:
operationId: listSettingsPresets
tags:
- Parts
summary: List organization settings presets.
responses:
'200':
description: A list of settings presets.
/part_versions/{part_version_id}:
get:
operationId: getPartVersion
tags:
- Parts
summary: Get a part version.
parameters:
- name: part_version_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Part version details.
/part_versions/{part_version_id}/download:
get:
operationId: getPartVersionDownload
tags:
- Parts
summary: Get a part version download URL.
parameters:
- name: part_version_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Part version download URL.
/printed_parts:
get:
operationId: listPrintedParts
tags:
- Printed Parts
summary: List printed parts.
responses:
'200':
description: A list of printed parts.
/printed_parts/{printed_part_id}:
get:
operationId: getPrintedPart
tags:
- Printed Parts
summary: Get printed part details.
parameters:
- name: printed_part_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Printed part details.
/printed_parts/{printed_part_id}/scan_report:
get:
operationId: getPrintedPartScanReport
tags:
- Printed Parts
summary: Get a printed part scan report.
parameters:
- name: printed_part_id
in: path
required: true
schema:
type: string
responses:
'200':
description: Printed part scan report.
/users:
get:
operationId: listUsers
tags:
- Organizations
summary: List organization users.
responses:
'200':
description: A list of users.
/users/{user_id}:
get:
operationId: getUser
tags:
- Organizations
summary: Get user details.
parameters:
- name: user_id
in: path
required: true
schema:
type: string
responses:
'200':
description: User details.
/dashboard/custom_analytics_csv:
get:
operationId: getCustomAnalyticsCsv
tags:
- Organizations
summary: Export custom analytics CSV.
responses:
'200':
description: Custom analytics CSV export.
content:
text/csv:
schema:
type: string
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
description: >-
HTTP Basic Auth using an Eiger Access Key as the username and Secret Key
as the password, generated from the Eiger organization settings.