HomeDocumentatieIntegratie-API
Docs

Integratie-API

Authenticeer, calculeer DXF-, STEP- of PDF-tekeningen en lees projecten, nestplaten en uw coinsaldo uit vanuit uw eigen software. Afgerekend in coins.

Met de CUTL Integratie-API werkt uw eigen software rechtstreeks met CUTL: stuur een DXF-, STEP- of PDF-tekening in en lees de geometrie en een volledige prijs terug, lees uw projecten met hun geoffreerde prijzen, haal het nestresultaat van een project op met plaatafbeeldingen en DXF-bestanden voor de machine, en controleer uw coinsaldo. Prijzen komen uit dezelfde engine die de app gebruikt. Projecten schrijven, webhooks en meerdere tokens zijn nog in ontwerp (zie de vooruitblik aan het eind van deze pagina).

Basis-URL
De API-host is https://api.cutl.online. In de voorbeelden hieronder wordt daarvoor $BASE gebruikt.
Toegang krijgen
API-toegang wordt per account geactiveerd. Neem contact op via info@cutl.online met een korte beschrijving van uw use case, dan zet het team de toegang voor u aan.

Authenticatie

Elk verzoek bevat uw integratietoken in een header:

X-Auth-Token: <token>
  • Elk account heeft één integratietoken. Genereer het in de app op het tabblad Integratie van uw accountinstellingen (dezelfde actie is beschikbaar als PUT /v2/security/user/key).
  • Een nieuw token genereren maakt het vorige onmiddellijk ongeldig. Elke integratie die het oude token nog gebruikt, loopt vanaf dat moment vast met 401, dus wissel bewust en werk alle afnemers direct na het opnieuw genereren bij.
  • Het token geeft volledige toegang tot het account en verloopt niet van zichzelf.
Houd tokens aan de serverzijde
Een token is een langlevend geheim waarmee kosten gemaakt kunnen worden. Bewaar het in uw backend of in een secrets manager, nooit in browser- of mobiele clientcode.

Afrekenen met coins

Er is geen gratis sandbox: de API werkt tegen productie en elke berekening haalt echte coins van het saldo van uw team, tegen dezelfde tarieven als in de app (ongeveer 100 coins per onderdeelberekening). Is het saldo te laag, dan wordt het verzoek vooraf geweigerd in plaats van uitgevoerd en in rekening gebracht. Plan integratietests met beleid, houd uw saldo in de gaten in het facturatiegedeelte van de app of met GET /v2/integration/balance, en zie Coins & facturatie voor tarieven en bijvullen.

Wat live is

EndpointWat het doet
POST /v2/integration/calculationsEén DXF-, STEP- of PDF-tekening insturen voor berekening (geeft 202 terug)
GET /v2/integration/calculations/{id}Status en resultaat van een berekening opvragen
GET /v2/integration/balanceHet coinsaldo van het team lezen
GET /v2/integration/projectsProjecten oplijsten, gepagineerd, met hun prijzen
GET /v2/integration/projects/{id}Eén project lezen met zijn onderdelen, materiaaloverzicht en geneste platen
GET /v2/integration/projects/{projectId}/nestingHet nestresultaat van een project ophalen: plaatafbeeldingen, plaatsing van onderdelen en DXF per plaat
POST /v2/integration/data-assets/signed-urlEen opgeslagen bestands-URL uit deze API omzetten in een nieuwe, kortlevende ondertekende URL

Antwoorden komen standaard als JSON; stuur Accept: application/xml mee als uw systeem de voorkeur geeft aan XML.

Oude XML-endpoints zijn verouderd
De oude /integration/projects-endpoints (alleen XML) zijn verouderd, met als einddatum 30 september 2026. De /v2/integration/...-endpoints geven dezelfde gegevens en meer terug, dus overstappen is een kwestie van het pad aanpassen.

API-referentie

Alle beschikbare endpoints met hun parameters en het volledige antwoordschema. Klik op Authorize en plak uw integratietoken om de alleen-lezen verzoeken (GET) op uw eigen account uit te proberen. Een berekening indienen laat u aan uw eigen code over, omdat elke berekening coins kost.

De interactieve API-referentie wordt geladen... Open de OpenAPI-specificatie (JSON)

De onderstaande secties leggen uit hoe de endpoints zich in de praktijk gedragen.

Eén tekening berekenen

Stuur één tekening als base64 en vraag het resultaat daarna op via het id. CUTL bepaalt het bestandstype aan de hand van de inhoud, niet van de bestandsnaam. DXF- en STEP-bestanden mogen maximaal 2 MB zijn, PDF-tekeningen maximaal 20 MB. Prijzen worden alleen teruggegeven wanneer zowel materialId als cuttingModeId zijn meegegeven; geometrie wordt altijd teruggegeven. Het optionele veld units (bijvoorbeeld MILLIMETERS of INCHES) vertelt CUTL in welke eenheid de tekening werkelijk is, wat een tekening corrigeert waarvan de eenheid verkeerd is herkend.

# Versturen, geeft 202 terug
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...\",\"units\":\"MILLIMETERS\"}"

# Opvragen, geeft 200 terug
curl -sS "$BASE/v2/integration/calculations/<calcId>" -H "X-Auth-Token: $TOKEN"

Zodra status op COMPLETED staat, zijn de geometrievelden gevuld; de prijs- en gewichtsvelden verschijnen alleen wanneer een materiaal en een snijmodus zijn meegegeven. validationResult bevat de controles en waarschuwingen van de parser (bijvoorbeeld overlappende of niet-gesloten contouren). Een mislukte verwerking meldt FAILED met een failureReason en een errorCode zoals ERROR_READ_DXF, STEP_ASSEMBLY of INSUFFICIENT_BALANCE; een ontbrekend of verouderd token geeft 401.

PDF-tekeningen

Een PDF wordt niet in één keer geprijsd. CUTL haalt de snijcontouren eruit als kandidaat-onderdelen, en de voltooide opvraging geeft die terug in pdfCandidates. Elke kandidaat heeft een dxfUrl (een DXF met de snijcontour), de page waar hij vandaan komt, een waarde confidence en de herkende scale, waarbij needsScaleConfirm is gezet wanneer de werkelijke maat niet is bevestigd. Meerdere kandidaten kunnen verschillende aanzichten van hetzelfde fysieke onderdeel zijn, dus controleer de kandidaten met een lage betrouwbaarheid. Om een kandidaat te prijzen downloadt u zijn DXF en stuurt u die in als nieuwe berekening met uw materiaal, snijmodus en eenheden.

Een PDF vereist een saldo van minimaal 500 coins
Elke geëxtraheerde kandidaat wordt apart afgerekend, dus een PDF wordt alleen geaccepteerd als het saldo minimaal 500 coins bevat. Zie Coins & facturatie.

Uw saldo controleren

curl -sS "$BASE/v2/integration/balance" -H "X-Auth-Token: $TOKEN"

balance is het besteedbare totaal, bonuscoins inbegrepen, en is het getal dat CUTL controleert voordat het werk accepteert. Het kan onder nul zakken, omdat sommige bewerkingen na een controle vooraf per item afrekenen. bonusBalance is het deel van het totaal dat uit bonuscoins bestaat, die als eerste worden besteed. Zakt het saldo door een afschrijving onder lowBalanceThreshold, dan krijgen de beheerders van het team één e-mail; er stopt niets met werken op dat niveau.

Het saldo lezen voordat u een batch instuurt, is de eenvoudige manier om te voorkomen dat werk wordt geweigerd wegens te weinig coins (402 met foutcode C00034).

Projecten lezen

# Projecten oplijsten, nieuwste eerst, standaard 10 per pagina
curl -sS "$BASE/v2/integration/projects?updatedFrom=2026-09-01&page=0&size=20" -H "X-Auth-Token: $TOKEN"

# Eén project volledig
curl -sS "$BASE/v2/integration/projects/<projectId>" -H "X-Auth-Token: $TOKEN"

De lijst accepteert optionele datumfilters (createdFrom, createdTo, updatedFrom, updatedTo) plus page en size. Zonder filters krijgt u de projecten van het team, de laatst bijgewerkte eerst. Een datumvenster mag hoogstens één maand beslaan; een langer venster wordt geweigerd met 400. Elke regel bevat het id, de name en de code van het project, de klant en de organisatie, en de prijzen: price en clientPrice (het totaal dat de klant geoffreerd krijgt, na opslag), met de btw-bedragen ernaast.

Een afzonderlijk project voegt de details achter de offerte toe:

  • projectParts: elk onderdeel met zijn count, materiaal, snijmodus, bewerkingen, afmetingen, snijlengte, snijtijd en prijzen (vóór opslag en voor de klant), plus een base64-miniatuur in image.
  • materialSummary: één regel per materiaal met het gesneden oppervlak en de totalen.
  • nestingSheets: één regel per fysieke geneste plaat, zoals in de offerte doorgerekend (materiaal, plaatformaat, gewicht, kosten en benutting).
  • Offertegegevens zoals currency, validUntil, paymentTerm en deliveryCost.

Het nestresultaat van een project ophalen

curl -sS "$BASE/v2/integration/projects/<projectId>/nesting?format=CYPCUT" -H "X-Auth-Token: $TOKEN"

Dit leest het nestresultaat achter de offerte van een project; er wordt geen nieuwe nesting uitgevoerd. Kies de DXF-variant met format: STANDARD_DXF (de standaard), CYPCUT of RDWORKS. De eerste aanroep start de DXF-export en het renderen van de afbeeldingen en antwoordt met PENDING; blijf opvragen tot de status READY is. PARTIAL betekent dat sommige materialen klaar zijn en andere mislukt, en FAILED betekent dat alle materialen zijn mislukt.

Er is één regel in nests per materiaal. Platen met een identieke indeling worden samengevoegd tot één regel met een count, dus twintig identieke platen komen terug als één regel met count 20. partId komt overeen met het id van het onderdeel uit het project-endpoint, zodat u de twee kunt koppelen.

Ondertekende URL's zijn kortlevend
svgUrl, pngUrl en dxfUrl zijn ondertekende links die ongeveer 15 minuten geldig zijn. Haal de bestanden direct op en sla de links nooit op. pngUrl kan later verschijnen dan de rest, of helemaal niet, dus val terug op svgUrl. Indelingen zijn beschikbaar als SVG, PNG en DXF; er is geen PDF.

Sommige antwoorden bevatten opgeslagen bestands-URL's. Om een nieuwe ondertekende link voor zo'n URL te krijgen, stuurt u die naar POST /v2/integration/data-assets/signed-url met als body {"url": "<stored url>"}. Het antwoord geeft de ondertekende url en het tijdstip expiresAt. U kunt alleen bestanden ondertekenen die bij uw eigen team horen.

Vooruitblik: schrijven, webhooks en meer

Ontwerpvooruitblik, nog niet beschikbaar
Alles in dit gedeelte beschrijft geplande uitbreidingen. Die zijn nog niet live en de details kunnen voor de release nog veranderen, bouw er dus niet op. Dit gedeelte staat er zodat u ziet welke richting de API opgaat; wilt u het ontwerp beïnvloeden of naar vroege toegang vragen, neem dan contact op via info@cutl.online.

Lezen is vandaag al live (zie hierboven). De geplande uitbreidingen gaan over schrijven en automatisering:

  • Projecten, onderdelen, snelle berekeningen en nestingtaken aanmaken en wijzigen via de API, met tekeningen die als base64 worden geüpload en resultaten met dezelfde cijfers die de panelen in de app tonen.
  • CRUD op woordenboeken voor materialen, apparatuur, snijmodi en klanten, zodat integraties referentiedata kunnen beheren in plaats van die te dupliceren.
  • Webhooks: resultaten die naar uw systeem worden gepusht (HMAC-ondertekend, minstens één keer afgeleverd, met herhaalpogingen) in plaats van opvragen.
  • Conventies op de roadmap: RFC 7807-fouten in problem+json, idempotency-keys op muterende calls, rate limits per token en een expliciet uitfaseringsbeleid voor hoofdversies.
  • Beheer van meerdere tokens (overzicht, intrekken, audit per token) ter vervanging van het huidige enkele token dat opnieuw wordt gegenereerd.

Bekijk vervolgens Coins & facturatie om te begrijpen wat elke berekening kost en hoe u uw saldo op peil houdt.

Klaar om het op uw eigen onderdelen te proberen?

Maak een account aan en ontvang 10.000 gratis coins, ongeveer 100 berekeningen.

Gratis beginnen