Публичный 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 у заготовки означает неограниченный запас. optimizationModefast, 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 на публичной странице — любой посетитель сможет увидеть ключ в сетевых запросах и использовать его от вашего имени.

Мы используем файлы cookie для авторизации и работы сервиса. Продолжая пользоваться сайтом, вы соглашаетесь с их использованием в соответствии с Политика конфиденциальности.