Принтер — це одиниця обладнання у фліті студії: назва, технологія друку, модель, об'єм друку, статус та нотатки з обслуговування. На відміну від решти каталогу (матеріали, якості друку, послуги постобробки), фліт принтерів доступний для запису — можна створювати, редагувати та видаляти принтери напряму через API.
Об'єкт Printer#
| Поле | Тип | Опис |
|---|---|---|
id | integer | Унікальний ідентифікатор принтера |
name | string | Назва принтера (наприклад, «Bambu Lab X1 Carbon #2») |
studioId | integer | Ідентифікатор студії-власника |
technology | Technology | Технологія друку принтера |
model | string | null | Модель обладнання |
buildVolume | string | null | Об'єм друку, наприклад "256x256x256mm" |
status | string | Статус — див. Статуси принтера |
maintenanceNote | string | null | Довільна нотатка з обслуговування |
nextMaintenanceAt | string | null | Дата наступного планового обслуговування, YYYY-MM-DD |
assignedItems | array | Позиції замовлень, що зараз друкуються на цьому принтері — див. Об'єкт PrinterQueueItem |
Статуси принтера#
| Статус | Значення |
|---|---|
active | У роботі |
maintenance | На обслуговуванні |
offline | Вимкнено / недоступний |
Об'єкт PrinterQueueItem#
| Поле | Тип | Опис |
|---|---|---|
orderItemId | integer | Ідентифікатор позиції замовлення |
orderId | integer | Ідентифікатор замовлення |
orderStatus | string | Статус замовлення |
customerName | string | Ім'я та прізвище клієнта |
itemLabel | string | Назва товару або оригінальна назва файлу моделі |
quantity | integer | Кількість копій у позиції |
downloadUrl | string | null | Тимчасове підписане посилання на файл моделі |
materialColor | string | null | Колір матеріалу позиції |
Список технологій друку#
Повертає всі технології друку, підтримувані платформою. Значення id звідси використовується як technologyId при створенні та редагуванні принтера.
GET /technologies
Приклад запиту
curl https://api.placraftic.com/v1/technologies \
-H "Authorization: Bearer pk_live_..."
Приклад відповіді
{
"data": [
{ "id": 1, "name": "FDM", "slug": "fdm", "materialCount": 0 },
{ "id": 2, "name": "SLA", "slug": "sla", "materialCount": 0 },
{ "id": 3, "name": "DLP", "slug": "dlp", "materialCount": 0 },
{ "id": 4, "name": "MSLA", "slug": "msla", "materialCount": 0 },
{ "id": 5, "name": "SLS", "slug": "sls", "materialCount": 0 }
]
}
materialCount тут завжди 0 — це поле має сенс лише в контексті студії (кількість матеріалів студії цієї технології) і для загального довідника технологій не рахується.
Список принтерів#
Повертає всі принтери студії, відсортовані за id у спадному порядку.
GET /printers
Приклад запиту
curl https://api.placraftic.com/v1/printers \
-H "Authorization: Bearer pk_live_..."
Приклад відповіді
{
"data": [
{
"id": 2,
"name": "Voron 2.4 350",
"studioId": 1,
"technology": { "id": 1, "name": "FDM", "slug": "fdm", "materialCount": 0 },
"model": "Voron 2.4r2 Custom",
"buildVolume": "350x350x350 mm",
"status": "active",
"maintenanceNote": "Замінено сопло на 0.6 CHT",
"nextMaintenanceAt": "2026-11-15",
"assignedItems": []
}
]
}
Отримати принтер#
Повертає один принтер за ідентифікатором, включно з поточною чергою друку.
GET /printers/{id}
Параметри шляху
| Параметр | Тип | Опис |
|---|---|---|
id | integer | Ідентифікатор принтера |
Приклад запиту
curl https://api.placraftic.com/v1/printers/2 \
-H "Authorization: Bearer pk_live_..."
Помилки
| Код | Причина |
|---|---|
404 | Принтер з таким id не існує або належить іншій студії |
Створити принтер#
POST /printers
Тіло запиту (JSON)
| Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
name | string | так | Назва принтера |
technologyId | integer | так | Ідентифікатор технології зі списку технологій |
status | string | ні | active, maintenance або offline, за замовчуванням active |
model | string | ні | Модель обладнання |
buildVolume | string | ні | Об'єм друку, наприклад "256x256x256mm" |
maintenanceNote | string | ні | Довільна нотатка з обслуговування |
nextMaintenanceAt | string | ні | Дата наступного обслуговування, YYYY-MM-DD |
Приклад запиту
curl https://api.placraftic.com/v1/printers \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-d '{"name":"Bambu Lab X1 Carbon #2","technologyId":1,"model":"Bambu Lab X1 Carbon","buildVolume":"256x256x256mm"}'
Приклад відповіді
{
"data": {
"id": 3,
"name": "Bambu Lab X1 Carbon #2",
"studioId": 1,
"technology": { "id": 1, "name": "FDM", "slug": "fdm", "materialCount": 0 },
"model": "Bambu Lab X1 Carbon",
"buildVolume": "256x256x256mm",
"status": "active",
"maintenanceNote": null,
"nextMaintenanceAt": null,
"assignedItems": []
}
}
Помилки
| Код | Причина |
|---|---|
400 | Відсутнє обов'язкове поле name або technologyId, або невалідне значення status |
404 | Технологія з таким technologyId не існує |
Оновити принтер#
Часткове оновлення — змінюються лише передані поля, решта залишається без змін.
PATCH /printers/{id}
Параметри шляху
| Параметр | Тип | Опис |
|---|---|---|
id | integer | Ідентифікатор принтера |
Тіло запиту (JSON)
Ті самі поля, що й при створенні (див. вище), усі опціональні — передавайте лише те, що потрібно змінити.
Приклад запиту
curl -X PATCH https://api.placraftic.com/v1/printers/3 \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-d '{"status":"maintenance","maintenanceNote":"Заміна сопла"}'
Помилки
| Код | Причина |
|---|---|
400 | Невалідне значення status |
404 | Принтер з таким id не існує або належить іншій студії; або технологія з переданим technologyId не існує |
Видалити принтер#
DELETE /printers/{id}
Параметри шляху
| Параметр | Тип | Опис |
|---|---|---|
id | integer | Ідентифікатор принтера |
Приклад запиту
curl -X DELETE https://api.placraftic.com/v1/printers/3 \
-H "Authorization: Bearer pk_live_..."
Успішна відповідь — 204 No Content без тіла.
Помилки
| Код | Причина |
|---|---|
404 | Принтер з таким id не існує або належить іншій студії |