Skip to content

Updates

Latest updates and changes to the SmartCut REST API.

OCT 8 2026
  • Vertical panel saws (guillotineOptions.verticalPanelSaw): strips are now laid out narrowest first from the left edge (x = 0), so each comes off first by setting the fence to its own width. Equal sizes are grouped together at every level - pieces cross-cut from a strip, columns within a section and rows within a column - so the fence moves less. Sheets, and the parts on each sheet, are unchanged.
  • Vertical panel saws: where cutting a section in either direction is valid, the cut sequence now prefers the one with fewer strips, then fewer cuts - including taking out a strip that blocks a clean row cut first.
  • Fix: a strip lying flush against the far (top or right) trimmed edge now gets its trim rip, so its cross cuts run edge to edge. Previously those cuts could stop at the usable edge, leaving the trim band on the strip. This affected vertical panel saw boards and boards re-cut to consolidate offcuts.
  • Fix: on vertical panel saws, a strip's edge trim is now cut after the rip that frees the strip rather than before it.
  • New top level stacks array, sent when any sheets are stacked: one entry per stack with its stockId, depth and sheets - each sheet's position in the stack (1 = top) and its sheet number across the job. Parts on a stacked sheet now carry stacked.stack as well as stacked.sheet and stacked.of, so a cutting plan or label can show which stack and which sheet each part comes from. PDF labels print 'Sheet k of n' on stacked parts.
  • New top level stripRepeats array, sent when the same strip occurs more than once: each group lists strips with the same width and the same cross-cut parts in the same order, across sheets and within a sheet, so they can be stacked and cut together. Each member names its stock id, its strip number in cutting order (strip 1 is the first strip taken off) and its offset from the sheet edge, and counts the sheets on a stack. Parts on a repeated strip carry stripGroup.
  • New guillotine option duplicateStrips (off by default): on beam and guillotine saws, places an identical copy of a strip next to it on the same sheet when the remaining parts allow, so the two can be stacked and cut together. A convenience option - it can use more material.
  • New saw option maxStackSheets limits how many sheets are stacked together, separately from stackHeight. The stack depth is the smaller of the two limits, and maxStackSheets also applies when no thickness is known.
  • The API reference now states the coordinate convention (y increases upward from y = 0, the bottom rail on a vertical saw; 'top' means high y) and how grain-locked parts stack.
  • Biesse saws (sawProfileId biesse-optiplanner) no longer apply a default limit of 3 cutting phases. A guillotineOptions.maxPhase you send still applies. With no limit set, a Biesse job can now use the MAX models.
SEP 30 2026
  • Mayer saws (sawProfileId mayer-may): guillotineOptions.maxPhase now accepts up to 4. The default stays 3 - send 4 to opt in. Each extra phase is one more piece the operator turns and feeds by hand on the PC7000, in exchange for fewer sheets on some jobs. Values above 4 are lowered to 4.
SEP 24 2026
  • Results now list every part, including parts cut on stacked sheets. Previously, parts on a stacked sheet that were not copies of the top sheet's parts were missing from the parts array.
  • Parts cut on a stack carry a new stacked property - { sheet, of } - where sheet 1 is the top sheet of the stack. Their stock id is the stack's top sheet, which is the entry listed in the stock array.
  • metadata.addedPartTally now counts each part once under its own id, rather than the top sheet's parts multiplied by the stack count.
  • Fix: machining corners sent as an object keyed side.a - side.d (the previously documented form) were being ignored. They are now applied. The documented form is now an array of { index, type, size }, the same shape the result returns; the object form is still accepted.
  • Machining grooves are now documented.
SEP 22 2026
  • New saw option minOffcut sets the minimum size for a leftover to count as a reusable offcut, per job.
SEP 21 2026
  • The offcuts array now lists every leftover, each with a new retained flag - leftovers below the minimum offcut size are returned with retained: false rather than omitted.
SEP 15 2026
  • Each stock's analysis now reports maxPhase - the number of cutting stages that sheet needs - with the highest across the job in metadata.maxPhase.
SEP 7 2026
  • Mayer .may export (/v3/export/mayer) is now documented, and includes the part label fields (parts[].labels).
SEP 3 2026
  • The MAX models (rectangle-guillotine-max-1 / -2) are now available on guillotine saws as well as beam saws.
AUG 24 2026
  • Beam saws now support guillotineOptions.maxPhase: 1 (two-stage cutting).
AUG 18 2026
  • Saws can be identified by vendor, model and softwareVersion.
  • /v3/calculate and /v3/validate responses now include a warnings array.
  • On beam saws, guillotineOptions.strategy 'time' is treated as 'efficiency' - it is a setting for manual table saws.
AUG 17 2026
  • Fix: V2 requests now apply saw.options (stackingMode, stockSelection) and stackHeight as sent - previously they were replaced by defaults.
AUG 14 2026
  • Parts returned by /v3/model/analysis now include machining holes (position, diameter, depth, face and type).
AUG 13 2026
  • New top level materials array. Each material can carry its own saw (or sawId), thicknesses and grain, and parts and stock reference it by materialId.
  • saw can now be an array of saws, each with an id. Results return materials and saws, and each stock carries its materialId and sawId.
AUG 11 2026
  • New endpoint POST /v3/model/analysis - upload a 3D model (STEP, STL, OBJ, PLY, glTF/GLB) and get back a parts list. The parts array is submittable to /v3/calculate unchanged.
  • Shaped parts come back with an outline and holes, ready for a nesting model; fittings are flagged so you can drop them.
  • Collada (.dae) and 3MF are not supported server-side and return 415 with a list of the formats that are.
  • Billed on the same compute-time meter as a calculation. See the 3D model analysis guide.
AUG 6 2026
  • Irregular nesting: new models irregular-nesting-fast, irregular-nesting-max-1 and irregular-nesting-max-2, and parts accept outline and holes geometry.
AUG 3 2026
  • Part grain is no longer an input - it is derived from the stock's grain and the part's final rotation.
  • rot on result parts is documented as 0 / 1 rather than a boolean.
JUL 28 2026
  • New guillotine options verticalPanelSaw and maxStripWidth.
JUL 24 2026
  • New metadata.unplacedParts lists every part that could not be placed (id, name, dimensions, material and count).
JUL 23 2026
  • V2 parts accept stockLock.
JUL 20 2026
  • Results now include calcTime.
JUN 24 2026
  • New endpoint GET /v3/saws lists the supported saws with their export formats and endpoints.
  • Biesse XML export (/v3/export/biesse) added to the documentation.
  • Biesse and Mayer exports take their formatting defaults (decimal precision, and units and currency for Mayer) from the saw profile.
  • The MAX models can now be requested through the API with the model field (beam saws, up to 500 parts).
JUN 16 2026
  • New model field on /v3/calculate selects the optimisation model - see the API reference for the available models.
JUN 9 2026
  • New endpoint POST /v3/validate - check a job without running a calculation. Returns valid, the stage reached and a list of issues (type, category, field, index, identifier and message).
MAY 28 2026
  • Parts accept a new labels object for saw label fields: order, room, pallet, colour, drawing, productNumber, productInfo, barcode1 and barcode2. The request also accepts labels.customer.
  • /v3/calculate responses include labelWarnings, flagging label fields that the selected saw's export formats cannot carry.
APR 13 2026
  • /v3/labels accepts labelW and labelH for a custom label size, and notes to print part notes.
  • /v3/export/pdf accepts showDiagram, showCoordinates, showNotes and partAnnotations (each 'y' or 'n').
MAR 11 2026
  • Added code property to parts and stock.
  • New groups top level property added.
NOV 28 2025
  • Added custom data properties to stock & parts.
  • Added stock.stack to checkout API V3
  • Updated v3/export/ and documentation
NOV 3 2025
  • API V3 launched, V1 marked as deprecated.
JAN 31 2025
  • For V1 API users, the stockList and partList properties have been removed from the response. Please use the stock and parts properties instead.
DEC 17 2024
  • In the PTX file, when no edge banding is present in a part, a blank field will be used rather than the string 'N' - this was causing issues when importing into Magi-Cut.
NOV 9 2024
  • Added 'stackingMode' to saw options, which determines how stock will be stacked.
NOV 4 2024
  • Use of the 'bandingType' property within each part has been deprecated. Please use the 'banding' attribute instead, which can now accept a boolean or a string value.
  • New 'finish' attribute added to parts. This can be used to specify the finish of a part, for example spray paint. Metadata now includes totalFinishArea and finishAreaByType properties to show the total area of parts with a finish applied split by finish type. Each stock also contains a finishArea property within 'analysis'.
FEB 19 2024
  • Experimental feature userGroups has been updated. Now uses id and 'direction' rather than id and coordinates. This is a breaking change and will require updates to your code if you were using this feature.
FEB 5 2024
  • Roll length in metadata is now total roll length - the key is now 'totalRollLength'
  • Stacked cut length and total cuts is now available in metadata and stock analysis
  • Beam saw calculations now need a stack height to be set
DEC 11 2023
  • Better handling of exports & label files - the file url is now returned in the response body.
  • Files in zip format have new filenames - please use the response url.
  • Added rollLength to the metadata object in the response.
OCT 25 2023
  • Revamp to guillotine and efficiency algorithms.
  • Guillotine now supports a second phase of optimization to allow left over parts to be squeezed into offcut positions.
  • More information now contained in 'metadata' in the API response.
  • Version 2 of the WooCommerce plugin released - greatly improved setup experience and more pricing models.
JUL 2 2023
  • Added new options to the saw object to allow further customisation of the cutting process
JUN 13 2023
  • Unusable parts are now returned in the results with an explanation of why they couldn't be used
APR 1 2023

Version 2 released

  • New schema - please read the updated documentation
  • Added the concept of a saw - no need to add blade width & cut preference to each stock individually
  • For object based data (for example trim) if no values are set, the object will be replaced with null
  • Smaller data payload for faster results
  • 20% quicker response times
  • Version 1 will continue to be supported
FEB 1 2023
  • Added linear offcuts to api result
JAN 20 2023
  • Added labels endpoint - create printable labels to keep track of parts and offcuts
JAN 12 2023
  • Added grain direction to stock and offcuts
  • Added name & thickness to offcuts
NOV 1 2022
  • Metered billing now available - no need to worry about setting limits for your plan.
AUG 3 2022
  • Updated algorithm for both efficiency & guillotine calculations.
JUL 13 2022
  • Launched checkout widget to easily integrate into your e-commerce store.
JUL 5 2022
  • Improved status responses:
  • 403 for reaching the monthly call limit
  • 429 for exceeding the allowed calls per minute
OCT 4 2022
  • Added the 'bandingType' attribute to parts
  • In the results, the length of each banding type is returned in the 'metadata' object
JUL 3 2022
  • Major infrastructure upgrade for better reliability, more capacity and more processing power.
  • The original three-tiered plans are now retired. These are treated as legacy plans which will continue to work. Migration to the new monthly plan is recommended.
  • All plans are now based on your requirements and billed monthly. This allows much more fine-grained control over every option.
  • New configurable values include the number of calls per minute.
  • The 'autoAdd' option for stock can now be used for multiple stock items. Previously this was only allowed with a single stock item.