Parts API
Manage parts (blades, scissors, saws, etc.) registered to your account.
Required scope: parts:read for GET, parts:write for POST/PATCH
List Parts
GET /v1/parts
Query Parameters
| Param | Type | Description |
|-------|------|-------------|
| status | string | Filter by status: with_customer, in_service, etc. |
| part_type | string | Filter by type: blade, scissor, saw, etc. |
| limit | integer | Results per page (default 25, max 100) |
| after | string | Cursor for next page |
Response
{
"data": [
{
"id": "part_abc123",
"part_type": "blade",
"status": "with_customer",
"wear_level": 8,
"sharpening_count": 12,
"internal_label": "Line 3 Slicer",
"serial_number": "SN-20240101",
"created_at": "2025-01-15T10:00:00Z",
"last_serviced_at": "2026-02-01T14:30:00Z"
}
],
"meta": { "total": 42, "next_cursor": "cursor_xyz" }
}
Get a Part
GET /v1/parts/:id
Returns the full part record including service history.
Create a Part
POST /v1/parts
Body
{
"part_type": "blade",
"internal_label": "Line 4 Knife B",
"serial_number": "SN-20250301",
"manufacturer": "Victorinox",
"model": "40512"
}
Response 201 Created — the new part object.
Update a Part
PATCH /v1/parts/:id
Updatable fields: internal_label, serial_number, manufacturer, model.
Part Service History
GET /v1/parts/:id/history
Returns all service events for this part:
{
"data": [
{
"id": "history_001",
"service_type": "sharpening",
"wear_before": 5,
"wear_after": 9,
"technician_notes": "Light edge chipping, corrected.",
"completed_at": "2026-01-20T11:00:00Z"
}
]
}
Part Statuses (Reference)
with_customer → pickup_scheduled → in_transit_to_center
→ at_service_center → in_transit_back → delivered → with_customer
A part can also move to retired from any status.