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#
/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.