Skip to content

Conundra Vehicle API (0.0.3)

The Vehicle API provides endpoints for managing vehicles used in planning operations.

Download OpenAPI description
Servers
Mock server
https://developer.conundra.eu/_mock/apis/vehicles/vehicle-api/
Vehicle API Production
https://api.conundra.eu/vehicle/v1/

Health check

Miscellaneous endpoints for general API functionality

Operations

Vehicle [EXPERIMENTAL]

Endpoints for managing vehicles.

Operations

Upsert Vehicle

Request

Create or update a Vehicle. A unique ID (business_id) is required to identify the Vehicle. Calling this endpoint with an existing business_id will update the Vehicle.

Modifying (or retrieving) a Vehicle will provide the caller with a version number for this Vehicle. This version can be passed to the upsert endpoint as a weak ETag in the If-Match header. This allows the caller to ensure that the Vehicle has not been modified since the last time it was retrieved.

Security
clientCredentials
Path
business_idstring<= 512 characters^[a-zA-Z0-9.~\-_]+$required

Unique identifier for this Vehicle. Should only contain characters which do not need URL encoding.

Headers
PreferArray of strings

The RFC7240 Prefer header indicates that a particular server behavior is preferred by the client but is not required for successful completion of the request (see RFC 7240).

The following behavior (see Examples) is supported by this API:

  • return=<minimal|representation> is used to suggest the server to return using 204 without resource (minimal) or using 200 or 201 with resource (representation) in the response body on success.
Examples:

Indicate no response is needed, can be omitted

return=minimal

Request the result of the operation as response

return=representation
If-Matchstring

Weak Etag used for optimistic locking.

Example: W/"24"
Bodyapplication/json
descriptionstring[ 1 .. 999 ] characters

Description of the vehicle.

Example: "Horn plays La Cucaracha - use sparingly in residential areas"
mandatoryboolean

Whether OptiFlow must use this vehicle in a planning or not. If false, OptiFlow will only use this vehicle when it makes sense to do so.

Default false
Example: true
driverobject(Driver)
startobject(Start)required
locationobject(StartLocation)required
addressobject(Address)required
business_idstring<= 512 characters^[a-zA-Z0-9.~\-_]+$required

Unique identifier for this address.

Example: "50.9514048-3.8067878"
namestring

Human-readable name for the location.

Example: "The office"
address_linestring

The part of the address that includes the street name, house number, bus number etc. Required when omitting geo_point.

Example: "Voordries 41"
citystring

City name. Required when omitting geo_point.

Example: "Oosterzele"
zip_codestring

Postal code. Required when omitting geo_point.

Example: "9860"
country_codestring(CountryCode)^[A-Z]{2}$

A ISO3166-1 alpha-2 two letter country code. Required when omitting geo_point.

geo_pointobject(GeoPoint)
service_timestring

Service time at the start location, formatted as ISO-8601 duration.

Default "PT0S"
Example: "PT20M"
orders_to_deliver_availableboolean

Indicates whether the orders to deliver are already available at the start location.

When true, the vehicle can begin deliveries immediately.

When false, the vehicle must first drive to a depot to pick up orders before it can start delivering.

Note: When the planning is a multi-tour VRP planning, only the orders to deliver on the first sub-tour are available at the start location.

Default false
Example: true
endobject(End)required
locationobject(EndLocation)required

End location for the vehicle. Only one of the properties should be set.

addressobject(Address)

The address where the vehicle should end.

at_last_activityboolean

When true, the vehicle ends at the location of its last activity.

Example: false
same_as_startboolean

When true, the vehicle returns to its start location.

Example: false
service_timestring

Service time at the end location, formatted as ISO-8601 duration.

Default "PT0S"
Example: "PT15M"
allow_picked_up_ordersboolean

Indicates whether the vehicle can end its route with picked-up orders still on board.

When true, the vehicle can drive directly to the end location with picked-up orders remaining on board.

When false, the vehicle must visit a depot to unload all picked-up orders before driving to the end location.

Default false
Example: true
deployabilityobject(Deployability)required
windowobject(DeployabilityWindow)required
startobject(DeployabilityWindowStart)required
earlieststring(date-time)required

Earliest time the vehicle can start.

Example: "2025-01-01T08:00:00Z"
lateststring(date-time)

Latest time the vehicle can start.

Example: "2025-01-01T10:00:00Z"
endobject(DeployabilityWindowEnd)required
lateststring(date-time)required

Latest time the vehicle must end.

Example: "2025-01-01T18:00:00Z"
durationobject(DeployabilityDuration)

When specified, one of both durations must be > PT0S

capabilitiesArray of stringsunique

Capabilities this vehicle provides. Used to make sure that orders requiring a specific capability, are only handled by vehicles with that capability.

Default []
Example: ["refrigerated","hazmat"]
transport_resourceobject(TransportResource)
labelsArray of stringsunique

Labels for categorizing vehicles. Can be used for facility filtering or defining constraints.

Default []
Example: ["priority","express"]
costobject(Cost)
route_settingsobject(RouteSettings)
colorstring

The color used to display this vehicle's route in the planning overview. Accepts CSS color names (e.g., "red", "blue") or hexadecimal color codes (e.g., "#FF5733", "#123DEF").

Example: "#FF5733"
break_rule_groupstring

Break Rule group for this vehicle. Allows bulk assignment of break rules to all vehicles in the group during planning.

Example: "BELGIUM-LEGAL"

Responses

Vehicle created or updated

Headers
ETagstring

A weak Etag (ex W/"<etag_value>") which contains the current version of the entity

Example: "W/\"25\""
Preference-Appliedstring

Indicates whether a preference has been applied.

Example: "return=representation"
Locationstring(URI)

A URI to access the result of the operation.

Bodyapplication/json
business_idstring<= 512 characters^[a-zA-Z0-9.~\-_]+$read-only

Unique identifier for this Vehicle.

Example: "truck-42"
descriptionstring[ 1 .. 999 ] characters

Description of the vehicle.

Example: "Horn plays La Cucaracha - use sparingly in residential areas"
mandatoryboolean

Whether OptiFlow must use this vehicle in a planning or not. If false, OptiFlow will only use this vehicle when it makes sense to do so.

Default false
Example: true
driverobject(Driver)
startobject(Start)required
locationobject(StartLocation)required
addressobject(Address)required
business_idstring<= 512 characters^[a-zA-Z0-9.~\-_]+$required

Unique identifier for this address.

Example: "50.9514048-3.8067878"
namestring

Human-readable name for the location.

Example: "The office"
address_linestring

The part of the address that includes the street name, house number, bus number etc. Required when omitting geo_point.

Example: "Voordries 41"
citystring

City name. Required when omitting geo_point.

Example: "Oosterzele"
zip_codestring

Postal code. Required when omitting geo_point.

Example: "9860"
country_codestring(CountryCode)^[A-Z]{2}$

A ISO3166-1 alpha-2 two letter country code. Required when omitting geo_point.

geo_pointobject(GeoPoint)
service_timestring

Service time at the start location, formatted as ISO-8601 duration.

Default "PT0S"
Example: "PT20M"
orders_to_deliver_availableboolean

Indicates whether the orders to deliver are already available at the start location.

When true, the vehicle can begin deliveries immediately.

When false, the vehicle must first drive to a depot to pick up orders before it can start delivering.

Note: When the planning is a multi-tour VRP planning, only the orders to deliver on the first sub-tour are available at the start location.

Default false
Example: true
endobject(End)required
locationobject(EndLocation)required

End location for the vehicle. Only one of the properties should be set.

addressobject(Address)

The address where the vehicle should end.

at_last_activityboolean

When true, the vehicle ends at the location of its last activity.

Example: false
same_as_startboolean

When true, the vehicle returns to its start location.

Example: false
service_timestring

Service time at the end location, formatted as ISO-8601 duration.

Default "PT0S"
Example: "PT15M"
allow_picked_up_ordersboolean

Indicates whether the vehicle can end its route with picked-up orders still on board.

When true, the vehicle can drive directly to the end location with picked-up orders remaining on board.

When false, the vehicle must visit a depot to unload all picked-up orders before driving to the end location.

Default false
Example: true
deployabilityobject(Deployability)required
windowobject(DeployabilityWindow)required
startobject(DeployabilityWindowStart)required
earlieststring(date-time)required

Earliest time the vehicle can start.

Example: "2025-01-01T08:00:00Z"
lateststring(date-time)

Latest time the vehicle can start.

Example: "2025-01-01T10:00:00Z"
endobject(DeployabilityWindowEnd)required
lateststring(date-time)required

Latest time the vehicle must end.

Example: "2025-01-01T18:00:00Z"
durationobject(DeployabilityDuration)

When specified, one of both durations must be > PT0S

capabilitiesArray of stringsunique

Capabilities this vehicle provides. Used to make sure that orders requiring a specific capability, are only handled by vehicles with that capability.

Default []
Example: ["refrigerated","hazmat"]
transport_resourceobject(TransportResource)
labelsArray of stringsunique

Labels for categorizing vehicles. Can be used for facility filtering or defining constraints.

Default []
Example: ["priority","express"]
costobject(Cost)
route_settingsobject(RouteSettings)
colorstring

The color used to display this vehicle's route in the planning overview. Accepts CSS color names (e.g., "red", "blue") or hexadecimal color codes (e.g., "#FF5733", "#123DEF").

Example: "#FF5733"
break_rule_groupstring

Break Rule group for this vehicle. Allows bulk assignment of break rules to all vehicles in the group during planning.

Example: "BELGIUM-LEGAL"
Response
application/json
{ "business_id": "truck-42", "description": "Horn plays La Cucaracha - use sparingly in residential areas", "mandatory": true, "driver": { "name": "John Doe", "efficiency_factor": 1.2, "custom_data": {} }, "start": { "location": {}, "service_time": "PT20M", "orders_to_deliver_available": true }, "end": { "location": {}, "service_time": "PT15M", "allow_picked_up_orders": true }, "deployability": { "window": {}, "duration": {} }, "capabilities": [ "refrigerated", "hazmat" ], "transport_resource": { "license_plate": "1-ABC-234", "capacities": [], "custom_data": {} }, "labels": [ "priority", "express" ], "cost": { "fixed": 50, "per_hour": 25, "per_kilometer": 0.5, "per_stop": 12, "overtime_per_hour": 30 }, "route_settings": { "routing_group": "medium-truck", "max_distance_in_kilometers": 450, "max_stops": 10, "driving_speed_factor": 1.5, "preferred_route_duration": {} }, "color": "#FF5733", "break_rule_group": "BELGIUM-LEGAL" }

Get Vehicle

Request

Get an existing Vehicle, defined by their business_id.

Security
clientCredentials
Path
business_idstring<= 512 characters^[a-zA-Z0-9.~\-_]+$required

The unique ID (business_id) used to create this Vehicle.

Responses

The Vehicle was successfully retrieved. Details are in the response body.

Headers
ETagstring

A weak Etag (ex W/"<etag_value>") which contains the current version of the entity

Example: "W/\"25\""
Bodyapplication/json
business_idstring<= 512 characters^[a-zA-Z0-9.~\-_]+$read-only

Unique identifier for this Vehicle.

Example: "truck-42"
descriptionstring[ 1 .. 999 ] characters

Description of the vehicle.

Example: "Horn plays La Cucaracha - use sparingly in residential areas"
mandatoryboolean

Whether OptiFlow must use this vehicle in a planning or not. If false, OptiFlow will only use this vehicle when it makes sense to do so.

Default false
Example: true
driverobject(Driver)
startobject(Start)required
locationobject(StartLocation)required
addressobject(Address)required
business_idstring<= 512 characters^[a-zA-Z0-9.~\-_]+$required

Unique identifier for this address.

Example: "50.9514048-3.8067878"
namestring

Human-readable name for the location.

Example: "The office"
address_linestring

The part of the address that includes the street name, house number, bus number etc. Required when omitting geo_point.

Example: "Voordries 41"
citystring

City name. Required when omitting geo_point.

Example: "Oosterzele"
zip_codestring

Postal code. Required when omitting geo_point.

Example: "9860"
country_codestring(CountryCode)^[A-Z]{2}$

A ISO3166-1 alpha-2 two letter country code. Required when omitting geo_point.

geo_pointobject(GeoPoint)
service_timestring

Service time at the start location, formatted as ISO-8601 duration.

Default "PT0S"
Example: "PT20M"
orders_to_deliver_availableboolean

Indicates whether the orders to deliver are already available at the start location.

When true, the vehicle can begin deliveries immediately.

When false, the vehicle must first drive to a depot to pick up orders before it can start delivering.

Note: When the planning is a multi-tour VRP planning, only the orders to deliver on the first sub-tour are available at the start location.

Default false
Example: true
endobject(End)required
locationobject(EndLocation)required

End location for the vehicle. Only one of the properties should be set.

addressobject(Address)

The address where the vehicle should end.

at_last_activityboolean

When true, the vehicle ends at the location of its last activity.

Example: false
same_as_startboolean

When true, the vehicle returns to its start location.

Example: false
service_timestring

Service time at the end location, formatted as ISO-8601 duration.

Default "PT0S"
Example: "PT15M"
allow_picked_up_ordersboolean

Indicates whether the vehicle can end its route with picked-up orders still on board.

When true, the vehicle can drive directly to the end location with picked-up orders remaining on board.

When false, the vehicle must visit a depot to unload all picked-up orders before driving to the end location.

Default false
Example: true
deployabilityobject(Deployability)required
windowobject(DeployabilityWindow)required
startobject(DeployabilityWindowStart)required
earlieststring(date-time)required

Earliest time the vehicle can start.

Example: "2025-01-01T08:00:00Z"
lateststring(date-time)

Latest time the vehicle can start.

Example: "2025-01-01T10:00:00Z"
endobject(DeployabilityWindowEnd)required
lateststring(date-time)required

Latest time the vehicle must end.

Example: "2025-01-01T18:00:00Z"
durationobject(DeployabilityDuration)

When specified, one of both durations must be > PT0S

capabilitiesArray of stringsunique

Capabilities this vehicle provides. Used to make sure that orders requiring a specific capability, are only handled by vehicles with that capability.

Default []
Example: ["refrigerated","hazmat"]
transport_resourceobject(TransportResource)
labelsArray of stringsunique

Labels for categorizing vehicles. Can be used for facility filtering or defining constraints.

Default []
Example: ["priority","express"]
costobject(Cost)
route_settingsobject(RouteSettings)
colorstring

The color used to display this vehicle's route in the planning overview. Accepts CSS color names (e.g., "red", "blue") or hexadecimal color codes (e.g., "#FF5733", "#123DEF").

Example: "#FF5733"
break_rule_groupstring

Break Rule group for this vehicle. Allows bulk assignment of break rules to all vehicles in the group during planning.

Example: "BELGIUM-LEGAL"
Response
application/json
{ "business_id": "truck-42", "description": "Horn plays La Cucaracha - use sparingly in residential areas", "mandatory": true, "driver": { "name": "John Doe", "efficiency_factor": 1.2, "custom_data": {} }, "start": { "location": {}, "service_time": "PT20M", "orders_to_deliver_available": true }, "end": { "location": {}, "service_time": "PT15M", "allow_picked_up_orders": true }, "deployability": { "window": {}, "duration": {} }, "capabilities": [ "refrigerated", "hazmat" ], "transport_resource": { "license_plate": "1-ABC-234", "capacities": [], "custom_data": {} }, "labels": [ "priority", "express" ], "cost": { "fixed": 50, "per_hour": 25, "per_kilometer": 0.5, "per_stop": 12, "overtime_per_hour": 30 }, "route_settings": { "routing_group": "medium-truck", "max_distance_in_kilometers": 450, "max_stops": 10, "driving_speed_factor": 1.5, "preferred_route_duration": {} }, "color": "#FF5733", "break_rule_group": "BELGIUM-LEGAL" }

Delete Vehicle

Request

Delete a Vehicle, defined by their business_id.

Security
clientCredentials
Path
business_idstring<= 512 characters^[a-zA-Z0-9.~\-_]+$required

A unique identifier of an entity instance.

Headers
If-Matchstring

Weak Etag used for optimistic locking.

Example: W/"24"

Responses

Deletion has succeeded and body is empty.

Response
No content