Run workshop jobs
Scopes: work_orders:write, vehicles:read, vendors:read.
Open a work order
Section titled “Open a work order”curl https://api.get-fleet.com/v1/work_orders \ -H "Authorization: Bearer $FLEET_API_KEY" -H "Content-Type: application/json" \ -H "Idempotency-Key: job-88213-open" \ -d '{ "title": "60,000 km service", "vehicle_id": "6f1c2b0e-8a43-4c1e-9d55-0c2b7f3e9a10", "vendor_id": "1b7e…", "priority": "medium", "scheduled_start": "2026-11-03T07:00:00Z", "po_number": "PO-2026-0441" }'Fleet assigns the number ("number": "WO-000123"). Priorities are low, medium, high, urgent and
emergency.
Add parts and labour
Section titled “Add parts and labour”curl https://api.get-fleet.com/v1/work_orders/$WO_ID/line_items \ -H "Authorization: Bearer $FLEET_API_KEY" -H "Content-Type: application/json" \ -d '{"type": "labor", "description": "Service labour", "quantity": 2.5, "unit_price": "3500"}'
curl https://api.get-fleet.com/v1/work_orders/$WO_ID/line_items \ -H "Authorization: Bearer $FLEET_API_KEY" -H "Content-Type: application/json" \ -d '{"type": "part", "description": "Oil filter", "quantity": 1, "unit_price": "1850", "part_id": "c41d…"}'For labour, quantity is hours and unit_price the hourly rate. A part line with a part_id from your Fleet
inventory draws the part from stock, as it does in the app.
Progress and complete it
Section titled “Progress and complete it”curl -X PATCH https://api.get-fleet.com/v1/work_orders/$WO_ID \ -H "Authorization: Bearer $FLEET_API_KEY" -H "Content-Type: application/json" \ -d '{"status": "completed", "actual_end": "2026-11-03T15:10:00Z", "completion_odometer": 60112, "invoice_number": "INV-7731"}'Statuses are open, in_progress, completed and cancelled. Cancel rather than delete.
Find jobs for your workshop
Section titled “Find jobs for your workshop”curl "https://api.get-fleet.com/v1/work_orders?vendor_id=1b7e…&status=open&expand=vehicle" \ -H "Authorization: Bearer $FLEET_API_KEY"