Version v1.0.0-alpha (latest)
Schemas
Every schema in the PreForm API 1.0.0-alpha specification. Field types that name a schema link here.
AutoLayoutMode#
enum AutoLayoutMode
Which workspace's layout parameters to use for this call.
DEFAULT- Use the scene's standard layout parameters.
DENTAL- Temporarily use the scene's dental workspace parameters for this call, then restore the scene's previous parameters afterwards.
AutoLayoutRequest#
AutoLayoutRequest
Arranges the selected models on the build platform. Omitting model_ids lays out every model in the scene.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to lay out. Omitted or empty means every model in the scene.
Which workspace's layout parameters to use for this call.
DEFAULT- Use the scene's standard layout parameters.
DENTAL- Temporarily use the scene's dental workspace parameters for this call, then restore the scene's previous parameters afterwards.
model_spacing_mmnumberMinimum gap to leave between models.
allow_overlapping_supportsbooleanAllow one model's supports to intersect another model or its supports.
lock_rotationbooleanOnly translate models and never rotate them, regardless of their individual lock.
custom_boundsLayoutBoundsA custom rectangular region of the build platform to lay out within, in user XY coordinates. All four fields are required together.
Show child attributes
x_min_mmnumberRequiredx_max_mmnumberRequiredy_min_mmnumberRequiredy_max_mmnumberRequired
seedintegerRandom seed controlling the layout algorithm. Given the same models and settings, the same seed reproduces the same arrangement. Omitted means a random seed is used each call.
layout_attemptsintegerNumber of independent layout attempts to try, keeping the best. Defaults to an algorithm-chosen value, or 200 when seed is set without an explicit value (to keep seeded results deterministic).
iterations_per_attemptintegerOptimization iterations per attempt. Defaults to an algorithm-chosen value, or 25000 when seed is set without an explicit value (to keep seeded results deterministic).
on_layout_failureenum OnLayoutFailureWhat to do when the layout cannot fit every requested model.
FAIL_AND_LEAVE_SCENE_UNCHANGED- Fail the request with OPERATION_FAILED. The scene is left unchanged.
EJECT_A_MODEL_AND_RETRY- Greedily remove seeded-random models from the layout and retry until the rest fit, up to max_ejections removals. Ejected models are removed from the scene.
max_ejectionsintegerMaximum number of models that may be ejected before the layout fails outright. Only valid with on_layout_failure: "EJECT_A_MODEL_AND_RETRY". Omitted means no cap.
AutoLayoutResponse#
AutoLayoutResponse
The outcome of a layout for every requested model, in the request's model_ids order. Ids are bare UUIDs. Scene state is not included; fetch it with /v1/scene/model/list/ or /v1/scene/get/.
Fields
laid_out_model_idsarray of string (uuid)sRequiredRequested models that remain in the scene.
ejected_model_idsarray of string (uuid)sRequiredRequested models removed from the scene to make the rest fit. Empty unless on_layout_failure is EJECT_A_MODEL_AND_RETRY.
AutoOrientMode#
enum AutoOrientMode
Selects a specialized auto-orient algorithm.
DENTAL- Orients for dental appliance printing by tilting the occlusal (biting) plane, rather than searching for a quality-optimized orientation.
AutoOrientRequest#
object
Automatically orients the selected models. Omitting mode runs the default quality-optimized algorithm. tilt is only meaningful together with mode: "DENTAL".
Fields
Defaultoption 1 of 2Show fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to auto-orient. Omitted or empty means every model in the scene.
Dental Modeoption 2 of 2Show fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to auto-orient. Omitted or empty means every model in the scene.
Selects a specialized auto-orient algorithm.
DENTAL- Orients for dental appliance printing by tilting the occlusal (biting) plane, rather than searching for a quality-optimized orientation.
tiltintegerDegrees to tilt the occlusal plane. Only applies when
modeis"DENTAL".
AutoPackRequest#
AutoPackRequest
Packs the selected models within the build volume without duplicating them. Unselected models are left in place and act as fixed obstacles.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to pack. Omitted or empty means every model in the scene.
model_spacing_mmnumberMinimum gap to leave between models. Floored at the material's visual collision offset if smaller.
distance_from_wall_mmnumberMargin to leave between models and the build volume walls.
seedintegerRandom seed controlling the packing algorithm. Omitted means a random seed is used each call.
packing_modeenum PackingModePacking objective used to arrange models within the (SLS) build volume.
PACK_HEIGHT- Minimize the height the packed models occupy.
PACK_VOLUME- Minimize the volume the packed models occupy.
on_pack_failureenum OnPackFailureWhat to do with models the packer could not place inside the build volume.
FAIL_AND_LEAVE_SCENE_UNCHANGED- Fail the request with OPERATION_FAILED. The scene is left unchanged.
PARK_OUTSIDE_BUILD_VOLUME- Keep the pack. Models that fit take their packed poses; models that did not are parked beside the build volume, outside it, and reported in unpacked_model_ids. Nothing is removed from the scene.
AutoPackResponse#
AutoPackResponse
The outcome of a pack for every selected visible model. Hidden models are never packed, so a hidden model in the selection appears in neither array. Ids are bare UUIDs; their order is unspecified. Scene state is not included; fetch it with /v1/scene/model/list/ or /v1/scene/get/.
Fields
packed_model_idsarray of string (uuid)sRequiredSelected visible models that ended inside the build volume.
unpacked_model_idsarray of string (uuid)sRequiredSelected visible models the packer could not place. Empty unless on_pack_failure is PARK_OUTSIDE_BUILD_VOLUME.
AutoSupportRequest#
AutoSupportRequest
Generates supports for the selected models, replacing any supports they already have. Fields left out keep the scene's current support settings.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to auto-support. Omitted or empty means every model in the scene.
densitynumberSupport touchpoint density.
slope_multipliernumberScales how aggressively steep overhangs are supported.
touchpoint_size_mmnumberDiameter of each support touchpoint.
raft_thickness_mmnumberThickness of the raft under the supports.
height_above_raft_mmnumberVertical gap left between the raft and the model.
z_compression_correction_mmnumberRaft thickness compensation applied for print compression.
early_layer_merge_mmnumberHeight over which nearby touchpoints are merged into wider bases.
only_minimabooleanGenerate only the touchpoints the model strictly needs to print (a faster, reduced-fidelity pass) instead of the full support structure.
raft_typeenum RaftTypeWhich raft style to build under a model's supports.
FULL_RAFT- A single solid raft under the whole support structure.
MINI_RAFT- A small raft under each touchpoint cluster instead of one solid raft.
MINI_RAFTS_ON_BP- Mini rafts placed directly on the build platform rather than under the touchpoints.
raft_label_enabledbooleanEngrave the model's name on its raft. The text is fixed when the supports are generated: renaming the model afterwards does not change it until the supports are regenerated. Pass
falsefor a raft whose geometry does not depend on the model's name.breakaway_structure_enabledbooleanUse breakaway supports. Only accepted when the scene's material supports this option.
internal_supports_enabledbooleanGenerate internal supports for enclosed cavities.
BodyCountResult#
BodyCountResult
The number of disconnected mesh bodies making up a single model.
Fields
body_countintegerRequiredNumber of disconnected bodies (connected mesh components) making up this model. 1 for an ordinary single-body model.
BuildVolume#
BuildVolume
The build volume geometry for the scene's printer and material.
Fields
dimensions_mmobjectRequiredBuild volume size in millimeters.
Show child attributes
xnumberRequiredynumberRequiredznumberRequired
fillet_radius_mmnumberRequiredRadius of the build volume's corner fillets, in millimeters.
CageRequest#
CageRequest
Generates a support cage around the selected models. Fields left unspecified fall back to the scene's default cage-generation settings.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to cage. Omitted or empty means every model in the scene.
cage_labelstringDisplay name for the new cage model. Defaults to an auto-generated name ("Cage 1", "Cage 2", ...).
generate_mesh_labelbooleanEmboss cage_label as a physical label on the cage geometry.
bar_spacing_mmnumberGap left between adjacent cage bars.
bar_thickness_mmnumberThickness of each cage bar.
bar_width_mmnumberWidth of each cage bar.
distance_to_cage_mmnumberGap left between the models and the surrounding cage.
enable_round_edgesbooleanRound off the edges of the cage bars.
enable_square_barsbooleanGive the cage bars a rectangular cross-section rather than a round one.
CageResult#
CageResult
The cage model a caging operation created.
Fields
cage_model_idstring (uuid)RequiredThe id of the newly created cage model. The selected models are now children of this model.
CartridgeData#
CartridgeData
Cartridge data keyed by cartridge id. Unlike every other v1 response field, the keys inside each entry are camelCase, not snake_case: this object is a verbatim passthrough of the printer's internal cartridge tracking data.
CheckManifoldRequest#
CheckManifoldRequest
Selects the models to check.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to check. Omitted or empty means every model in the scene.
CreateSceneFpsFile#
CreateSceneFpsFile
Create a scene from a saved .fps print settings file. Custom print settings are persisted so the scene's scene_settings.custom_print_setting_id can identify them later.
Fields
fps_filestringRequiredFull path to the .fps file.
CreateSceneLayerThicknessMm#
number or string
A layer thickness in millimeters, accepted as a JSON number, the literal string "ADAPTIVE" for adaptive layer thickness, or a numeric value formatted as a string (e.g. "0.025"). "ADAPTIVE" is accepted only where the settings catalog offers an adaptive variant, on older printer models (see /v1/print-setting/list/).
CreateSceneManual#
CreateSceneManual
A machine/material/print-setting/layer-thickness combination to create a scene for.
Fields
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
print_settingstringPrint setting profile code, e.g. "DEFAULT".
layer_thickness_mmnumber or stringRequiredA layer thickness in millimeters, accepted as a JSON number, the literal string "ADAPTIVE" for adaptive layer thickness, or a numeric value formatted as a string (e.g. "0.025"). "ADAPTIVE" is accepted only where the settings catalog offers an adaptive variant, on older printer models (see
/v1/print-setting/list/).
CreateSceneRequest#
CreateSceneManual or CreateSceneFpsFile
Either a manual machine/material/print-setting combination, or a saved .fps print settings file.
Fields
CreateSceneManualoption 1 of 2A machine/material/print-setting/layer-thickness combination to create a scene for.
Show fields
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
print_settingstringPrint setting profile code, e.g. "DEFAULT".
layer_thickness_mmnumber or stringRequiredA layer thickness in millimeters, accepted as a JSON number, the literal string "ADAPTIVE" for adaptive layer thickness, or a numeric value formatted as a string (e.g. "0.025"). "ADAPTIVE" is accepted only where the settings catalog offers an adaptive variant, on older printer models (see
/v1/print-setting/list/).
CreateSceneFpsFileoption 2 of 2Create a scene from a saved .fps print settings file. Custom print settings are persisted so the scene's
scene_settings.custom_print_setting_idcan identify them later.Show fields
fps_filestringRequiredFull path to the .fps file.
CreatedScene#
CreatedScene
What /v1/scene/create/ accomplished: the id of the new scene and the print settings it was created with. Fetch the full scene with /v1/scene/get/.
Fields
scene_idstring (uuid)RequiredUnique identifier of the new scene.
The machine/material/print-setting/layer-thickness combination used to create the scene.
Show child attributes
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
Print setting profile code, e.g. "DEFAULT".
Layer thickness in millimeters, always returned as a string: either a numeric string (e.g. "0.025") or the literal "ADAPTIVE" for adaptive layer thickness. Contrast with
/v1/print-setting/list/and/v1/print-setting/validate/, whoselayer_thickness_mmis a JSON number (or "ADAPTIVE").custom_print_setting_idstring (uuid)Id of the custom print setting the scene was created or updated from, if any (via
fps_file). Absent when the scene uses a material-based print setting.
CupDetectionResult#
CupDetectionResult
Cup-detection outcome for a single model.
Fields
cup_countintegerRequiredNumber of cup cavities detected in the model's current orientation. 0 means no suction risk from cups.
DeleteModelRequest#
DeleteModelRequest
Identifies which models in a scene to delete.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to delete. Omitted or empty means every model in the scene.
DentalHollowingRequest#
DentalHollowingRequest
Cuts, extrudes, and optionally hollows the selected models.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to process. Omitted or empty means every model in the scene.
cutoff_height_mmnumberAbsolute height of the cut plane. Mutually exclusive with cutoff_below_gumline_mm.
cutoff_below_gumline_mmnumberOffset of the cut plane from each model's automatically detected gumline. Only used when cutoff_height_mm is omitted. 0 (the default) cuts exactly at the gumline.
extrude_distance_mmnumberRequiredLength of solid material extruded downward from the cut plane to create a printable base.
hollowbooleanAlso hollow the resulting model.
shell_thickness_mmnumberThickness of the hollow shell wall. Defaults to 2.75 if omitted. Only used when hollow is true. Rejected otherwise.
wall_thickness_mmnumberThickness of the honeycomb infill walls inside the hollow cavity (not the outer shell, which is shell_thickness_mm). Defaults to 1 if omitted. Only used when hollow is true. Rejected otherwise.
drain_hole_radius_mmnumberMinor-axis radius of the drain holes generated in the hollow shell. Defaults to 1.5 if omitted. Only used when hollow is true. Rejected otherwise.
drain_hole_height_rationumberRatio of a drain hole's major axis to drain_hole_radius_mm. 1 (the default) produces a circular hole and larger values elongate it. Only used when hollow is true. Rejected otherwise.
drain_hole_suppression_distance_mmnumberMinimum distance between generated drain holes; candidates closer than this to another hole are dropped. Defaults to 2 if omitted. Only used when hollow is true. Rejected otherwise.
drain_hole_max_countintegerMaximum number of drain holes generated per contour on the bottom of the model. Defaults to 2 if omitted. Only used when hollow is true. Rejected otherwise.
enable_honeycomb_infillbooleanFill the hollow cavity with honeycomb infill. Only used when hollow is true. Rejected otherwise.
enable_smooth_contour_extended_sidesbooleanSmooth contours that are extended down to the build platform when creating the base.
keep_disconnected_mesh_componentsbooleanKeep every disconnected piece of the cut mesh instead of dropping all but the largest. Defaults to the scene's configured default if omitted.
DentalHollowingResult#
DentalHollowingResult
The models dental-hollowing created, per source model, plus any non-fatal warnings.
Fields
resultsarray of ModelsCreatedFromSourcesRequiredOne entry per selected model, in request order. Each entry's new_model_ids name the processed model created from that model (exactly one today, though the array form leaves room for processing that yields several). The source model no longer exists in the scene.
Show child attributes
source_model_idstring (uuid)RequiredThe id of the model the new models were created from.
new_model_idsarray of string (uuid)sRequiredIds of the models created from it, in no particular order.
warningsarray of stringsRequiredFree-text, non-fatal problems encountered while processing.
infosarray of stringsRequiredFree-text informational notices, if any.
Device#
GenericDevice or FleetControlPrinterGroup or Form4FamilyDevice or Form3FamilyDevice or Fuse1Device or Form2Device
A device's current status. The shape depends on the device type, indicated by which fields are present. Compare against the titled variants below rather than trying to detect the type from id or product_name alone.
Fields
Generic Deviceoption 1 of 6A device with no more specific status information available.
Show fields
idstringRequiredThe device's serial name or other stable identifier.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringPresent only when connected directly over the local network.
firmware_versionstringRequiredready_to_print_nowbooleanIf newly uploaded jobs print automatically instead of being queued. Present only for devices that can receive prints.
Fleet Control Printer Groupoption 2 of 6A Fleet Control queue: a group of one or more printers managed together through a Formlabs Dashboard queue.
Show fields
idstringRequiredThe group's stable identifier.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
firmware_versionstringRequiredAlways empty, since a printer group has no single firmware version.
dashboard_group_idstring (uuid)RequiredId of the group on Formlabs Dashboard.
dashboard_queue_idstring (uuid)RequiredId of the Fleet Control queue on Formlabs Dashboard.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
queue_pausedbooleanRequiredIf the queue is currently paused.
has_form_autobooleanRequiredIf the group includes a Form Auto.
supported_machine_type_idsarray of stringsRequiredprintersarray of objectsRequiredThe individual printers currently in this group.
Show child attributes
idstringRequiredThe printer's serial name.
Canonical machine type id, e.g. "FORM-4-0".
Form 4 or Form 4L Printeroption 3 of 6Show fields
idstringRequiredThe printer's serial name.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringRequiredfirmware_versionstringRequiredis_remote_print_enabledbooleanRequiredIf the printer can be started remotely via Formlabs Dashboard.
estimated_print_time_remaining_msintegerRequiredMilliseconds remaining in the current print, if any, and 0 otherwise.
tank_idstringRequiredVersioned material code, e.g. "FLGPBK05".
Cartridge data keyed by cartridge id. Unlike every other v1 response field, the keys inside each entry are camelCase, not snake_case: this object is a verbatim passthrough of the printer's internal cartridge tracking data.
Show child attributes
Versioned material code, e.g. "FLGPBK05".
cartridgeEstimatedVolumeDispensed_mLnumberRequiredEstimated volume of material dispensed from this cartridge so far, in mL.
cartridgeOriginalVolume_mLnumberRequiredThe cartridge's original, unused volume, in mL.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
Form 3 or Form 3L Printeroption 4 of 6Show fields
idstringRequiredThe printer's serial name.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringRequiredfirmware_versionstringRequiredis_remote_print_enabledbooleanRequiredIf the printer can be started remotely via Formlabs Dashboard.
estimated_print_time_remaining_msintegerRequiredMilliseconds remaining in the current print, if any, and 0 otherwise.
tank_idstringRequiredVersioned material code, e.g. "FLGPBK05".
Cartridge data keyed by cartridge id. Unlike every other v1 response field, the keys inside each entry are camelCase, not snake_case: this object is a verbatim passthrough of the printer's internal cartridge tracking data.
Show child attributes
Versioned material code, e.g. "FLGPBK05".
cartridgeEstimatedVolumeDispensed_mLnumberRequiredEstimated volume of material dispensed from this cartridge so far, in mL.
cartridgeOriginalVolume_mLnumberRequiredThe cartridge's original, unused volume, in mL.
form_auto_statusstringRequiredHuman-readable Form Auto status message. Not machine-readable. Never match on its value.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
Fuse 1/1+ Printeroption 5 of 6Show fields
idstringRequiredThe printer's serial name.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringRequiredfirmware_versionstringRequiredis_remote_print_enabledbooleanRequiredIf the printer can be started remotely via Formlabs Dashboard.
estimated_print_time_remaining_msintegerRequiredMilliseconds remaining in the current print, if any, and 0 otherwise.
bed_temperature_cnumberRequiredpowder_levelstringRequiredHuman-readable powder level message. Not machine-readable. Never match on its value.
printing_layerintegerRequiredIndex of the layer currently printing, if any.
printing_guidstringRequiredId of the print job currently loaded, if any.
Versioned material code, e.g. "FLGPBK05".
cylinder_serialstringRequiredVersioned material code, e.g. "FLGPBK05".
powder_credit_gnumberRequiredRemaining powder credit, in grams.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
Form 2 Printeroption 6 of 6Show fields
idstringRequiredThe printer's serial name.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringRequiredfirmware_versionstringRequiredestimated_print_time_remaining_msintegerRequiredMilliseconds remaining in the current print, if any, and 0 otherwise.
tank_idstringRequiredVersioned material code, e.g. "FLGPBK05".
Cartridge data keyed by cartridge id. Unlike every other v1 response field, the keys inside each entry are camelCase, not snake_case: this object is a verbatim passthrough of the printer's internal cartridge tracking data.
Show child attributes
Versioned material code, e.g. "FLGPBK05".
cartridgeEstimatedVolumeDispensed_mLnumberRequiredEstimated volume of material dispensed from this cartridge so far, in mL.
cartridgeOriginalVolume_mLnumberRequiredThe cartridge's original, unused volume, in mL.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
DeviceConnectionType#
enum DeviceConnectionType
How a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
DirectionVectors#
DirectionVectors
Orientation as two vectors, in model space, that say which way is "up" and "right" once the model is placed in the scene.
Fields
z_directionarray of numbersRequiredUnit vector in model space that will point up (+Z) in the scene.
x_directionarray of numbersRequiredUnit vector in model space, perpendicular to z_direction, that will point right (+X) in the scene.
DiscoverDevicesRequest#
DiscoverDevicesRequest
Discovery parameters for /v1/device/discover/.
Fields
timeout_secondsintegerNumber of seconds to wait for devices to be found.
printerstringAddress of a single device to wait for, instead of discovering broadly. Printer serial name, IP address, or Fleet Control Queue id.
DrainHole#
DrainHole
One drain/vent hole to drill into a model.
Fields
orientationEulerAngles or TransformMatrix or DirectionVectorsRequiredA model orientation, given as exactly one of: Euler angles, a transform matrix, or a pair of direction vectors.
Show child attributes
EulerAnglesoption 1 of 3Orientation as Euler angles in degrees. Rotations are applied in the order z, then x, then y.
Show fields
xnumberRequiredRotation in degrees around the x axis (applied second).
ynumberRequiredRotation in degrees around the y axis (applied last).
znumberRequiredRotation in degrees around the z axis (applied first).
TransformMatrixoption 2 of 3Orientation as the linear (rotation/scale) part of a 3x3 transform matrix.
Show fields
lineararray of array of numbersRequiredA 3x3 matrix, given as 3 rows of 3 numbers.
DirectionVectorsoption 3 of 3Orientation as two vectors, in model space, that say which way is "up" and "right" once the model is placed in the scene.
Show fields
z_directionarray of numbersRequiredUnit vector in model space that will point up (+Z) in the scene.
x_directionarray of numbersRequiredUnit vector in model space, perpendicular to z_direction, that will point right (+X) in the scene.
A position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
diameter_mmnumberRequiredDiameter of the drilled hole.
depth_mmnumber or stringRequiredFixed hole depth, or the literal string "AUTO" to infer the depth by searching into the model along the hole's axis.
outset_mmnumberHow far the hole extends outward past the model's surface (the reverse of the drilling direction), to cleanly cut the surface edge.
create_plugbooleanAlso generate a removable plug model matching this hole.
max_search_distancenumberUpper bound on the depth search. Only accepted together with depth_mm: "AUTO".
DrillRequest#
DrillRequest
Drills the given drain holes into the selected models.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to drill. Omitted or empty means every model in the scene.
drain_holesarray of DrainHolesRequiredShow child attributes
orientationEulerAngles or TransformMatrix or DirectionVectorsRequiredA model orientation, given as exactly one of: Euler angles, a transform matrix, or a pair of direction vectors.
Show child attributes
EulerAnglesoption 1 of 3Orientation as Euler angles in degrees. Rotations are applied in the order z, then x, then y.
Show fields
xnumberRequiredRotation in degrees around the x axis (applied second).
ynumberRequiredRotation in degrees around the y axis (applied last).
znumberRequiredRotation in degrees around the z axis (applied first).
TransformMatrixoption 2 of 3Orientation as the linear (rotation/scale) part of a 3x3 transform matrix.
Show fields
lineararray of array of numbersRequiredA 3x3 matrix, given as 3 rows of 3 numbers.
DirectionVectorsoption 3 of 3Orientation as two vectors, in model space, that say which way is "up" and "right" once the model is placed in the scene.
Show fields
z_directionarray of numbersRequiredUnit vector in model space that will point up (+Z) in the scene.
x_directionarray of numbersRequiredUnit vector in model space, perpendicular to z_direction, that will point right (+X) in the scene.
A position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
diameter_mmnumberRequiredDiameter of the drilled hole.
depth_mmnumber or stringRequiredFixed hole depth, or the literal string "AUTO" to infer the depth by searching into the model along the hole's axis.
outset_mmnumberHow far the hole extends outward past the model's surface (the reverse of the drilling direction), to cleanly cut the surface edge.
create_plugbooleanAlso generate a removable plug model matching this hole.
max_search_distancenumberUpper bound on the depth search. Only accepted together with depth_mm: "AUTO".
DrillResult#
DrillResult
The result of drilling drain holes into one or more models.
Fields
plugsarray of PlugCreatedsRequiredOne entry per plug model created for holes with create_plug: true. Empty if no plugs were created.
Show child attributes
plug_model_idstring (uuid)RequiredThe id of the newly created plug model.
drilled_model_idstring (uuid)RequiredThe id of the pre-existing model that was drilled: the model the plug was cut from and fits back into.
warningsarray of stringsRequiredFree-text, non-fatal problems drilling individual holes, identified by their index into the request's drain_holes.
infosarray of stringsRequiredFree-text informational notices, if any.
DuplicateModelRequest#
DuplicateModelRequest
Identifies which models in a scene to duplicate, and how many copies to make.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to duplicate. Omitted or empty means every model in the scene.
countintegerRequiredThe number of copies to create of each selected model.
DuplicateModelsResult#
DuplicateModelsResult
The copies a duplicate operation created, per source model.
Fields
resultsarray of ModelsCreatedFromSourcesRequiredOne entry per selected model, in request order. Each entry's new_model_ids are the copies created from that model. The source models themselves are unchanged.
Show child attributes
source_model_idstring (uuid)RequiredThe id of the model the new models were created from.
new_model_idsarray of string (uuid)sRequiredIds of the models created from it, in no particular order.
Error#
Error
The envelope returned by every failed request. See the Errors section of the introduction for the contract: code is stable and machine-readable, message is diagnostic text that may change at any time.
Fields
errorobjectRequiredShow child attributes
Registry of stable error codes. New codes may be added in later releases (this is not a breaking change), so treat unrecognized codes as a generic failure.
JSON_PARSE_ERROR- The request body could not be parsed as JSON, or is not a JSON object where one is required.
JSON_SCHEMA_MATCH_ERROR- The request body parsed as JSON but does not match the endpoint's request schema. The message includes a JSON pointer to the failing field.
MISSING_PARAMETER- A required body field is absent. The message names the field.
INPUT_ERROR- A field's value is unusable, such as a malformed id or a reference to a scene or resource that does not exist.
MISSING_QUERY_PARAMETER- A required query parameter is absent. The message names the parameter.
INVALID_QUERY_PARAMETER- A query parameter has an unparseable or out-of-range value. The message names the parameter and echoes the received value.
OPERATION_FAILED- The requested operation started but did not complete successfully. The message carries the underlying reason.
OPERATION_IN_PROGRESS- The resource is busy with another operation. Retry after it completes. Returned with HTTP 409.
NOT_FOUND- The requested resource does not exist. Returned with HTTP 404.
ESTIMATION_NOT_SUPPORTED- The scene's machine type or configuration does not support fast print time estimation. Returned with HTTP 422.
BUILD_VOLUME_LIMIT_EXCEEDED- The request needs more scenes than the server can hold at once, so it created none. Opening a
.formfile with more build volumes than the limit returns it. Returned with HTTP 409. INTERNAL_ERROR- A server-side invariant was violated, not attributable to the request. Returned with HTTP 500.
UNKNOWN_FAILURE- An unexpected exception occurred inside PreFormServer. Returned with HTTP 500. The message may be empty.
messagestringRequiredHuman-readable description of what went wrong. Not part of the stable contract. Never match on this string.
ErrorCode#
enum ErrorCode
Registry of stable error codes. New codes may be added in later releases (this is not a breaking change), so treat unrecognized codes as a generic failure.
JSON_PARSE_ERROR- The request body could not be parsed as JSON, or is not a JSON object where one is required.
JSON_SCHEMA_MATCH_ERROR- The request body parsed as JSON but does not match the endpoint's request schema. The message includes a JSON pointer to the failing field.
MISSING_PARAMETER- A required body field is absent. The message names the field.
INPUT_ERROR- A field's value is unusable, such as a malformed id or a reference to a scene or resource that does not exist.
MISSING_QUERY_PARAMETER- A required query parameter is absent. The message names the parameter.
INVALID_QUERY_PARAMETER- A query parameter has an unparseable or out-of-range value. The message names the parameter and echoes the received value.
OPERATION_FAILED- The requested operation started but did not complete successfully. The message carries the underlying reason.
OPERATION_IN_PROGRESS- The resource is busy with another operation. Retry after it completes. Returned with HTTP 409.
NOT_FOUND- The requested resource does not exist. Returned with HTTP 404.
ESTIMATION_NOT_SUPPORTED- The scene's machine type or configuration does not support fast print time estimation. Returned with HTTP 422.
BUILD_VOLUME_LIMIT_EXCEEDED- The request needs more scenes than the server can hold at once, so it created none. Opening a
.formfile with more build volumes than the limit returns it. Returned with HTTP 409. INTERNAL_ERROR- A server-side invariant was violated, not attributable to the request. Returned with HTTP 500.
UNKNOWN_FAILURE- An unexpected exception occurred inside PreFormServer. Returned with HTTP 500. The message may be empty.
EulerAngles#
EulerAngles
Orientation as Euler angles in degrees. Rotations are applied in the order z, then x, then y.
Fields
xnumberRequiredRotation in degrees around the x axis (applied second).
ynumberRequiredRotation in degrees around the y axis (applied last).
znumberRequiredRotation in degrees around the z axis (applied first).
FillBuildChamberRequest#
FillBuildChamberRequest
Duplicates the selected models and packs the copies up to fill_to_height_mm. Unselected models are left in place and act as fixed obstacles.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to duplicate. Omitted or empty means every model in the scene.
packing_optionsPackingOptionsSLS packing parameters shared by the fill-build-chamber operation.
Show child attributes
model_spacing_mmnumberMinimum gap to leave between models. Floored at the material's visual collision offset if smaller.
distance_from_wall_mmnumberMargin to leave between models and the build volume walls.
seedintegerRandom seed controlling the packing algorithm. Omitted means a random seed is used each call.
fill_to_height_mmnumberHeight, in mm above the build platform, to fill up to. Defaults to the scene's full build volume height.
FillBuildPlatformRequest#
FillBuildPlatformRequest
Duplicates the selected models and lays out the copies to fill up the build platform with as many copies as fit. Unselected models are left in place and act as fixed obstacles.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to duplicate. Omitted or empty means every model in the scene.
layout_optionsLayoutOptionsSLA layout parameters shared by the fill-build-platform operation.
Show child attributes
model_spacing_mmnumberMinimum gap to leave between models.
placement_margin_mmnumberMargin to leave between models and the build platform edge.
allow_overlapping_supportsbooleanAllow one model's supports to intersect another model or its supports.
lock_rotationbooleanOnly translate models and never rotate them, regardless of their individual lock.
layout_attemptsintegerNumber of independent layout attempts to try, keeping the best. Defaults to an algorithm-chosen value.
iterations_per_attemptintegerOptimization iterations per attempt. Defaults to an algorithm-chosen value.
FleetControlPrinterGroup#
FleetControlPrinterGroup
A Fleet Control queue: a group of one or more printers managed together through a Formlabs Dashboard queue.
Fields
idstringRequiredThe group's stable identifier.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
firmware_versionstringRequiredAlways empty, since a printer group has no single firmware version.
dashboard_group_idstring (uuid)RequiredId of the group on Formlabs Dashboard.
dashboard_queue_idstring (uuid)RequiredId of the Fleet Control queue on Formlabs Dashboard.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
queue_pausedbooleanRequiredIf the queue is currently paused.
has_form_autobooleanRequiredIf the group includes a Form Auto.
supported_machine_type_idsarray of stringsRequiredprintersarray of objectsRequiredThe individual printers currently in this group.
Show child attributes
idstringRequiredThe printer's serial name.
Canonical machine type id, e.g. "FORM-4-0".
FlyaroundKeyframe#
FlyaroundKeyframe
One frame of an explicit flyaround camera path.
Fields
yawnumberRequiredCamera yaw for this frame, in degrees.
pitchnumberRequiredCamera pitch for this frame, in degrees.
FlyaroundTransform#
any
Renders a .webp animation instead of a single .png. Provide either an explicit transform keyframe list, or frame_count to auto-generate evenly-spaced frames around a full turn starting from the top-level yaw/pitch. At least one of the two is required.
Fields
transformarray of FlyaroundKeyframesExplicit list of camera keyframes to render, one per animation frame.
Show child attributes
yawnumberRequiredCamera yaw for this frame, in degrees.
pitchnumberRequiredCamera pitch for this frame, in degrees.
frame_countintegerNumber of evenly-spaced frames to render around a full 360-degree turn. Ignored if
transformis present.ensure_constant_sizebooleanWhen true, every frame is rendered at the same size (the largest needed by any frame) instead of each frame being cropped independently.
Form2Device#
Form2Device
Fields
idstringRequiredThe printer's serial name.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringRequiredfirmware_versionstringRequiredestimated_print_time_remaining_msintegerRequiredMilliseconds remaining in the current print, if any, and 0 otherwise.
tank_idstringRequiredVersioned material code, e.g. "FLGPBK05".
Cartridge data keyed by cartridge id. Unlike every other v1 response field, the keys inside each entry are camelCase, not snake_case: this object is a verbatim passthrough of the printer's internal cartridge tracking data.
Show child attributes
Versioned material code, e.g. "FLGPBK05".
cartridgeEstimatedVolumeDispensed_mLnumberRequiredEstimated volume of material dispensed from this cartridge so far, in mL.
cartridgeOriginalVolume_mLnumberRequiredThe cartridge's original, unused volume, in mL.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
Form3FamilyDevice#
Form3FamilyDevice
Fields
idstringRequiredThe printer's serial name.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringRequiredfirmware_versionstringRequiredis_remote_print_enabledbooleanRequiredIf the printer can be started remotely via Formlabs Dashboard.
estimated_print_time_remaining_msintegerRequiredMilliseconds remaining in the current print, if any, and 0 otherwise.
tank_idstringRequiredVersioned material code, e.g. "FLGPBK05".
Cartridge data keyed by cartridge id. Unlike every other v1 response field, the keys inside each entry are camelCase, not snake_case: this object is a verbatim passthrough of the printer's internal cartridge tracking data.
Show child attributes
Versioned material code, e.g. "FLGPBK05".
cartridgeEstimatedVolumeDispensed_mLnumberRequiredEstimated volume of material dispensed from this cartridge so far, in mL.
cartridgeOriginalVolume_mLnumberRequiredThe cartridge's original, unused volume, in mL.
form_auto_statusstringRequiredHuman-readable Form Auto status message. Not machine-readable. Never match on its value.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
Form4FamilyDevice#
Form4FamilyDevice
Fields
idstringRequiredThe printer's serial name.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringRequiredfirmware_versionstringRequiredis_remote_print_enabledbooleanRequiredIf the printer can be started remotely via Formlabs Dashboard.
estimated_print_time_remaining_msintegerRequiredMilliseconds remaining in the current print, if any, and 0 otherwise.
tank_idstringRequiredVersioned material code, e.g. "FLGPBK05".
Cartridge data keyed by cartridge id. Unlike every other v1 response field, the keys inside each entry are camelCase, not snake_case: this object is a verbatim passthrough of the printer's internal cartridge tracking data.
Show child attributes
Versioned material code, e.g. "FLGPBK05".
cartridgeEstimatedVolumeDispensed_mLnumberRequiredEstimated volume of material dispensed from this cartridge so far, in mL.
cartridgeOriginalVolume_mLnumberRequiredThe cartridge's original, unused volume, in mL.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
Fuse1Device#
Fuse1Device
Fields
idstringRequiredThe printer's serial name.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringRequiredfirmware_versionstringRequiredis_remote_print_enabledbooleanRequiredIf the printer can be started remotely via Formlabs Dashboard.
estimated_print_time_remaining_msintegerRequiredMilliseconds remaining in the current print, if any, and 0 otherwise.
bed_temperature_cnumberRequiredpowder_levelstringRequiredHuman-readable powder level message. Not machine-readable. Never match on its value.
printing_layerintegerRequiredIndex of the layer currently printing, if any.
printing_guidstringRequiredId of the print job currently loaded, if any.
Versioned material code, e.g. "FLGPBK05".
cylinder_serialstringRequiredVersioned material code, e.g. "FLGPBK05".
powder_credit_gnumberRequiredRemaining powder credit, in grams.
ready_to_print_nowbooleanRequiredIf newly uploaded jobs print automatically instead of being queued.
GenericDevice#
GenericDevice
A device with no more specific status information available.
Fields
idstringRequiredThe device's serial name or other stable identifier.
product_namestringRequiredstatusstringRequiredHuman-readable status message. Not machine-readable. Never match on its value.
is_connectedbooleanRequiredHow a device is currently connected, if known.
UNKNOWN- Connected locally, but the specific interface could not be determined.
VIRTUAL- A virtual/simulated device, not a real physical printer.
REMOTE- Connected via Formlabs Dashboard / Fleet Control, not directly on the local network.
USB- Connected directly over USB.
WIFI- Connected over the local Wi-Fi network.
ETHERNET- Connected over a wired Ethernet network.
- No direct local connection (e.g. a Fleet Control printer group, which has no connection of its own).
ip_addressstringPresent only when connected directly over the local network.
firmware_versionstringRequiredready_to_print_nowbooleanIf newly uploaded jobs print automatically instead of being queued. Present only for devices that can receive prints.
GetModelBodyCountRequest#
GetModelBodyCountRequest
Identifies which models in a scene to get the body count of.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to inspect. Omitted or empty means every model in the scene.
HollowRequest#
HollowRequest
Hollows the selected models to the given wall thickness.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to hollow. Omitted or empty means every model in the scene.
wall_thickness_mmnumberRequiredThickness of the shell wall left after hollowing.
feature_size_mmnumberSmallest feature size the generated inner surface will resolve. Smaller is higher quality and slower. Values above 1 are silently clamped to 1.
accuracynumberHow closely the inner surface follows the model's true offset surface: 1 is highest quality and slowest, 0 is fastest and coarsest.
HollowResult#
HollowResult
The outcome of hollowing for every selected model. Ids are bare UUIDs; their order is unspecified. Model state is not included; fetch it with /v1/scene/model/list/.
Fields
hollowed_model_idsarray of string (uuid)sRequiredSelected models that were hollowed. Never empty.
unhollowed_model_idsarray of string (uuid)sRequiredSelected models that could not be hollowed and were left unchanged. Each one also has a line in
warnings.warningsarray of stringsRequiredFree-text, non-fatal problems hollowing individual models (e.g. wall_thickness_mm too large for a model's geometry), one line per model in
unhollowed_model_ids, followed by a suggestion to check manifoldness when any model failed.infosarray of stringsRequiredFree-text informational notices, if any.
ImportModelRequest#
ImportModelRequest
Loads a file and adds it to the scene as a new model.
Fields
scene_idstring (uuid)RequiredThe id of the scene to import into.
filestringRequiredFull path to the file to load.
repair_behaviorenum RepairBehaviorWhat to do when an imported file needs mesh repair.
REPAIR- Attempt to repair the model if needed before adding it to the scene.
ERROR- Fail the import with OPERATION_FAILED instead of importing a model that needs repair.
IGNORE- Import the model as-is, without repairing it.
namestringDisplay name for the new model. Defaults to a name derived from the file name.
unitsenum ImportUnitsThe units to interpret the file's coordinates in.
DETECTED- Use the file's own unit metadata when the format carries it (e.g. STEP, 3MF). Otherwise treat the file as millimeters.
MILLIMETERS- Treat the file's coordinates as millimeters, regardless of any unit metadata in the file.
INCHES- Treat the file's coordinates as inches, regardless of any unit metadata in the file.
lockenum LockOrientation and position constraints on a model, respected by automatic layout and packing operations.
FREE- Layout operations may move and rotate the model freely.
LOCKED_XY_FLIP_ENABLED- Layout may move the model and spin it about the vertical (Z) axis, and may also flip it over; it may not tilt it otherwise.
LOCKED_XY_ROTATION_FREE_TRANSLATION- Layout may move the model and spin it about the vertical (Z) axis, but not tilt it.
LOCKED_ROTATION_FREE_TRANSLATION- Layout may move the model but not rotate it at all.
FULLY_LOCKED- Layout leaves the model exactly where it is.
chordal_tolerance_umnumberTessellation chordal tolerance, in micrometers. Only affects CAD file imports.
angle_tolerance_degnumberTessellation angle tolerance, in degrees. Only affects CAD file imports.
split_multi_model_filebooleanWhether a CAD or 3MF file holding several parts is imported as one model per part. Off by default: the parts arrive as a single combined model, and
nameandlockapply to it. No effect on STL or OBJ.
ImportModelResult#
ImportModelResult
The models an import operation created. Model state is not included; fetch it with /v1/scene/model/list/.
Fields
new_modelsarray of ImportedModelsRequiredOne entry per created model, in no particular order. Exactly one entry unless split_multi_model_file split the file into several models. Use each entry's source_part_name / source_part_index, never its array position, to identify which part of the file it came from.
Show child attributes
model_idstring (uuid)RequiredId of the created model.
source_part_namestringThe name of the part this model was created from, as read from the imported file, before any renaming applied by the scene or the request's name override. Parts with no name in the file get a generated name derived from the file name. Use source_part_index when part names cannot be trusted to identify parts.
source_part_indexintegerZero-based position of the source part within the imported file, counting every part in the file (including parts that failed to import). A single-model import reports 0. This is the stable identity for split assemblies whose parts share a name.
ImportUnits#
enum ImportUnits
The units to interpret the file's coordinates in.
DETECTED- Use the file's own unit metadata when the format carries it (e.g. STEP, 3MF). Otherwise treat the file as millimeters.
MILLIMETERS- Treat the file's coordinates as millimeters, regardless of any unit metadata in the file.
INCHES- Treat the file's coordinates as inches, regardless of any unit metadata in the file.
ImportedModel#
ImportedModel
A model an import created, and which part of the imported file it came from.
Fields
model_idstring (uuid)RequiredId of the created model.
source_part_namestringThe name of the part this model was created from, as read from the imported file, before any renaming applied by the scene or the request's name override. Parts with no name in the file get a generated name derived from the file name. Use source_part_index when part names cannot be trusted to identify parts.
source_part_indexintegerZero-based position of the source part within the imported file, counting every part in the file (including parts that failed to import). A single-model import reports 0. This is the stable identity for split assemblies whose parts share a name.
InBoundsDetectionRequest#
InBoundsDetectionRequest
Selects the models to check.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to check. Omitted or empty means every model in the scene.
InBoundsResult#
InBoundsResult
Build-volume verdict for a single model.
Fields
in_boundsbooleanRequiredWhether the model, including its supports, fits inside the build volume at its current position, orientation and scale. The same verdict as the
in_boundsfield of/v1/scene/model/list/.
LabelApplicationMode#
enum LabelApplicationMode
How a label is applied to a model's surface.
EMBOSS- Raise the label above the surface by depth_mm.
ENGRAVE- Cut the label into the surface to a depth of depth_mm.
LabelRequest#
LabelRequest
Applies a text label to the surface of the selected models, at a given position and orientation.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to label. Omitted or empty means every model in the scene.
orientationEulerAngles or TransformMatrix or DirectionVectorsRequiredA model orientation, given as exactly one of: Euler angles, a transform matrix, or a pair of direction vectors.
Show child attributes
EulerAnglesoption 1 of 3Orientation as Euler angles in degrees. Rotations are applied in the order z, then x, then y.
Show fields
xnumberRequiredRotation in degrees around the x axis (applied second).
ynumberRequiredRotation in degrees around the y axis (applied last).
znumberRequiredRotation in degrees around the z axis (applied first).
TransformMatrixoption 2 of 3Orientation as the linear (rotation/scale) part of a 3x3 transform matrix.
Show fields
lineararray of array of numbersRequiredA 3x3 matrix, given as 3 rows of 3 numbers.
DirectionVectorsoption 3 of 3Orientation as two vectors, in model space, that say which way is "up" and "right" once the model is placed in the scene.
Show fields
z_directionarray of numbersRequiredUnit vector in model space that will point up (+Z) in the scene.
x_directionarray of numbersRequiredUnit vector in model space, perpendicular to z_direction, that will point right (+X) in the scene.
A position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
labelstringRequiredThe text to render.
application_modeenum LabelApplicationModeHow a label is applied to a model's surface.
EMBOSS- Raise the label above the surface by depth_mm.
ENGRAVE- Cut the label into the surface to a depth of depth_mm.
font_size_mmnumberRequiredLabel character height.
depth_mmnumberRequiredHeight above the surface (EMBOSS) or depth into it (ENGRAVE).
LabelResult#
LabelResult
The result of applying a label to one or more models.
Fields
warningsarray of stringsRequiredFree-text, non-fatal problems encountered while applying the label (e.g. individual characters that could not be created).
infosarray of stringsRequiredFree-text informational notices, if any.
LayerThicknessMm#
number or string
A layer thickness in millimeters, or the literal string "ADAPTIVE" for adaptive layer thickness. A numeric value formatted as a string (e.g. "0.025") is also accepted on input.
LayoutBounds#
LayoutBounds
A custom rectangular region of the build platform to lay out within, in user XY coordinates. All four fields are required together.
Fields
x_min_mmnumberRequiredx_max_mmnumberRequiredy_min_mmnumberRequiredy_max_mmnumberRequired
LayoutOptions#
LayoutOptions
SLA layout parameters shared by the fill-build-platform operation.
Fields
model_spacing_mmnumberMinimum gap to leave between models.
placement_margin_mmnumberMargin to leave between models and the build platform edge.
allow_overlapping_supportsbooleanAllow one model's supports to intersect another model or its supports.
lock_rotationbooleanOnly translate models and never rotate them, regardless of their individual lock.
layout_attemptsintegerNumber of independent layout attempts to try, keeping the best. Defaults to an algorithm-chosen value.
iterations_per_attemptintegerOptimization iterations per attempt. Defaults to an algorithm-chosen value.
ListDevicesRequest#
ListDevicesRequest
Optional filter for /v1/device/list/. Omitting the body, or sending one that isn't a JSON object, lists every connected device.
Fields
devicesarray of stringsDevice ids to look up, as returned in each device's
id. Every id must belong to a currently connected device, or the whole request fails. See the endpoint's Error codes table.
ListModelsRequest#
ListModelsRequest
Identifies which models in a scene to list.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to list. Omitted or empty means every model in the scene.
Lock#
enum Lock
Orientation and position constraints on a model, respected by automatic layout and packing operations.
FREE- Layout operations may move and rotate the model freely.
LOCKED_XY_FLIP_ENABLED- Layout may move the model and spin it about the vertical (Z) axis, and may also flip it over; it may not tilt it otherwise.
LOCKED_XY_ROTATION_FREE_TRANSLATION- Layout may move the model and spin it about the vertical (Z) axis, but not tilt it.
LOCKED_ROTATION_FREE_TRANSLATION- Layout may move the model but not rotate it at all.
FULLY_LOCKED- Layout leaves the model exactly where it is.
LoginRequest#
object
Credentials for /v1/login/: either a Dashboard access token, or a username and password. A body mixing the two shapes is rejected.
Fields
Username and passwordoption 1 of 2Show fields
usernamestringRequiredFormlabs Dashboard account username or email address.
passwordstringRequiredFormlabs Dashboard account password.
Access tokenoption 2 of 2Show fields
access_tokenstringRequiredA previously issued Formlabs Dashboard access token.
LoginResponse#
LoginResponse
The session tokens for the account that just logged in.
Fields
access_tokenstringRequiredAccess token for the newly created session.
refresh_tokenstringRequiredRefresh token for the newly created session. Empty when logging in with
access_tokenrather than a username and password.
MachineTypeId#
string
Canonical machine type id, e.g. "FORM-4-0".
ManifoldCheckResult#
ManifoldCheckResult
Manifold-check outcome for a single model.
Fields
is_manifoldbooleanRequiredWhether the model's mesh is a manifold solid. Equivalent to
status == "MANIFOLD".The manifold library's verdict on a mesh. Only
MANIFOLDmeans the mesh is a valid manifold solid.MANIFOLD- The mesh is a closed manifold solid.
NOT_MANIFOLD- The mesh has non-manifold geometry, such as open boundaries, holes, or edges/vertices shared inconsistently between triangles.
NON_FINITE_VERTEX- The mesh contains a vertex with a NaN or infinite coordinate.
OTHER_ERROR- The manifold library rejected the mesh for another reason.
ManifoldCheckStatus#
enum ManifoldCheckStatus
The manifold library's verdict on a mesh. Only MANIFOLD means the mesh is a valid manifold solid.
MANIFOLD- The mesh is a closed manifold solid.
NOT_MANIFOLD- The mesh has non-manifold geometry, such as open boundaries, holes, or edges/vertices shared inconsistently between triangles.
NON_FINITE_VERTEX- The mesh contains a vertex with a NaN or infinite coordinate.
OTHER_ERROR- The manifold library rejected the mesh for another reason.
MaterialCode#
string
Versioned material code, e.g. "FLGPBK05".
MaterialSetting#
MaterialSetting
One layer-thickness/print-setting variant of a material.
Fields
labelstringRequiredDisplay label, e.g. "0.025 mm (Default settings)".
Identifies one machine/material/print-setting/layer-thickness combination, as returned by
/v1/print-setting/list/. The same field names are used by/v1/print-setting/validate/.Show child attributes
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
Print setting profile code, e.g. "DEFAULT".
layer_thickness_mmnumber or stringRequiredA layer thickness in millimeters, or the literal string "ADAPTIVE" for adaptive layer thickness. A numeric value formatted as a string (e.g. "0.025") is also accepted on input.
MaterialUsage#
SlaMaterialUsage or SlsMaterialUsage or UnknownMaterialUsage
Material consumption for the scene's models. The shape depends on the scene's printer family. An unrecognized family reports an empty object.
Fields
SlaMaterialUsageoption 1 of 2Material usage for an SLA-type scene (e.g. Form 4).
Show fields
volume_mlnumberRequiredTotal volume of models and supports in the scene, in milliliters.
unsupported_volume_mlnumberRequiredTotal volume of models alone, not including supports, in milliliters.
SlsMaterialUsageoption 2 of 2Material usage for an SLS-type scene (e.g. Fuse 1+, Fuse X1).
Show fields
total_powder_mlnumberRequiredTotal volume of powder used, including unsintered support powder, in milliliters.
total_powder_kgnumberRequiredTotal mass of powder used, including unsintered support powder, in kilograms.
total_sintered_powder_mlnumberRequiredVolume of powder that ends up sintered (part of the finished print), in milliliters.
total_sintered_powder_kgnumberRequiredMass of powder that ends up sintered (part of the finished print), in kilograms.
mass_packing_densitynumberRequiredRatio of sintered powder mass to the total build volume.
MinimaDetectionResult#
MinimaDetectionResult
Unsupported-minima-detection outcome for a single model.
Fields
minima_countintegerRequiredNumber of unsupported local minima detected on the model. 0 means every low point is currently supported.
ModelProperties#
ModelProperties
The full description of one model in a scene.
Fields
idstring (uuid)RequiredUnique identifier of the model within its scene.
namestringRequiredDisplay name used within job preparation.
A position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
Orientation as Euler angles in degrees. Rotations are applied in the order z, then x, then y.
Show child attributes
xnumberRequiredRotation in degrees around the x axis (applied second).
ynumberRequiredRotation in degrees around the y axis (applied last).
znumberRequiredRotation in degrees around the z axis (applied first).
scalenumberRequiredScale factor applied to the model.
The measurement units a model was defined in.
MILLIMETERS- Model coordinates are millimeters.
INCHES- Model coordinates are inches.
bounding_boxobjectRequiredAxis-aligned bounding box of the model (including generated geometry such as supports) in scene coordinates. Group containers have an empty bounding box, serialized as all zeros.
Show child attributes
min_cornerScenePositionA position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
max_cornerScenePositionA position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
original_filestringRequiredPath of the file the model was imported from.
visiblebooleanRequiredWhether the model is currently shown in the scene.
has_supportsbooleanRequiredWhether support structures have been generated for the model.
is_groupbooleanRequiredWhether this entry is a Part Group container rather than a regular printable model. Group containers have zero volume and an empty bounding box.
is_cagebooleanRequiredWhether the group is a cage. Cages are a subset of groups, so
is_cage: trueimpliesis_group: true.in_boundsbooleanRequiredWhether the model lies entirely within the build volume.
raw_mesh_hashstringRequiredHash of the raw mesh data, before any transform.
canonical_model_hashstringRequiredHash of the mesh data together with its position, orientation, and scale.
Orientation and position constraints on a model, respected by automatic layout and packing operations.
FREE- Layout operations may move and rotate the model freely.
LOCKED_XY_FLIP_ENABLED- Layout may move the model and spin it about the vertical (Z) axis, and may also flip it over; it may not tilt it otherwise.
LOCKED_XY_ROTATION_FREE_TRANSLATION- Layout may move the model and spin it about the vertical (Z) axis, but not tilt it.
LOCKED_ROTATION_FREE_TRANSLATION- Layout may move the model but not rotate it at all.
FULLY_LOCKED- Layout leaves the model exactly where it is.
ModelRepairResult#
ModelRepairResult
Repair outcome for a single model.
Fields
is_manifoldbooleanRequiredThe manifold library's verdict on the repaired mesh, equivalent to a
/v1/scene/model/validate/manifoldness/statusofMANIFOLD.falsemeans the best-effort repair left residual defects in the mesh (it was still replaced in the scene).
ModelsCreatedFromSource#
ModelsCreatedFromSource
The models an operation created from one existing model: copies of it, bodies split out of it, or a processed model derived from it.
Fields
source_model_idstring (uuid)RequiredThe id of the model the new models were created from.
new_model_idsarray of string (uuid)sRequiredIds of the models created from it, in no particular order.
ModifiedModels#
ModifiedModels
What an operation that changes existing models did: which models it changed. Ids are bare UUIDs; their order is unspecified. Model state is not included; fetch it with /v1/scene/model/list/. Check whether the models still fit with /v1/scene/model/validate/in-bounds/ and whether they overlap other models with /v1/scene/model/validate/interferences/.
Fields
modified_model_idsarray of string (uuid)sRequiredThe selected models the operation was applied to.
NewModelIds#
NewModelIds
The ids of the models a scene-mutating operation added, without describing the rest of the scene's state.
Fields
new_model_idsarray of string (uuid)sRequiredIds of the newly created models, in no particular order.
OnLayoutFailure#
enum OnLayoutFailure
What to do when the layout cannot fit every requested model.
FAIL_AND_LEAVE_SCENE_UNCHANGED- Fail the request with OPERATION_FAILED. The scene is left unchanged.
EJECT_A_MODEL_AND_RETRY- Greedily remove seeded-random models from the layout and retry until the rest fit, up to max_ejections removals. Ejected models are removed from the scene.
OnPackFailure#
enum OnPackFailure
What to do with models the packer could not place inside the build volume.
FAIL_AND_LEAVE_SCENE_UNCHANGED- Fail the request with OPERATION_FAILED. The scene is left unchanged.
PARK_OUTSIDE_BUILD_VOLUME- Keep the pack. Models that fit take their packed poses; models that did not are parked beside the build volume, outside it, and reported in unpacked_model_ids. Nothing is removed from the scene.
OpenFormRequest#
OpenFormRequest
Identifies the .form file to load.
Fields
filestringRequiredPath to the .form file to load.
OpenedScene#
OpenedScene
One scene created by /v1/scene/open/: a CreatedScene plus the scene's name within the .form file and the ids of the models loaded into it.
Fields
scene_idstring (uuid)RequiredUnique identifier of the new scene.
The machine/material/print-setting/layer-thickness combination used to create the scene.
Show child attributes
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
Print setting profile code, e.g. "DEFAULT".
Layer thickness in millimeters, always returned as a string: either a numeric string (e.g. "0.025") or the literal "ADAPTIVE" for adaptive layer thickness. Contrast with
/v1/print-setting/list/and/v1/print-setting/validate/, whoselayer_thickness_mmis a JSON number (or "ADAPTIVE").custom_print_setting_idstring (uuid)Id of the custom print setting the scene was created or updated from, if any (via
fps_file). Absent when the scene uses a material-based print setting.
new_model_idsarray of string (uuid)sRequiredIds of the newly created models, in no particular order.
scene_namestringRequiredName of this scene within the .form file, distinguishing multiple print jobs saved in one file. The scene remembers it, and
/v1/scene/save/writes it back.
Operation#
Operation
The status of a long-running operation started by a ?async=true request.
Fields
idstring (uuid)RequiredThe operation's id, as returned in
operation_idwhen it was started.The current state of a long-running operation.
IN_PROGRESS- The operation has not finished yet.
SUCCEEDED- The operation finished successfully.
FAILED- The operation finished with an error. The error envelope is available in the
resultfield of/v1/operation/get/./v1/operation/list/reports the status only.
progressnumber (float)RequiredProgress of the operation, from 0.0 to 1.0.
OperationAccepted#
OperationAccepted
Returned with 202 Accepted by endpoints called with ?async=true. Poll operation_url (also sent as the Location response header) until the operation's status is terminal. Its result field then holds the response the endpoint would have returned synchronously.
Fields
operation_idstring (uuid)RequiredRandomly generated id of the tracked operation.
operation_urlstringRequiredServer-relative URL of this operation's record:
/v1/operation/get/?operation_id=<operation_id>.GETit to follow progress and retrieve the result.messagestringRequiredHuman-readable pointer to where the result will appear. Purely informational. Use
operation_urlprogrammatically.
OperationStatus#
enum OperationStatus
The current state of a long-running operation.
IN_PROGRESS- The operation has not finished yet.
SUCCEEDED- The operation finished successfully.
FAILED- The operation finished with an error. The error envelope is available in the
resultfield of/v1/operation/get/./v1/operation/list/reports the status only.
OperationWithResult#
OperationWithResult
One operation's full record, including (once the operation has finished) the result the originating endpoint would have returned synchronously.
Fields
idstring (uuid)RequiredThe operation's id, as returned in
operation_idwhen it was started.The current state of a long-running operation.
IN_PROGRESS- The operation has not finished yet.
SUCCEEDED- The operation finished successfully.
FAILED- The operation finished with an error. The error envelope is available in the
resultfield of/v1/operation/get/./v1/operation/list/reports the status only.
progressnumber (float)RequiredProgress of the operation, from 0.0 to 1.0.
resultobjectPresent once
statusisSUCCEEDEDorFAILED, absent whileIN_PROGRESS. On success this is the JSON body the originating endpoint documents as its200response. On failure it is the standard error envelope (error.code,error.message). Endpoints whose synchronous success response has no body leaveresultabsent even after success.
OrientRequest#
OrientRequest
Sets the absolute orientation of the selected models.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to orient. Omitted or empty means every model in the scene.
orientationEulerAngles or TransformMatrix or DirectionVectorsRequiredA model orientation, given as exactly one of: Euler angles, a transform matrix, or a pair of direction vectors.
Show child attributes
EulerAnglesoption 1 of 3Orientation as Euler angles in degrees. Rotations are applied in the order z, then x, then y.
Show fields
xnumberRequiredRotation in degrees around the x axis (applied second).
ynumberRequiredRotation in degrees around the y axis (applied last).
znumberRequiredRotation in degrees around the z axis (applied first).
TransformMatrixoption 2 of 3Orientation as the linear (rotation/scale) part of a 3x3 transform matrix.
Show fields
lineararray of array of numbersRequiredA 3x3 matrix, given as 3 rows of 3 numbers.
DirectionVectorsoption 3 of 3Orientation as two vectors, in model space, that say which way is "up" and "right" once the model is placed in the scene.
Show fields
z_directionarray of numbersRequiredUnit vector in model space that will point up (+Z) in the scene.
x_directionarray of numbersRequiredUnit vector in model space, perpendicular to z_direction, that will point right (+X) in the scene.
Orientation#
EulerAngles or TransformMatrix or DirectionVectors
A model orientation, given as exactly one of: Euler angles, a transform matrix, or a pair of direction vectors.
Fields
EulerAnglesoption 1 of 3Orientation as Euler angles in degrees. Rotations are applied in the order z, then x, then y.
Show fields
xnumberRequiredRotation in degrees around the x axis (applied second).
ynumberRequiredRotation in degrees around the y axis (applied last).
znumberRequiredRotation in degrees around the z axis (applied first).
TransformMatrixoption 2 of 3Orientation as the linear (rotation/scale) part of a 3x3 transform matrix.
Show fields
lineararray of array of numbersRequiredA 3x3 matrix, given as 3 rows of 3 numbers.
DirectionVectorsoption 3 of 3Orientation as two vectors, in model space, that say which way is "up" and "right" once the model is placed in the scene.
Show fields
z_directionarray of numbersRequiredUnit vector in model space that will point up (+Z) in the scene.
x_directionarray of numbersRequiredUnit vector in model space, perpendicular to z_direction, that will point right (+X) in the scene.
PackingMode#
enum PackingMode
Packing objective used to arrange models within the (SLS) build volume.
PACK_HEIGHT- Minimize the height the packed models occupy.
PACK_VOLUME- Minimize the volume the packed models occupy.
PackingOptions#
PackingOptions
SLS packing parameters shared by the fill-build-chamber operation.
Fields
model_spacing_mmnumberMinimum gap to leave between models. Floored at the material's visual collision offset if smaller.
distance_from_wall_mmnumberMargin to leave between models and the build volume walls.
seedintegerRandom seed controlling the packing algorithm. Omitted means a random seed is used each call.
PlugCreated#
PlugCreated
A plug model created while drilling drain holes.
Fields
plug_model_idstring (uuid)RequiredThe id of the newly created plug model.
drilled_model_idstring (uuid)RequiredThe id of the pre-existing model that was drilled: the model the plug was cut from and fits back into.
PrintMaterial#
PrintMaterial
A material available on a printer type, with its settings variants.
Fields
labelstringRequiredDisplay name, e.g. "Black V5".
descriptionstringRequiredShort marketing description of the material. May be empty.
material_settingsarray of MaterialSettingsRequiredEvery layer-thickness/print-setting variant of this material.
Show child attributes
labelstringRequiredDisplay label, e.g. "0.025 mm (Default settings)".
Identifies one machine/material/print-setting/layer-thickness combination, as returned by
/v1/print-setting/list/. The same field names are used by/v1/print-setting/validate/.Show child attributes
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
Print setting profile code, e.g. "DEFAULT".
layer_thickness_mmnumber or stringRequiredA layer thickness in millimeters, or the literal string "ADAPTIVE" for adaptive layer thickness. A numeric value formatted as a string (e.g. "0.025") is also accepted on input.
PrintSceneRequest#
PrintSceneRequest
Slices a scene and uploads the job directly to a printer.
Fields
scene_idstring (uuid)RequiredThe id of the scene to print.
printerstringRequiredPrinter serial name, IP address, or Fleet Control Queue id.
job_namestringRequiredName of the job.
find_printer_timeout_secondsintegerNumber of seconds to wait to find the given printer.
print_nowbooleanIf true, the job must print immediately. This fails with
OPERATION_FAILEDif the printer'sready_to_print_nowstatus is not true. If false, the job is uploaded to the printer's local queue instead of printing immediately. Omitting this field defers to the printer's currentready_to_print_nowstate: prints immediately if ready, queues otherwise.
PrintSettingCode#
string
Print setting profile code, e.g. "DEFAULT".
PrintSettingListRequest#
PrintSettingListRequest
Optionally restricts the print-setting catalog to a single connected printer. An empty object (or no body at all) lists the full catalog.
Fields
compatible_withstringA connected printer's serial name.
PrintSettingValidateOptions#
PrintSettingValidateOptions
Valid values for the one field omitted from the request, given the other three. Exactly one of these four properties is present.
Fields
machine_typesarray of stringsmaterial_codesarray of stringsprint_settingsarray of stringslayer_thicknesses_mmarray of number or strings
PrintSettingValidateRequest#
PrintSettingValidateRequest
A (possibly partial) machine_type/material_code/print_setting/ layer_thickness_mm combination to check. At least 3 of the 4 fields must be given. The response reports valid values for the omitted one.
Fields
machine_typestringCanonical machine type id, e.g. "FORM-4-0".
material_codestringVersioned material code, e.g. "FLGPBK05".
print_settingstringPrint setting profile code, e.g. "DEFAULT".
layer_thickness_mmnumber or stringA layer thickness in millimeters, or the literal string "ADAPTIVE" for adaptive layer thickness. A numeric value formatted as a string (e.g. "0.025") is also accepted on input.
PrintSettingValidateResponse#
PrintSettingValidateResponse
Fields
validbooleanRequiredWhether at least one shipped print setting matches the fields given.
optionsPrintSettingValidateOptionsValid values for the one field omitted from the request, given the other three. Exactly one of these four properties is present.
Show child attributes
machine_typesarray of stringsmaterial_codesarray of stringsprint_settingsarray of stringslayer_thicknesses_mmarray of number or strings
PrintSettingsListResponse#
PrintSettingsListResponse
Fields
printer_typesarray of PrinterTypesRequiredEvery printer type PreForm ships print settings for, or the single matching connected printer's type if
compatible_withwas given.Show child attributes
labelstringRequiredDisplay name, e.g. "Form 4".
supported_machine_type_idsarray of stringsRequiredCanonical machine type ids this entry covers.
supported_product_namesarray of stringsRequiredMarketing product names this entry covers.
build_volume_dimensions_mmarray of numbersRequiredBuild volume dimensions in millimeters, as [x, y, z].
materialsarray of PrintMaterialsRequiredShow child attributes
labelstringRequiredDisplay name, e.g. "Black V5".
descriptionstringRequiredShort marketing description of the material. May be empty.
material_settingsarray of MaterialSettingsRequiredEvery layer-thickness/print-setting variant of this material.
Show child attributes
labelstringRequiredDisplay label, e.g. "0.025 mm (Default settings)".
Identifies one machine/material/print-setting/layer-thickness combination, as returned by
/v1/print-setting/list/. The same field names are used by/v1/print-setting/validate/.
PrinterType#
PrinterType
A printer type/model and the materials it supports.
Fields
labelstringRequiredDisplay name, e.g. "Form 4".
supported_machine_type_idsarray of stringsRequiredCanonical machine type ids this entry covers.
supported_product_namesarray of stringsRequiredMarketing product names this entry covers.
build_volume_dimensions_mmarray of numbersRequiredBuild volume dimensions in millimeters, as [x, y, z].
materialsarray of PrintMaterialsRequiredShow child attributes
labelstringRequiredDisplay name, e.g. "Black V5".
descriptionstringRequiredShort marketing description of the material. May be empty.
material_settingsarray of MaterialSettingsRequiredEvery layer-thickness/print-setting variant of this material.
Show child attributes
labelstringRequiredDisplay label, e.g. "0.025 mm (Default settings)".
Identifies one machine/material/print-setting/layer-thickness combination, as returned by
/v1/print-setting/list/. The same field names are used by/v1/print-setting/validate/.Show child attributes
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
Print setting profile code, e.g. "DEFAULT".
layer_thickness_mmnumber or stringRequiredA layer thickness in millimeters, or the literal string "ADAPTIVE" for adaptive layer thickness. A numeric value formatted as a string (e.g. "0.025") is also accepted on input.
RaftType#
enum RaftType
Which raft style to build under a model's supports.
FULL_RAFT- A single solid raft under the whole support structure.
MINI_RAFT- A small raft under each touchpoint cluster instead of one solid raft.
MINI_RAFTS_ON_BP- Mini rafts placed directly on the build platform rather than under the touchpoints.
RegenerateSupportsRequest#
RegenerateSupportsRequest
Which supported models to rebuild supports for.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models whose supports to regenerate. Omitted or empty means every model in the scene that has supports.
RenderRequest#
RenderRequest
Identifies the scene to render and where to save the image.
Fields
scene_idstring (uuid)RequiredThe id of the scene to render.
filestringRequiredPath to save the rendered image to. Must end in
.pngor.webp..webpis required whenflyaround_transformis present.model_idsarray of string (uuid)sIds of the models to make visible in the render (and candidates for
ZOOM_ON_MODELSframing). Omitted or[]means every model in the scene.view_typeenum RenderViewTypeCamera framing for a render.
ZOOM_ON_MODELS- Frame the camera to fit the selected, visible models.
FULL_BUILD_VOLUME- Frame the camera to fit the whole build volume.
FULL_PLATFORM_WIDTH- Frame the camera to the platform's full width, at whatever height that implies.
image_size_pxintegerMaximum image width/height, in pixels. The render is square.
crop_to_modelsbooleanWhether to crop the frame tightly around the visible models instead of leaving margin.
yawnumberCamera yaw, in degrees. Ignored when
flyaround_transform.transformis present.pitchnumberCamera pitch, in degrees. Ignored when
flyaround_transform.transformis present.flyaround_transformanyRenders a
.webpanimation instead of a single.png. Provide either an explicittransformkeyframe list, orframe_countto auto-generate evenly-spaced frames around a full turn starting from the top-levelyaw/pitch. At least one of the two is required.Show child attributes
transformarray of FlyaroundKeyframesExplicit list of camera keyframes to render, one per animation frame.
Show child attributes
yawnumberRequiredCamera yaw for this frame, in degrees.
pitchnumberRequiredCamera pitch for this frame, in degrees.
frame_countintegerNumber of evenly-spaced frames to render around a full 360-degree turn. Ignored if
transformis present.ensure_constant_sizebooleanWhen true, every frame is rendered at the same size (the largest needed by any frame) instead of each frame being cropped independently.
RenderViewType#
enum RenderViewType
Camera framing for a render.
ZOOM_ON_MODELS- Frame the camera to fit the selected, visible models.
FULL_BUILD_VOLUME- Frame the camera to fit the whole build volume.
FULL_PLATFORM_WIDTH- Frame the camera to the platform's full width, at whatever height that implies.
RepairBehavior#
enum RepairBehavior
What to do when an imported file needs mesh repair.
REPAIR- Attempt to repair the model if needed before adding it to the scene.
ERROR- Fail the import with OPERATION_FAILED instead of importing a model that needs repair.
IGNORE- Import the model as-is, without repairing it.
RepairModelsRequest#
RepairModelsRequest
Selects the models to repair.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to repair. Omitted or empty means every model in the scene.
ReplaceModelRequest#
ReplaceModelRequest
Names the model to replace and the model already in the scene that replaces it.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing both models.
model_idstring (uuid)RequiredThe id of the model to replace. It is removed from the scene.
replacement_model_idstring (uuid)RequiredThe id of the model that takes over
model_id's pose and supports. It keeps this id and its own layout lock. Must differ frommodel_id.
ReplaceModelResult#
ReplaceModelResult
The result of replacing a model with another model in the scene. The replacement's id is the request's replacement_model_id; fetch its new state with /v1/scene/model/list/.
Fields
warningsarray of enum ReplaceWarningsRequiredNOT_ALL_SUPPORTS_COMPUTED_SUCCESSFULLY- Support generation for the new geometry did not finish. The new model may have no supports.
NOT_ALL_CONTACT_LOCATIONS_APPLIED- Supports were generated, but not every contact location from the original model's supports could be carried over to the new geometry.
ReplaceWarning#
enum ReplaceWarning
A non-fatal problem carrying over the replaced model's supports to its new geometry.
NOT_ALL_SUPPORTS_COMPUTED_SUCCESSFULLY- Support generation for the new geometry did not finish. The new model may have no supports.
NOT_ALL_CONTACT_LOCATIONS_APPLIED- Supports were generated, but not every contact location from the original model's supports could be carried over to the new geometry.
SaveSceneRequest#
SaveSceneRequest
One or more scenes to save as a .form file.
Fields
filestringRequiredPath to write the .form file to.
scene_idsarray of string (uuid)sRequiredIds of the scenes to save, in order. A single id saves a single-build-volume .form file. More than one saves a multi-build-volume project file.
project_namestringName of the project inside the file, returned by
/v1/scene/open/. Omitted means no name is stored.
ScaleRequest#
ScaleRequest
Sets a uniform scale factor on the selected models.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to scale. Omitted or empty means every model in the scene.
scalenumberRequiredThe scale factor to apply. Replaces each model's current scale outright. It is not multiplied against the existing value.
Scene#
Scene
A printer/material/print-setting combination and the models placed within its build volume.
Fields
idstring (uuid)RequiredUnique identifier of the scene.
modelsarray of ModelPropertiesRequiredThe models currently in the scene.
Show child attributes
idstring (uuid)RequiredUnique identifier of the model within its scene.
namestringRequiredDisplay name used within job preparation.
A position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
Orientation as Euler angles in degrees. Rotations are applied in the order z, then x, then y.
Show child attributes
xnumberRequiredRotation in degrees around the x axis (applied second).
ynumberRequiredRotation in degrees around the y axis (applied last).
znumberRequiredRotation in degrees around the z axis (applied first).
scalenumberRequiredScale factor applied to the model.
The measurement units a model was defined in.
MILLIMETERS- Model coordinates are millimeters.
INCHES- Model coordinates are inches.
bounding_boxobjectRequiredAxis-aligned bounding box of the model (including generated geometry such as supports) in scene coordinates. Group containers have an empty bounding box, serialized as all zeros.
Show child attributes
min_cornerScenePositionA position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
max_cornerScenePositionA position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
original_filestringRequiredPath of the file the model was imported from.
visiblebooleanRequiredWhether the model is currently shown in the scene.
has_supportsbooleanRequiredWhether support structures have been generated for the model.
is_groupbooleanRequiredWhether this entry is a Part Group container rather than a regular printable model. Group containers have zero volume and an empty bounding box.
is_cagebooleanRequiredWhether the group is a cage. Cages are a subset of groups, so
is_cage: trueimpliesis_group: true.in_boundsbooleanRequiredWhether the model lies entirely within the build volume.
raw_mesh_hashstringRequiredHash of the raw mesh data, before any transform.
canonical_model_hashstringRequiredHash of the mesh data together with its position, orientation, and scale.
Orientation and position constraints on a model, respected by automatic layout and packing operations.
FREE- Layout operations may move and rotate the model freely.
LOCKED_XY_FLIP_ENABLED- Layout may move the model and spin it about the vertical (Z) axis, and may also flip it over; it may not tilt it otherwise.
LOCKED_XY_ROTATION_FREE_TRANSLATION- Layout may move the model and spin it about the vertical (Z) axis, but not tilt it.
LOCKED_ROTATION_FREE_TRANSLATION- Layout may move the model but not rotate it at all.
FULLY_LOCKED- Layout leaves the model exactly where it is.
The machine/material/print-setting/layer-thickness combination used to create the scene.
Show child attributes
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
Print setting profile code, e.g. "DEFAULT".
Layer thickness in millimeters, always returned as a string: either a numeric string (e.g. "0.025") or the literal "ADAPTIVE" for adaptive layer thickness. Contrast with
/v1/print-setting/list/and/v1/print-setting/validate/, whoselayer_thickness_mmis a JSON number (or "ADAPTIVE").custom_print_setting_idstring (uuid)Id of the custom print setting the scene was created or updated from, if any (via
fps_file). Absent when the scene uses a material-based print setting.
material_usageSlaMaterialUsage or SlsMaterialUsage or UnknownMaterialUsageRequiredMaterial consumption for the scene's models. The shape depends on the scene's printer family. An unrecognized family reports an empty object.
Show child attributes
SlaMaterialUsageoption 1 of 2Material usage for an SLA-type scene (e.g. Form 4).
Show fields
volume_mlnumberRequiredTotal volume of models and supports in the scene, in milliliters.
unsupported_volume_mlnumberRequiredTotal volume of models alone, not including supports, in milliliters.
SlsMaterialUsageoption 2 of 2Material usage for an SLS-type scene (e.g. Fuse 1+, Fuse X1).
Show fields
total_powder_mlnumberRequiredTotal volume of powder used, including unsintered support powder, in milliliters.
total_powder_kgnumberRequiredTotal mass of powder used, including unsintered support powder, in kilograms.
total_sintered_powder_mlnumberRequiredVolume of powder that ends up sintered (part of the finished print), in milliliters.
total_sintered_powder_kgnumberRequiredMass of powder that ends up sintered (part of the finished print), in kilograms.
mass_packing_densitynumberRequiredRatio of sintered powder mass to the total build volume.
layer_countintegerRequiredNumber of layers the scene would slice to.
The build volume geometry for the scene's printer and material.
Show child attributes
dimensions_mmobjectRequiredBuild volume size in millimeters.
Show child attributes
xnumberRequiredynumberRequiredznumberRequired
fillet_radius_mmnumberRequiredRadius of the build volume's corner fillets, in millimeters.
SceneLayerThicknessMm#
string
Layer thickness in millimeters, always returned as a string: either a numeric string (e.g. "0.025") or the literal "ADAPTIVE" for adaptive layer thickness. Contrast with /v1/print-setting/list/ and /v1/print-setting/validate/, whose layer_thickness_mm is a JSON number (or "ADAPTIVE").
ScenePosition#
ScenePosition
A position within a printer's build volume, in millimeters, in user coordinate space.
Fields
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
SceneSettings#
SceneSettings
Identifies one machine/material/print-setting/layer-thickness combination, as returned by /v1/print-setting/list/. The same field names are used by /v1/print-setting/validate/.
Fields
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
Print setting profile code, e.g. "DEFAULT".
layer_thickness_mmnumber or stringRequiredA layer thickness in millimeters, or the literal string "ADAPTIVE" for adaptive layer thickness. A numeric value formatted as a string (e.g. "0.025") is also accepted on input.
SceneType#
SceneType
The machine/material/print-setting/layer-thickness combination used to create the scene.
Fields
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
Print setting profile code, e.g. "DEFAULT".
Layer thickness in millimeters, always returned as a string: either a numeric string (e.g. "0.025") or the literal "ADAPTIVE" for adaptive layer thickness. Contrast with
/v1/print-setting/list/and/v1/print-setting/validate/, whoselayer_thickness_mmis a JSON number (or "ADAPTIVE").custom_print_setting_idstring (uuid)Id of the custom print setting the scene was created or updated from, if any (via
fps_file). Absent when the scene uses a material-based print setting.
SlaMaterialUsage#
SlaMaterialUsage
Material usage for an SLA-type scene (e.g. Form 4).
Fields
volume_mlnumberRequiredTotal volume of models and supports in the scene, in milliliters.
unsupported_volume_mlnumberRequiredTotal volume of models alone, not including supports, in milliliters.
SlsMaterialUsage#
SlsMaterialUsage
Material usage for an SLS-type scene (e.g. Fuse 1+, Fuse X1).
Fields
total_powder_mlnumberRequiredTotal volume of powder used, including unsintered support powder, in milliliters.
total_powder_kgnumberRequiredTotal mass of powder used, including unsintered support powder, in kilograms.
total_sintered_powder_mlnumberRequiredVolume of powder that ends up sintered (part of the finished print), in milliliters.
total_sintered_powder_kgnumberRequiredMass of powder that ends up sintered (part of the finished print), in kilograms.
mass_packing_densitynumberRequiredRatio of sintered powder mass to the total build volume.
SplitModelBodiesRequest#
SplitModelBodiesRequest
Identifies which models in a scene to split into one model per disconnected body.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to split. Omitted or empty means every model in the scene.
SplitModelBodiesResult#
SplitModelBodiesResult
The per-body models a split operation created, per source model.
Fields
resultsarray of ModelsCreatedFromSourcesRequiredOne entry per selected model, in request order. Each entry's new_model_ids are the per-body models split out of that model, in no particular order (each body's name carries its "(Body N)" index). The source model no longer exists in the scene.
Show child attributes
source_model_idstring (uuid)RequiredThe id of the model the new models were created from.
new_model_idsarray of string (uuid)sRequiredIds of the models created from it, in no particular order.
SupportednessDetectionResult#
SupportednessDetectionResult
Supportedness-detection outcome for a single model.
Fields
percent_unsupportednumberRequiredPercentage of the model's surface that is undersupported in its current orientation and support configuration. 0 means fully supported.
ThinWallDetectionRequest#
ThinWallDetectionRequest
Detect thin walls in the selected models against a thickness threshold.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to analyze. Omitted or empty means every model in the scene, including non-printable ones.
threshold_mmnumberRequiredWall thickness threshold, in millimeters. Regions thinner than this are flagged as thin.
ThinWallDetectionResult#
ThinWallDetectionResult
Thin-wall-detection outcome for a single model.
Fields
statusstringRequiredPer-model analysis outcome.
ANALYZED: analysis ran (see the other fields).TOO_SMALL: too small/thin to voxelize (sub-~2-voxel extent or sub-voxel shell).TOO_LARGE: too large to voxelize within the memory budget at this resolution (often a units mistake).MESH_ERROR: the mesh could not be rasterized (degenerate/broken geometry). For any non-ANALYZEDstatus the model could not be assessed:has_thin_wallsis false andthin_regionsis empty. These are per-model outcomes, not request errors, and other models still return normally.ANALYZEDTOO_SMALLTOO_LARGEMESH_ERROR
has_thin_wallsbooleanRequiredWhether any thin region was found.
thin_volume_mm3numberRequiredSum of all detected thin regions' volumes, in cubic millimeters. 0 if
has_thin_wallsis false.thin_region_countintegerRequiredNumber of distinct thin regions detected, equal to the length of
thin_regions.thin_regionsarray of objectsRequiredPer-region breakdown, sorted by volume descending. Empty if
has_thin_wallsis false.Show child attributes
volume_mm3numberRequiredVolume of this connected thin region, in cubic millimeters.
bounding_boxobjectRequiredAxis-aligned bounding box of the region, in scene coordinates.
Show child attributes
min_cornerScenePositionA position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
max_cornerScenePositionA position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
TransformMatrix#
TransformMatrix
Orientation as the linear (rotation/scale) part of a 3x3 transform matrix.
Fields
lineararray of array of numbersRequiredA 3x3 matrix, given as 3 rows of 3 numbers.
TranslateMode#
enum TranslateMode
How to interpret the position of a translate request.
ABSOLUTE- Set each model's origin to exactly the given coordinates. Translating several models to the same absolute position stacks them.
RELATIVE- Add the given offset to each model's current position, preserving the models' arrangement relative to each other.
TranslateRequest#
TranslateRequest
Moves the selected models. On SLA scenes the z component of position is ignored.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to translate. Omitted or empty means every model in the scene.
A position within a printer's build volume, in millimeters, in user coordinate space.
Show child attributes
xnumberRequiredX position. 0 is the center of the build volume. Positive moves right as you face the printer.
ynumberRequiredY position. 0 is the center of the build volume. Positive moves away from you as you face the printer.
znumberRequiredVertical position. 0 is the surface of the build platform.
How to interpret the
positionof a translate request.ABSOLUTE- Set each model's origin to exactly the given coordinates. Translating several models to the same absolute position stacks them.
RELATIVE- Add the given offset to each model's current position, preserving the models' arrangement relative to each other.
Units#
enum Units
The measurement units a model was defined in.
MILLIMETERS- Model coordinates are millimeters.
INCHES- Model coordinates are inches.
UnknownMaterialUsage#
UnknownMaterialUsage
Material usage for a scene whose machine family this PreFormServer build does not recognize (machine type UNKN-0-0). Always empty.
UpdateModelRequest#
UpdateModelRequest
Metadata to apply to the selected models. A model's pose is changed through the dedicated scale/orient/translate endpoints, so pose fields are not accepted here.
Fields
scene_idstring (uuid)RequiredThe id of the scene containing the models.
model_idsarray of string (uuid)sIds of the models to update. Omitted or empty means every model in the scene.
namestringDisplay name to apply. Applying to more than one model at once gives all of them this same name.
unitsenum UnitsThe measurement units a model was defined in.
MILLIMETERS- Model coordinates are millimeters.
INCHES- Model coordinates are inches.
lockenum LockOrientation and position constraints on a model, respected by automatic layout and packing operations.
FREE- Layout operations may move and rotate the model freely.
LOCKED_XY_FLIP_ENABLED- Layout may move the model and spin it about the vertical (Z) axis, and may also flip it over; it may not tilt it otherwise.
LOCKED_XY_ROTATION_FREE_TRANSLATION- Layout may move the model and spin it about the vertical (Z) axis, but not tilt it.
LOCKED_ROTATION_FREE_TRANSLATION- Layout may move the model but not rotate it at all.
FULLY_LOCKED- Layout leaves the model exactly where it is.
UpdateModelResult#
UpdateModelResult
What /v1/scene/model/update/ did: the models it changed, as in ModifiedModels, and any side effects it did not perform.
Fields
modified_model_idsarray of string (uuid)sRequiredThe selected models the update was applied to.
warningsarray of UpdateModelWarningsRequiredShow child attributes
codestringRequiredRAFT_LABEL_OUTDATED- This request renamed the model, and its raft was generated with
raft_label_enabled, so the engraved name no longer matches the rename. Regenerate its supports to update the label.
model_idstring (uuid)RequiredThe model the warning is about.
UpdateModelWarning#
UpdateModelWarning
A side effect /v1/scene/model/update/ did not perform on one model.
Fields
codestringRequiredRAFT_LABEL_OUTDATED- This request renamed the model, and its raft was generated with
raft_label_enabled, so the engraved name no longer matches the rename. Regenerate its supports to update the label.
model_idstring (uuid)RequiredThe model the warning is about.
UpdateSceneFpsFile#
UpdateSceneFpsFile
Update a scene from a saved .fps print settings file. Custom print settings are persisted so the scene's scene_settings.custom_print_setting_id can identify them later.
Fields
scene_idstring (uuid)RequiredThe id of the scene to update.
fps_filestringRequiredFull path to the .fps file.
UpdateSceneManual#
UpdateSceneManual
A new machine/material/print-setting/layer-thickness combination to apply to the scene.
Fields
scene_idstring (uuid)RequiredThe id of the scene to update.
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
print_settingstringPrint setting profile code, e.g. "DEFAULT".
layer_thickness_mmnumber or stringRequiredA layer thickness in millimeters, accepted as a JSON number, the literal string "ADAPTIVE" for adaptive layer thickness, or a numeric value formatted as a string (e.g. "0.025"). "ADAPTIVE" is accepted only where the settings catalog offers an adaptive variant, on older printer models (see
/v1/print-setting/list/).
UpdateSceneRequest#
UpdateSceneManual or UpdateSceneFpsFile
Either a new manual machine/material/print-setting combination, or a saved .fps print settings file, plus the scene_id to update.
Fields
UpdateSceneManualoption 1 of 2A new machine/material/print-setting/layer-thickness combination to apply to the scene.
Show fields
scene_idstring (uuid)RequiredThe id of the scene to update.
Canonical machine type id, e.g. "FORM-4-0".
Versioned material code, e.g. "FLGPBK05".
print_settingstringPrint setting profile code, e.g. "DEFAULT".
layer_thickness_mmnumber or stringRequiredA layer thickness in millimeters, accepted as a JSON number, the literal string "ADAPTIVE" for adaptive layer thickness, or a numeric value formatted as a string (e.g. "0.025"). "ADAPTIVE" is accepted only where the settings catalog offers an adaptive variant, on older printer models (see
/v1/print-setting/list/).
UpdateSceneFpsFileoption 2 of 2Update a scene from a saved .fps print settings file. Custom print settings are persisted so the scene's
scene_settings.custom_print_setting_idcan identify them later.Show fields
scene_idstring (uuid)RequiredThe id of the scene to update.
fps_filestringRequiredFull path to the .fps file.
UploadFirmwareRequest#
UploadFirmwareRequest
Firmware upload parameters for /v1/device/upload-firmware/.
Fields
printerstringRequiredPrinter serial name, IP address, or Fleet Control Queue id.
file_pathstringRequiredPath, on the machine running PreFormServer, to the firmware
.formwareor.formware2file to upload.
UserInfo#
UserInfo
Account information for the logged-in Formlabs Dashboard user. This is largely a passthrough of the Dashboard's own account record, so it may include fields beyond the ones listed here.
Fields
usernamestringRequiredFormlabs Dashboard account username or email address.
emailstringAccount email address.
idintegerFormlabs Dashboard account id.
first_namestringAccount holder's first name.
last_namestringAccount holder's last name.