Публичный API v1
Программный доступ к расчёту раскроя — тот же алгоритм, что использует калькулятор на сайте, доступный из вашего собственного бэкенда или скрипта. Доступен на PRO-тарифе, ключи выпускаются в личном кабинете.
Аутентификация
Каждый запрос должен содержать заголовок Authorization с вашим ключом. Ключ выдаётся один раз при создании — сохраните его сразу, повторно посмотреть его нельзя, только отозвать и выпустить новый.
Authorization: Bearer lc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxКлюч доступен, только пока активна подписка PRO — если она истекла, запросы с ключом начнут получать 402 pro_required до продления, без необходимости перевыпускать ключ.
Эндпоинт
POST /api/v1/calcТело запроса
Формат идентичен внутреннему калькулятору: список заготовок, список отрезков и настройки расчёта.
{
"stocks": [
{ "length": 6000, "quantity": null, "name": "Труба 6м", "priority": 0 }
],
"cuts": [
{ "length": 1740, "quantity": 3, "name": "Деталь A" },
{ "length": 950, "quantity": 5, "name": "Деталь Б" }
],
"settings": {
"bladeThickness": 3,
"trimEnds": 5,
"optimizationMode": "balanced",
"usefulLeftover": {
"enabled": true,
"minUsefulLength": 300,
"maxWasteLength": 50,
"strict": true
}
}
}quantity: null у заготовки означает неограниченный запас. optimizationMode — fast, balanced или max (все три режима без ограничений для держателей ключа). usefulLeftover необязателен.
Ответ
{
"result": {
"usages": [ /* схемы раскроя по каждой заготовке */ ],
"unusedStocks": [],
"unfulfilledCuts": [],
"stats": { "totalUsedLength": 5850, "totalWasteLength": 150, "utilizationPercent": 97.5, "stocksUsedCount": 1 }
},
"meta": { "isPro": true, "watermark": false, "optimizationModeUsed": "balanced" }
}Пример запроса
curl -X POST https://linearcut.ru/api/v1/calc \
-H "Authorization: Bearer lc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"stocks":[{"length":6000,"quantity":null,"name":"Труба","priority":0}],"cuts":[{"length":1740,"quantity":3,"name":"Деталь"}],"settings":{"bladeThickness":3,"trimEnds":0,"optimizationMode":"fast"}}'Лимиты и ошибки
- 60 запросов в минуту на один ключ.
401 unauthorized— ключ отсутствует, неверен или отозван.402 pro_required— ключ существует, но подписка PRO неактивна.400 validation_error— неверный формат входных данных.429 rate_limited— превышен лимит запросов.
Безопасность
Ключ — секрет уровня пароля: используйте его только в серверном коде. Не вызывайте API напрямую из браузерного JavaScript на публичной странице — любой посетитель сможет увидеть ключ в сетевых запросах и использовать его от вашего имени.