Skip to content
Docs
Sign in

Cutting time without retaining files

Send a PDF or cut file, get its cutting-time breakdown, and retain no uploaded file in AutomatePrint.

For integrators

Send a cut file in one request and receive its cutting times, using your team's cutter and line-type profile. AutomatePrint processes the upload in memory. It does not save the file, its extracted geometry or the result in Files, a library, a cache, a background job or request-body telemetry. No delete call or administrator key is needed. The response is marked Cache-Control: no-store; save the returned JSON in your own system if you need it later.

Send a file#

POST /a/{team_slug}/production/api/v1/cut-sequences/analyse-upload/

Analyse a cut file in memory without retaining the upload or result.

production_cut_sequences_analyse_upload · View in API reference

Authenticate with an API key owned by a member of the team, or a signed-in session. This call is free on every plan. Send multipart/form-data to /a/<team_slug>/production/api/v1/cut-sequences/analyse-upload/:

curl -sS -H "Authorization: Api-Key $API_KEY" \
  -F "file=@carton.pdf" -F "retention=none" -F "machine=m:42" \
  'https://app.example.com/a/acme/production/api/v1/cut-sequences/analyse-upload/'
Field Meaning
file Exactly one PDF, CF2 / CFF2, DXF or ZCC cut file.
retention none, the default and only value. No uploaded file is retained.
machine Omit for the team's default cutter; m:42 selects a team cutter and p:<preset key> a published model.
page The PDF page, starting at 0; defaults to the first page.
mapping Optional JSON object of spot, layer or line-type overrides; see below.

The other analysis options, including home, original, double_cuts, tolerance_mm, tool_change_s, units and keep_shapes, work the same way. Do not send file_version: this call takes bytes directly. To analyse an existing saved file, use analyse/ instead.

There is no fixed file byte-size limit on this call. Large files require enough processing memory and must complete within the request timeout. Drawing-complexity limits still apply: a file with many intersecting cutting lines can be refused with too_complex. The retained-file upload and analysis calls keep their usual 20 MB limit.

Choose the cutting lines#

The default profile for the team's file format supplies the mappings. Common names such as CutContour and ThruCut are also recognised. Artwork colour alone does not identify a cutting operation.

For one request, pass mapping as a JSON string in the multipart form:

{"pdf:ink:ThruCut": "cut", "pdf:ink:PMS 185 C": "ignore"}

Keys are pdf:ink:<spot name> or pdf:layer:<layer name> for PDFs. Values include cut, kiss_cut, crease, score, perforation, partial_cut, bleed and ignore. Passed entries override the default profile; omitted entries still use it. The response's sources and skipped lists let you check what was included. If no cutting lines are found, 400 no_cut_lines returns the sources to map; resend the file with your mapping.

For persistent team rules, create or update a line-type profile with format: "pdf", is_default: true and its mapping. In Equipment → Tools & dies → Import die file, Remember for PDF files also saves those choices with the import. Processing a zero-retention upload never changes the team profile.

Read the result#

A successful call returns the same original and optimized sequences as saved-file analysis, plus retention: "none". file.version and file.number are null: there is no saved file to retrieve, export or delete.

Use original.totals.total_s or optimized.totals.total_s for seconds per sheet. Their breakdowns include cutting_s, corner_lift_s, plunge_lift_s, travel_s and tool_change_s. These are estimates from the selected cutter's settings. Setup, registration and sheet handling are separate values on machine; see the job calculation if you need a full production total.

Errors such as unreadable files, invalid mappings and authentication failures do not save the upload. Access logs can still record ordinary request metadata such as the route, status and duration. Your caller controls any copies it keeps of the input or returned JSON.

Last updated Nov. 2, 2026