The CUTL Integration API lets you price parts programmatically: submit a DXF or STEP file from your own software and read back the geometry and a full price, computed by the same engine the app uses. The live surface is deliberately small today, one authenticated calculation endpoint pair, with a broader project API in design (see the preview section at the end of this page).
https://api.cutl.online. Examples below use $BASE for it.Authentication
Every request carries your integration token in a header:
X-Auth-Token: <token>
- Each account holds one integration token. Generate it in the app on the Integration tab of your account settings (the same action is exposed as
PUT /v2/security/user/key). - Generating a new token immediately invalidates the previous one. Every integration still using the old token starts failing with
401at that moment, so rotate deliberately and update all consumers straight after regenerating. - The token grants full account access and does not expire on its own.
Coin billing
There is no free sandbox: the API runs against production, and every calculation debits real coins from your team balance at the same rates as the app (about 100 coins per part calculation). When the balance is too low, the request is rejected up front rather than run and charged. Plan integration tests sparingly, watch your balance in the app's billing area, and see Coins & billing for rates and top-ups.
Single-file DXF / STEP calculation
This is the live endpoint pair. Submit one drawing as base64, then poll the result by id. It accepts DXF and STEP only (PDF is rejected here; for a PDF drawing, upload it in the app, which extracts the cut contours interactively). Pricing is returned only when both materialId and cuttingModeId are supplied; geometry is always returned.
# Submit, returns 202
DXF_B64=$(base64 -i part.dxf | tr -d '\n')
curl -sS -X POST "$BASE/v2/integration/calculations" \
-H "X-Auth-Token: $TOKEN" -H "Content-Type: application/json" \
-d "{\"fileName\":\"part.dxf\",\"fileBase64\":\"$DXF_B64\",\"materialId\":\"7e1...\",\"cuttingModeId\":\"4a8...\",\"count\":1}"
# → 202 { "id": "<calcId>", "status": "PENDING", "created": "..." }
# Poll, returns 200
curl -sS "$BASE/v2/integration/calculations/<calcId>" -H "X-Auth-Token: $TOKEN"
# → { "id": "...", "status": "PENDING|COMPLETED|FAILED",
# "result": { "fileType", "sizeXMm", "sizeYMm", "areaSqM", "cutLengthMm", "contourCount",
# "weightKg", "volumeM3", "svgUrl", "thumbnailUrl", "contours": [],
# "materialPrice", "cuttingPrice", "incuttingPrice", "markupPercent",
# "singlePrice", "totalPrice", "clientSinglePrice", "clientTotalPrice" },
# "failureReason": "..." }
# incuttingPrice is the piercing cost; fileType reports DXF or STEP
Once status is COMPLETED the geometry fields are populated; the pricing and weight fields appear only when a material and cutting mode were supplied. A failed parse reports FAILED with a failureReason; a missing or stale token returns 401.
The fileBase64 field accepts either a DXF or a STEP payload: CUTL detects the format from the file content.
Preview: the full project API
The planned project API mirrors the project screens in the app:
- Projects, parts, quick calculations and nesting as REST resources under a versioned base path, with drawings uploaded as base64 (DXF or STEP) and results carrying the same figures the in-app panels show (pre-markup and client prices, cut times, geometry, coefficients).
- Dictionary CRUD for materials, equipment, cutting modes and customers, so integrations can manage reference data instead of mirroring it.
- Async everywhere compute runs: submitting a part or a nesting job returns
202with a job id, and results arrive by webhook (HMAC-signed, at-least-once delivery with retries) or by polling. - Conventions on the roadmap: RFC 7807
problem+jsonerrors, idempotency keys on mutating calls, pagination on list endpoints, per-token rate limits, and an explicit major-version deprecation policy. - Multi-token management (listing, revocation, per-token audit) replacing today's single regenerating token.
Next, see Coins & billing to understand what each calculation costs and how to keep your balance topped up.