Эндпоинты заказов
/print-jobsСписок заказов
Постраничный список заказов аккаунта, отсортированный по дате создания.
{
"items": [
{
"id": "b6b6c8b0-...",
"model_name": "Кронштейн",
"quantity_pieces": 4,
"material_name": "PETG",
"color_hex": "#000000",
"material_grams": 86.0,
"print_hours": 3.5,
"due_date": "2026-09-01",
"order_notes": "",
"workflow_status": "confirmed",
"printer_id": null,
"printer_name": null
}
],
"total": 1,
"page": 1,
"per_page": 50
}В реальном ответе полей больше (себестоимость, скидки, клиент и т.п.) — здесь показаны только те, что нужны для интеграции с HA. Полный набор — как в веб-интерфейсе заказа.
/print-jobs/{id}Один заказ
Та же структура, что и элемент списка выше, для конкретного id.
GET /print-jobs/b6b6c8b0-... → 200/print-jobs/{id}Обновить статус (или другие поля)
Присылайте только те поля, которые меняете — остальные останутся как есть.
PUT /print-jobs/b6b6c8b0-...
Content-Type: application/json
{ "workflow_status": "assigned" }Значение workflow_status, которого нет в таблице ниже (опечатка, устаревшее имя), молча откатит заказ в статус «Согласование» — сервер не вернёт ошибку. Сверяйтесь со списком статусов при отправке.
Статусы заказа
| Значение | Название | Когда выставлять |
|---|---|---|
| negotiation | Görüşme | Заказ создан, условия ещё обсуждаются |
| confirmed | Onaylandı | Клиент подтвердил, готов к печати |
| assigned | Yazıcı atandı | HA закрепил конкретный принтер/катушку за заказом |
| printing | Baskıda | Печать идёт на принтере |
| print_error | Baskı hatası | Klipper/Moonraker сообщил об ошибке печати |
| delivery | Teslimatta | Печать готова, едет к клиенту |
| done | Tamamlandı | Заказ выполнен |
| cancelled | İptal edildi | Заказ отменён |
| closed | Kapatıldı | Архивный статус, скрыт из основного списка |
Эндпоинты принтеров
Только чтение — список принтеров фермы и данные одного принтера. Полезно, чтобы сопоставить printer_id заказа с реальным устройством или показать его имя/технологию во внешней системе.
/printersСписок принтеров
Все принтеры аккаунта, включая объединённые в группы (фермы).
{
"items": [
{
"id": "3f2a9c10-...",
"name": "Bambu Lab P1S",
"internal_name": "Ферма 1 / принтер 3",
"model": "P1S",
"technology": "fdm",
"group_id": "a1b2c3d4-...",
"is_favorite": false,
"sort_order": 2
}
],
"total": 1,
"page": 1,
"per_page": 50
}В реальном ответе есть ещё поля (наработка часов, стоимость, служебные привязки к Bambu/Anycubic Cloud, токен агента мониторинга) — они не нужны для внешней автоматизации и здесь не показаны.
/printers/{id}Один принтер
Та же структура, что и элемент списка выше, для конкретного id.
Эндпоинты филаментов
Чтение каталога материалов склада и списание веса катушки по мере расхода — этого достаточно, чтобы завести живой учёт из Klipper/Moonraker, Home Assistant или n8n, по той же идее, что и эндпоинт веса катушки в Spoolman.
/filamentsСписок филаментов
Все позиции склада материалов аккаунта.
{
"items": [
{
"id": "7c4d1e20-...",
"name": "PETG Black",
"brand": "eSUN",
"type_name": "PETG",
"colors": ["#000000"],
"is_gradient": false,
"spool_weight_grams": 1000.0,
"used_grams": 340.0,
"spool_count": 2,
"low_stock_threshold_grams": 150.0
}
],
"total": 1,
"page": 1,
"per_page": 50
}Цена катушки (spool_price_rub) в ответе тоже есть, но не нужна для автоматизации фермы и здесь не показана.
/filaments/{id}Один филамент
Та же структура, что и элемент списка выше, для конкретного id.
/filaments/{id}/consumeСписать вес катушки
Списывает граммы с катушки (FIFO по партиям) и возвращает обновлённый филамент. Использует тот же id филамента, что и поле выше.