HomeDocumentationIntegration API
Docs

Integration API

Authenticate, submit DXF/STEP for calculation, run nesting and export, programmatically. Coin-billed, sync and async.

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).

Base URL
The API host is https://api.cutl.online. Examples below use $BASE for it.
Getting access
API access is enabled per account. Contact info@cutl.online with a short description of your use case and the team will switch it on.

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 401 at 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.
Keep tokens server-side
A token is a long-lived secret with billing power. Store it in your backend or a secrets manager, never in browser or mobile client code.

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

Design preview, not yet available
Everything below describes a planned API surface. These endpoints are not live yet and the details may change before release, so do not build against them. The section exists so you can see where the API is heading; to influence the design or ask about early access, contact info@cutl.online.

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 202 with 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+json errors, 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.

Ready to try it on your own parts?

Create an account and get 10,000 coins free, about 100 calculations.

Get started free