The drivers object consists of your drivers. Each driver is defined by their start_location and (optionally) an end_location.

"drivers": [{
	"name": "John Doe",
	"start_location": {
		"address": "555 west hastings, vancouver bc, canada",
		"coords": {
			"lat": 49.2847001,
			"lng": -123.1141236
		}
	},
	"end_location": {
		"address": "555 west hastings, vancouver bc, canada",
		"coords": {
			"lat": 49.2847001,
			"lng": -123.1141236
		}
	},
	"shift_start": "09:00",
	"shift_end": "17:00",
	"phone_number": "+16042597686",
	"speed": 1,
	"capacity": 10,
	"types": ["a", "b"],
	"break": {
		"start": "12:00",
		"end": "13:00"
	}
}]
PROPERTYTYPENOTES
nameStringrequiredThe driver's name.
start_locationLocation objectrequiredThe physical location of the driver's start point.
end_locationLocation objectoptionalThe physical location of the driver's end point.
shift_startString ("hh:mm")optionalThe start time of the driver's shift.
shift_endString ("hh:mm")optionalThe end time of the driver's shift.
phone_numberStringoptionalThe phone number of the driver.
speedString(faster, fast, normal(default), slow, very slow, bike) or NumberoptionalNot all your drivers are as experienced and may cruise the roads at different speeds.
Use this parameter to specify the driver's speed.
capacityNumber (any unit)optionalThe total capacity that can fit in the vehicle (using the same unit as the load for your visits).
typesString or ArrayoptionalIf you are using type restrictions on your visits, make sure you also define the same types for your vehicles in the type parameter.
breaksArray of Objectsoptional

name is the name of your driver.

start_location and end_location are location objects that allow you to define the physical location of the driver's start and end points. They both contain the geographic coordinates (lat and lng) inside a coords object. If the ​coords​ are not included in the input, Routific will try to geocode the addresses from the ​address​ field. If c​oords​ are included, the app will use the ​coords​ and skip the geocoding process. Only start_location is required. The end_location is optional and may be omitted. It may be useful in cases to have open-ended routes in some situations.

shift_start and shift_end specify when the driver starts driving and when he/she needs to be finished. If you have an end_location, then the shift_end means the latest time that the driver has to arrive there; otherwise it is the latest time that the driver can do their last job. Both parameters are optional. Without a shift_start, the algorithm will automatically infer the best time to depart, depending on your visits' time-windows.

phone_number is the phone number of your driver. This field is optional for the API call, but required in the app if you want to dispatch routes to your drivers.

speed: Not all your drivers are as experienced and may cruise the roads at different speeds. Use this parameter to specify the driver's speed. The default value for speed is normal or 1. Each step increases or decreases the vehicle speed by 25%, so for example very slow would describe a driver travelling at 50% of a normal driver's speed. For more control over the speed, you can also pass in a (decimal) number from 0.1 to 2. A speed of 0.1 would mean the vehicle is travelling at 10% speed while 2 means the vehicle is travelling at twice the speed.

capacity is an optional parameter to define the total capacity that can fit in the vehicle (using the same unit as the load for your visits). The algorithm will make sure that this capacity will not be exceeded.

If you are using type restrictions on your visits, make sure you also define the same types for your vehicles in the type parameter. This value can be either a String — depicting a single type — or an Array of Strings for multiple types. Vehicles without any type will still be able to serve the visits that have no type restrictions.