Printago API
GET
/v1/part-build-steps
Get all part build steps
List all part build steps in your store
Query Parameters
partBuildId
optional
string
Filter on
partBuildId. A bare value is an exact match (partBuildId=value); use partBuildId.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
order
optional
string
Filter on
order. A bare value is an exact match (order=value); use order.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
builder
optional
string
Filter on
builder. A bare value is an exact match (builder=value); use builder.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
inputFiles
optional
string
Filter on
inputFiles. A bare value is an exact match (inputFiles=value); use inputFiles.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
inputParameters
optional
string
Filter on
inputParameters. A bare value is an exact match (inputParameters=value); use inputParameters.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
inputHash
optional
string
Filter on
inputHash. A bare value is an exact match (inputHash=value); use inputHash.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
cachedBuildStepId
optional
string
Filter on
cachedBuildStepId. A bare value is an exact match (cachedBuildStepId=value); use cachedBuildStepId.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
cachedOutputFile
optional
string
Filter on
cachedOutputFile. A bare value is an exact match (cachedOutputFile=value); use cachedOutputFile.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
outputFiles
optional
string
Filter on
outputFiles. A bare value is an exact match (outputFiles=value); use outputFiles.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
status
optional
string
Filter on
status. A bare value is an exact match (status=value); use status.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
logs
optional
string
Filter on
logs. A bare value is an exact match (logs=value); use logs.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
requiresAssignedPrinter
optional
string
Filter on
requiresAssignedPrinter. A bare value is an exact match (requiresAssignedPrinter=value); use requiresAssignedPrinter.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
nextStepId
optional
string
Filter on
nextStepId. A bare value is an exact match (nextStepId=value); use nextStepId.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
startedAt
optional
string
Filter on
startedAt. A bare value is an exact match (startedAt=value); use startedAt.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
completedAt
optional
string
Filter on
completedAt. A bare value is an exact match (completedAt=value); use completedAt.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
dismissed
optional
string
Filter on
dismissed. A bare value is an exact match (dismissed=value); use dismissed.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
id
optional
string
Filter by record ID. A bare value is an exact match; use
id.in=a,b,c for several (up to 100). See Querying Data.
storeId
optional
string
Filter by store ID. Results are always limited to the store your API key belongs to, so this is rarely useful. See Querying Data.
createdAt
optional
string
Filter by creation time. Pass an ISO 8601 timestamp with a comparison operator, e.g.
createdAt.gte=2025-01-01T00:00:00Z. See Querying Data.
updatedAt
optional
string
Filter by last-modified time. Pass an ISO 8601 timestamp with a comparison operator, e.g.
updatedAt.gt=2025-01-01T00:00:00Z to fetch what changed since a checkpoint. See Querying Data.
sort
optional
string
Comma-separated
field:direction pairs, applied in order, e.g. createdAt:desc,name:asc. Direction is asc (the default) or desc. At most 5 clauses; JSON and array fields cannot be sorted on. See Querying Data.
limit
optional
number
Maximum number of records to return, 1–1000. Defaults to 1000; larger values are capped at 1000. See Querying Data.
offset
optional
number
Number of matching records to skip before returning results. Combine with
limit to page through a list, and with meta=true to learn the total. See Querying Data.
fields
optional
string
Comma-separated list of fields to return, e.g.
id,name,updatedAt. Other fields are left out of each record. At most 50 fields. See Querying Data.
include
optional
string
Comma-separated related records to embed in each result, e.g.
linkedParts,linkedParts.part. At most 4 includes, each at most 2 levels deep; only the relations this endpoint supports are accepted, anything else is a 400. See Querying Data.
meta
optional
boolean
Set to
true to wrap the response as { data, meta }, where meta carries total, count, offset, limit, hasMore and executionTime. Without it the response is a bare array. See Querying Data.
hints
optional
boolean
Set to
true to add a hints array of suggested follow-up API calls to the response (aimed at AI agents). A list response is wrapped as { data, meta, hints }. See Querying Data.
Response Schema
PartBuildStep[] | SearchResponse
Variant 1PartBuildStep[]
builderrequired
"slic3r" | "openscad" | "cadquery" | "text3mf"
slic3ropenscadcadquerytext3mf
cachedBuildStepIdrequirednullable
string
pattern: ^[a-z0-9]{24}$
cachedOutputFilerequirednullable
string
completedAtrequirednullable
string
format: date-time
createdAtrequired
string
format: date-time
dismissedrequired
boolean
idrequired
string
pattern: ^[a-z0-9]{24}$
inputFilesrequired
string[]
min items: 1
inputHashrequirednullable
string
inputParametersoptional
object
Variant 1OpenSCADInputParameters
buildVariablesoptional
string[]
colorsoptional
object[]
colorrequired
string
indexrequired
number
typerequirednullable
string
Variant 2CadQueryInputParameters
modeoptional
"step" | "script"
"step" tessellates the input STEP file instead of running a script.
stepscript
paramsoptional
Record<string, any>
Construct a type with a set of properties K of type T
Variant 3Text3MFInputParameters
occurrenceSubstitutionsoptional
object[]
Instance-addressed replacements; they win over the name-keyed map.
instanceIdrequired
number
0-based instance index among the object's build items.
keyrequired
string
Slot key (a `PrintagoParam*` volume name).
objectIdrequired
string
`model_settings.config` object id of the target object definition.
textrequired
string
outputFilesoptional
string[]
sizingoptional
Record<string, "stretch" | "fit" | "unconstrained">
Construct a type with a set of properties K of type T
substitutionsoptional
Record<string, string>
Construct a type with a set of properties K of type T
logsrequired
string[]
nextStepIdrequirednullable
string
pattern: ^[a-z0-9]{24}$
orderrequired
number
min: 0
outputFilesrequired
string[]
min items: 1
partBuildIdrequired
string
pattern: ^[a-z0-9]{24}$
requiresAssignedPrinterrequired
boolean
startedAtrequirednullable
string
format: date-time
statusrequired
enum
pendingrunningsuccesserrorcancelledcachedforce_running
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
updatedAtrequired
string
format: date-time
datarequired
Record<string, any>[]
Array of matching entities
metarequired
object
Pagination and result metadata
countrequired
number
Number of records returned in this response
executionTimerequired
number
Query execution time in milliseconds
hasMorerequired
boolean
Whether there are more records available
limitrequired
number
Maximum number of records requested
offsetrequired
number
Number of records skipped
totalrequired
number
Total number of matching records (before pagination)
Example Response
200 OK — application/json
[
{
"partBuildId": "string",
"order": 0,
"builder": "slic3r",
"inputFiles": [
"string"
],
"inputParameters": {
"buildVariables": [
"string"
],
"colors": [
{
"index": 1,
"color": "string",
"type": "string"
}
]
},
"inputHash": "string",
"cachedBuildStepId": "string",
"cachedOutputFile": "string",
"outputFiles": [
"string"
],
"status": "pending",
"logs": [
"string"
],
"requiresAssignedPrinter": true,
"nextStepId": "string",
"startedAt": "2025-01-15T12:00:00.000Z",
"completedAt": "2025-01-15T12:00:00.000Z",
"dismissed": true,
"id": "string",
"storeId": "string",
"createdAt": "2025-01-15T12:00:00.000Z",
"updatedAt": "2025-01-15T12:00:00.000Z"
}
]