Wepnij nesting we własny system
Ten sam silnik, co w aplikacji. API jest w subskrypcji rocznej. Autoryzacja kluczem, eksport zawsze przez kolejkę — żaden request nie blokuje się na generowaniu PDF-a.
Autoryzacja
Bearercurl https://rolcut.com/api/v1/me \
-H "Authorization: Bearer nv2_…"Klucz generujesz w panelu, w zakładce Klucze API. Sekret pokazujemy raz.
Pełny obieg
4 kroki1. POST /api/v1/uploads → storageRef
2. POST /api/v1/preview → pages, fits
3. POST /api/v1/jobs → jobId
4. GET /api/v1/jobs/:id → print + cutKrok 2 możesz pominąć — job policzy układ sam.
Wszystko, co jest w v1
/api/v1/meOrganizacja, plan, presety, zużycie w miesiącu
/api/v1/uploadsMultipart z polem files — JPEG/PNG/TIFF/WebP/SVG/DXF; opcjonalnie cutLayers/markLayers; zwraca storageRef, contour i markLayers
/api/v1/framesRama na wymiar — widthCm, heightCm, profileMm; zwraca ten sam kształt co upload
/api/v1/previewUkład bez PDF: arkusze, rachunek za media, odrzucone z sugestią wymiaru
/api/v1/jobsZlecenie eksportu — jobName, recipeId, items z qty, opcjonalnie placement
/api/v1/jobsHistoria zleceń organizacji
/api/v1/jobs/:idStatus i referencje do wyników
/api/v1/files?ref=…Pobranie print.pdf, cut.pdf albo cut.dxf
Nakład w jednym item
qty{
"items": [
{ "id": "a1", "storageRef": "s3://…", "widthCm": 60, "heightCm": 80, "qty": 24 }
]
}Plik pobieramy i osadzamy raz, niezależnie od nakładu. Gdy praca nie mieści się na arkuszu, preview zwraca w polu rejected największy wymiar, który jeszcze wejdzie.
Receptura i rachunek za media
recipeId{
"jobName": "Kowalski / witryna",
"recipeId": "…",
"wrapMm": 25,
"bandMm": 15,
"pieceBarcode": true,
"items": [
{ "id": "a1", "storageRef": "s3://…", "widthCm": 70, "heightCm": 100, "qty": 4, "barcodeText": "250800123" }
]
}
// odpowiedź preview
"usage": {
"mediaAreaM2": 8.74, "itemAreaM2": 7.2, "wastePct": 17.6,
"linearM": 5.5, "costTotal": 34.96, "costPerPiece": 2.91
}Receptura podstawia arkusz, pack i ploter oraz niesie koszt metra, spad, wrap, pas i kod sztuki. Te same pola (wrapMm, bandMm, pieceBarcode, barcodeWidthMm, barcodeHeightMm, barcodePadMm) możesz podać w body — nadpiszą recepturę bez ruszania ustawień hali. Na sztuce barcodeText; bez tekstu kodu nie ma.
Nesting po kształcie
trueShape// odpowiedź uploads
"contour": [ [ [0.5, 0.02], [0.61, 0.35], [0.97, 0.36], … ] ]
{
"trueShape": true,
"items": [
{ "id": "a1", "storageRef": "s3://…", "widthCm": 40, "heightCm": 40,
"qty": 24, "contour": [ … ] }
]
}Upload zwraca sylwetkę (alfa, SVG albo DXF) jako listę pierścieni znormalizowanych do prostokąta pliku (0..1, y w dół). Oddaj ją w contour przy preview i jobs, a prace ułożą się zazębione i pójdą na ploter z konturem cięcia zamiast prostokąta. Pliki bez przezroczystości zostają prostokątami. Bez tego pola decyduje preset packa, a obrót rozszerza się wtedy do 0 | 90 | 180 | 270.
Limity
Liczba równoległych jobów i plików w zleceniu zależy od planu. Przekroczenie zwraca 429 albo 402 z czytelnym komunikatem.
Izolacja
Każdy plik ląduje pod prefiksem orgs/{orgId}/. Klucz z innej organizacji nie zobaczy Twoich danych.
Konfiguracja
W body podajesz sheetId, packId i plotterId. Bez nich lecą presety domyślne hali.
Potrzebujesz klucza?
Konto zakładasz w minutę, klucz jest od razu w panelu.