Quick start¶
From zero to a cutting layout in 5 minutes, no sales call required.
1. Make your first call¶
The anonymous playground accepts 5 solves per day per IP without any key. If you need a slightly larger evaluation window, request a manual evaluation key for 25 solves/day and 250/month.
bash
curl -X POST https://api.cutweaver.io/v1/solve \
-H "Content-Type: application/json" \
-d '{
"sheets": [{"width": 3210, "height": 2250}],
"pieces": [
{"width": 800, "height": 600, "quantity": 4},
{"width": 1200, "height": 900, "quantity": 2}
],
"params": {"kerf": 4},
"strategy": "greedy"
}'
js
const res = await fetch("https://api.cutweaver.io/v1/solve", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
sheets: [{ width: 3210, height: 2250 }],
pieces: [
{ width: 800, height: 600, quantity: 4 },
{ width: 1200, height: 900, quantity: 2 },
],
params: { kerf: 4 },
strategy: "greedy",
}),
});
const data = await res.json();
console.log(data);
```python import requests
res = requests.post( "https://api.cutweaver.io/v1/solve", json={ "sheets": [{"width": 3210, "height": 2250}], "pieces": [ {"width": 800, "height": 600, "quantity": 4}, {"width": 1200, "height": 900, "quantity": 2}, ], "params": {"kerf": 4}, "strategy": "greedy", }, timeout=10, ) print(res.json()) ```
2. Read the response¶
json
{
"ok": true,
"contractVersion": "1.0.0",
"result": {
"sheets": [
{
"index": 0,
"width": 3210,
"height": 2250,
"utilization": 0.81,
"placements": [
{ "pieceId": 0, "x": 0, "y": 0, "width": 1200, "height": 900, "rotated": false },
{ "pieceId": 1, "x": 1204, "y": 0, "width": 1200, "height": 900, "rotated": false },
{ "pieceId": 2, "x": 0, "y": 904, "width": 800, "height": 600, "rotated": false }
]
}
],
"metrics": {
"totalUtilization": 0.81,
"wasteRatio": 0.19,
"elapsedMs": 47
}
}
}
Coordinates are in millimetres, origin is bottom-left.
3. Get more out of it¶
| Want… | Do this |
|---|---|
| Better utilization on waste-sensitive jobs | "strategy": "alns" on Pro or self-hosted — adds 2–5 s, often gains 5–15 % |
| More evaluation volume | Request a manual evaluation key (25/day, 250/month) → see Authentication |
| Recurring business usage | Move to Starter / Pro / Scale via Pricing |
| Run it on your own infra | Self-hosted Docker |
| Visualize the result | The response includes result.sheets[].svg if you set includeSvg: true |
4. Next steps¶
- Pick an engine for your use case → Choosing an engine
- Understand the JSON contract end to end → JSON contract
- Handle errors gracefully → Errors