VRt.Universal [UV] (7.36.3317)

Veeroute Support Team: support@veeroute.com License: Proprietary Terms of Service

Description

Programming interface for universal trip planning.

Capabilities

  • Ability to pick up cargo from any location
  • Ability to drop off cargo at any location
  • Paired demands of several types: PICKUP (loading), DROP (unloading)
  • Single demands of several types: DROP_FROM_BOX (unloading of cargo that is already in the box), PICKUP_TO_BOX (picking up cargo into the box without subsequent unloading), WORK (work at a location without moving cargo)
  • A complex order may consist of any number of demands of any types
  • Transport and performers are split into separate entities; during planning, an optimal assignment of a performer to a transport is performed
  • Transport has multiple boxes — each of which can hold cargo and has its own characteristics
  • Compatibility check between cargo and transport based on cargo dimensions (length, width, height, additional capacity parameters)
  • Compatibility check between cargo and transport box (allowing to take into account box features: refrigerator, thermo bag, fasteners, etc.)
  • Replacement demands — i.e. the ability to perform one of several substitute demands, the choice being made based on the demand's geographic location and time window

Supported constraints

Constraints on a performer:

  • Start/finish location
  • Accounting for the performer's travel to the transport's start point
  • Performer availability schedule — a list of time windows during which the performer can travel and perform work at locations
  • Maximum work duration of the performer within a given time period

Constraints on transport:

  • Start/finish location
  • Transport availability schedule — a list of time windows during which the transport can travel
  • Maximum route length
  • Multiple boxes in the transport, each with its own parameters
  • Upper limit on summed capacities (mass, volume, number of orders, number of demands)

Constraints on an order:

  • Hard time windows
  • Ability to specify different allowed location work windows and desired demand execution windows
  • Order of demand execution within a route
  • List of desired execution time windows with different costs for each of them

Compatibilities used

Entities are compatible if the list of features of one entity fully covers the list of restrictions of another entity (the opposite for performer_blacklist — the lists must not overlap).

Supported compatibilities:

Name Restrictions Features
Order – Performer order.performer_restrictions performer.performer_features
Order – Not-Performer order.performer_blacklist performer.performer_features
Cargo – Box order.cargo.box_restrictions transport.box.box_features
Location – Transport location.transport_restrictions transport.transport_features
Transport – Performer transport.performer_restrictions performer.performer_features
Performer – Transport performer.transport_restrictions transport.transport_features
Order – Order order.order_restrictions order.order_features
Cargo – Cargo cargo.cargo_restrictions cargo.cargo_features

Examples of business rules:

Name Example business rule
Order – Performer To perform the order the driver must have a special permit
Order – Not-Performer The driver is on the blacklist
Cargo – Box A box with a special temperature mode is required to transport frozen products
Location – Transport Restrictions on transport height
Transport – Performer For freight transport the driver must hold category C
Performer – Transport The driver is allowed to work only on a specific transport
Order – Order Fish and fruit cannot be transported in the same box
Cargo – Cargo Two cargos cannot be placed simultaneously in the same transport box, but can be placed sequentially

Cargo placement in the box

List of an object's rotation capabilities (in 90-degree increments):

  • ALL — can be rotated around any axis any number of times
  • YAW — can be rotated once around the vertical axis (around its own axis)
  • PITCH — can be rotated once around the transverse axis (set vertically)
  • ROLL — can be rotated once around the longitudinal axis (laid on its side)

rotation

Trip model

A trip is described by a list of performer states; a performer can be in several states at the same time (e.g. be inside a location's working time window and at the same time perform an order at the same location).

Values of the flags responsible for the geographic position (multiple flags may be active at the same time):

  • AROUND_LOCATION — the performer is near the location, in the process of parking or leaving it.
  • INSIDE_LOCATION — the performer is at the location.

Values of the flags responsible for being inside time windows (multiple flags may be active at the same time):

  • INSIDE_WORKING_WINDOW — the performer is inside the working time window.
  • INSIDE_LOCATION_WINDOW — the performer is inside the location's operating time.
  • INSIDE_EVENT_HARD_WINDOW — the performer is inside the hard time window.
  • INSIDE_EVENT_SOFT_WINDOW — the performer is inside the soft time window.

Values of the flags responsible for actions (only one flag can be active at a time):

  • ON_DEMAND — the performer started working on a demand.
  • WAITING — the performer started waiting.
  • RELOCATING — the performer started moving to the next stop.
  • BREAK — the performer started a break.
  • REST — the performer started a long rest.
  • ARRIVAL — the performer started parking.
  • DEPARTURE — the performer finished leaving the parking.

Values of the flags responsible for the logical state:

  • DURING_ROUNDTRIP — the performer is performing a round trip.

Example route with multiple states at every moment in time

Time Set of active flags Location / Order / Demand / Event Comment
10:00 INSIDE_LOCATION
AROUND_LOCATION
2 / - / - / - Start location
10:05 AROUND_LOCATION
DEPARTURE
2 / - / - / - Left the parking
10:10 RELOCATING
DEPARTURE
2 / - / - / - Driving to the first order
10:20 AROUND_LOCATION
ARRIVAL
2 / - / - / - Arrived at the first order
10:40 AROUND_LOCATION
INSIDE_LOCATION
WAITING
2 / - / - / - Parked
11:00 AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
WAITING
INSIDE_EVENT_HARD_WINDOW
2 / - / - / - The location's window opened and the order became available
11:25 AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
ON_DEMAND
INSIDE_WORKING_WINDOW
INSIDE_EVENT_HARD_WINDOW
2 / 1 / 2 / 3 Waited for a performer change
11:30 AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
ON_DEMAND
INSIDE_WORKING_WINDOW
INSIDE_EVENT_HARD_WINDOW
INSIDE_EVENT_SOFT_WINDOW
2 / 1 / 2 / 3 While working — a soft window opened
11:40 AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
INSIDE_WORKING_WINDOW
2 / - / - / - Finished working
11:45 AROUND_LOCATION
DEPARTURE
INSIDE_WORKING_WINDOW
2 / - / - / - Left the parking
11:45 RELOCATING
INSIDE_WORKING_WINDOW
- / - / - / - Driving to the next order

Round trips

A trip consists of one or more round trips.

The round-trip flag DURING_ROUNDTRIP is set when work on a demand starts and is removed in one of three cases:

  • the performer arrived at the next location to stop using the transport
  • the performer arrived at a location that separates round trips
  • the performer stopped using the transport (in a location that does not separate round trips, after performing some other action)

Between the end of one round trip and the beginning of another there can be no RELOCATING change of location, but the following can occur: WAITING, performer's BREAK, performer's REST.

A location separates a trip into round trips in one of two cases:

  • if the location has a throughput limit timetable.limits (in this case there can be more than one location separating the trip)
  • if the location is simultaneously the start and finish location of all performers and transports, as well as of all PICKUP-type demands (in this case there will be only one location separating the trip)

Examples of such locations (depending on the problem statement) include:

  • distribution centers when delivering goods to stores or warehouses for long-haul transportation tasks
  • stores or warehouses when delivering goods to customers in last-mile tasks
  • dumps in waste collection tasks

Planning configuration

For each planning run it is possible to specify a planning configuration that defines the objective function, the desired route quality, and the calculation speed.

The configuration name is passed in the trips_settings.configuration field.

Main configurations:

Name Goal
optimize_distance Place as many orders as possible, then optimize the total mileage (the number of transports is chosen based on the mileage); used by default
optimize_transports Place as many orders as possible, while using as little transport as possible; all else being equal, optimize the working time of performers
optimize_locality_grouping Place as many orders as possible, while striving to optimize visual route grouping but not the number of routes
optimize_cars_then_distance Place as many orders as possible, then optimize the number of transports, then the mileage
optimize_time Place as many orders as possible, then optimize the total working time of performers
optimize_cars_then_time Place as many orders as possible, then optimize the number of transports, then the total working time of performers
optimize_money Optimize "reward for completing orders − costs"; consists of rewards for demands and the costs of performers and transports (the optimized value is non-negative)

Additional configurations:

Name Goal
visual_grouping Place as many orders as possible, while using as little transport as possible, with visually grouped routes
optimize_visual_grouping Place as many orders as possible, then evenly distribute orders taking transport accessibility zones into account (similar to visual_grouping but visual grouping is computed differently)
optimize_cars_then_locality_grouping Place as many orders as possible, then optimize the number of transports, then the visual route grouping
optimize_cars_then_single_location_grouping_sequenced Place as many orders as possible, then optimize the number of cars, then reliability

In addition to the existing planning options, an objective function can be created specifically for a client's business processes (request a configuration).

For development we recommend using optimize_cars_then_distance, as this configuration does not require fine-tuning of tariffs and order costs.

Data validation

Validation of input data consists of several stages described below.

1. Schema check

If a request does not pass schema validation, planning is not started at all and such an error is returned together with code 400 in schema_errors.

We recommend validating the request against the schema (or the yaml file) before sending it to the server.

2. Check for logical errors that prevent planning from continuing

Data that is correct against the schema goes through the second validation stage to determine whether planning can be started.

Examples of errors at this stage are keys pointing to empty entities, or all orders being incompatible with all performers — i.e. anything that makes the planning task meaningless.

These errors are returned together with code 400 in logical_errors.

3. Check for logical errors that prevent planning from continuing

At the third stage each entity is checked individually.

All entities that fail the check are removed from the original task and are not sent to planning.

Depending on the treat_warnings_as_errors setting, the results of this type of check are returned in warnings together with code 400, or together with the planning result.

4. Checks during planning

Some checks can only be performed during planning.

For example — that according to the specified tariffs and the current traffic forecast it is physically impossible to drive to a particular point.

The results of these checks are returned in warnings together with the planning result.

Entity diagram

erd

Plan

Planning — creating trips that take into account all the specified constraints, based on the data about orders, performers and transport.

Planning requests can be executed in synchronous (for testing) and asynchronous (for production use) modes.

To get the result of cleansing the original task, use data cleansing for planning.

Planning (ASYNC)

Starting trip planning - after loading and checking the data, the process_code is returned.

Using the process_code, you can find out calculation state and get result, and also cancel calculation and delete temporary data (otherwise they will be automatically deleted according to the ttl specified in the calculation settings).

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Launching the asynchronous planning.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Process code - calculation identifier.

Request samples

Content type
application/json
Example
{
}

Response samples

Content type
application/json
{
}

Planning (SYNC)

Sync method for trip planning.

Use only for testing and manual plannings.

For production use async method.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

New planning request.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
Example
{
}

Response samples

Content type
application/json
Example
{
}

Cancel calculation

Cancel calculation by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response samples

Content type
application/json
{
}

Calculation state

Read calculation state by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Getting the result

Getting the planning result based on the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
Example
{
}

Result removal

Removal of the planning result by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response samples

Content type
application/json
{
}

Data validation

Check data before using.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for validation.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

Request samples

Content type
application/json
Example
{
}

Response samples

Content type
application/json
{
}

Data refine

Cleaning up data for planning before calculation - entities that cannot participate in planning are removed from the original dataset:

  • Locations that no one references (depending on the remove_locations flag)
  • Orders that no performer can fulfill
  • Performers and transport that cannot fulfill any order
Authorizations:
ApiKeyAuth
query Parameters
remove_locations
boolean
Default: false
Example: remove_locations=true

Flag responsible for deleting a location when cleaning data. If true is specified, locations that are not referenced by any entity in the dataset are deleted.

Request Body schema: application/json
required

Data for refine.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
object (plan_task)

Task for planning

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (removed_items)

Information about removed essences.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Calculation of statistics on trips

Calculation of statistics for existing trips

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

New request.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip_list_required) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
Example
{
}

Actualize

Trip actualization — updating the planned execution time of orders, taking facts into account and without changing the visiting order.

Actualization runs in three stages — validation, applying facts, and planning the times of the unfinished trip states.

To get the result of cleansing and applying facts to the original task, use the data cleansing function.

The trips obtained as a result of actualization do not change performers, transport, or the order of order execution; they contain only the work that is left to be done.

Orders that cannot be performed remain assigned to the performer and end up in the waitlist.

Accounting for existing trips:

  • Trips are transformed into hardlink assignments — i.e. the performer's and transport's shifts assigned to a trip cannot be used in other trips.
  • For demands that were planned in the original trips, replacement events are removed and the order of execution is fixed via precedence_in_trip; if these demands already had an execution order specified — it will be overwritten.

Accounting for the current time:

  • If the current time actualize_settings.current_time is not specified in the data — the time the request is received by the server is used.
  • If the current time is greater than the left boundary of all events' and shifts' time windows — the left boundary is shifted up to the current time.
  • The allowed delay duration actualize_settings.max_delay_duration is added to the right boundary of all events' and shifts' time windows.
  • Soft time windows are corrected only if the demand duration does not allow the order to be completed within the soft window.

Accounting for facts:

  • Only those facts that occurred before actualize_settings.current_time (by the time field) are taken into account; how much earlier than the current time the fact occurred is not relevant.
  • If there are several facts (of the same type and referring to the same entities), only the most recent one by the time field is taken into account.
  • If the list of facts is empty — only the existing trips and the current time are taken into account.

Accounting for the location-change fact NEW_LOCATION:

  • For the fact to be taken into account, the list of locations locations must contain a location (existing or new) that describes the performer's new location.
  • If the trip has started (the fact's time is later than the trip's planned start time) — the transport is considered to be at the same location as the performer — i.e. start_location_key is changed for both the performer and the transport.
  • If the trip has not started (the fact's time is before the trip's planned start time) — only the performer's start location is changed; the transport's location stays as in the original data.

Accounting for the order-completion fact ORDER_DONE:

  • The order, its demands and the locations associated with them (if no other entities reference them) are removed from the data for actualization.
  • The cargo is considered unloaded from the transport.

Accounting for facts about the start of work on a demand DEMAND_START:

  • For each trip only one unclosed DEMAND_START fact is allowed (it is closed by a DEMAND_DONE fact) — since a performer can only perform one demand at a moment in time.
  • The work duration on the demand is reduced by the time already spent on it (computed as the length between the DEMAND_START fact and actualize_settings.current_time).
  • If there is a fact about work on a demand that contradicts the planned order in the specified trip — this demand will be completed first, then the trip will continue according to the planned order.
  • An order-related fact has higher priority than facts about demands of that order (if facts about demands contradict the order's fact — they will not be taken into account).

Accounting for facts of partial order completion DEMAND_DONE:

  • If all demands of an order have been completed — the order is considered finished (the actions are similar to processing the ORDER_DONE fact).
  • If a WORK-type demand has been completed — the demand is removed from the order.
  • If a DROP-type demand has been completed — the demand and its cargos, as well as the matching PICKUP-type demand, are removed from the order.
  • If a DROP_FROM_BOX-type demand has been completed — the demand and its cargo are removed from the order.
  • If a PICKUP-type demand of the order has been completed — the matching DROP-type demands will be transformed into DROP_FROM_BOX-type demands.
  • If a PICKUP_TO_BOX-type demand has been completed — the demand and the cargo are removed and the corresponding box's capacity of the transport is decreased (no compatibility changes are made).

Actualization (ASYNC)

Start updating existing trips - after loading and checking the data, the calculation identifier process_code is returned.

Using process_code you can find out calculation state and get result, and also cancel calculation and delete temporary data (otherwise they will be automatically deleted according to the ttl specified in the calculation settings).

An actualize task can be transformed into a planning task using data processing.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Starting the asynchronous actualize process.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

required
Array of objects (trip_list_required) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Process code - calculation identifier.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Actualization (SYNC)

Sync method for trips actualization.

Use only for testing and manual plannings.

For production use async method.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

New request for actualization.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

required
Array of objects (trip_list_required) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Cancel calculation

Cancel calculation by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response samples

Content type
application/json
{
}

Calculation state

Read calculation state by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Getting the result

Getting the planning result based on the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Result removal

Removal of the planning result by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response samples

Content type
application/json
{
}

Data validation

Check data before using.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for validation.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

required
Array of objects (trip_list_required) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Data refine

Cleaning data for actualization before calculation:

  • Entities that are not referenced by input trips are removed from the dataset - performers, transport, hardlinks, orders, facts.
  • If one entity is referenced by several facts, only the latest one by the time field is taken into account; if the time is the same, a random one is taken into account.
  • All facts that occurred later than actualize_settings.current_time are removed.

As a result, a task for planning is returned.

Authorizations:
ApiKeyAuth
query Parameters
remove_locations
boolean
Default: false
Example: remove_locations=true

Flag responsible for deleting a location when cleaning data. If true is specified, locations that are not referenced by any entity in the dataset are deleted.

Request Body schema: application/json
required

Data for refine.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

required
Array of objects (trip_list_required) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
object (plan_task)

Task for planning

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (removed_items)

Information about removed essences.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Replan

Replanning — creating new trips on the basis of already existing trips, taking facts into account.

Replanning runs in several stages — validation, applying facts and creating planning constraints based on the existing trips, planning.

Depending on the replanning settings, the task can be reduced to planning (when everything is allowed: reorder: true, plan_new_orders: true, create_new_trips: true) or to actualization (when everything is forbidden: reorder: false, plan_new_orders: false, create_new_trips: false).

Orders that cannot be performed remain assigned to the performer and end up in the waitlist.

Accounting for existing trips, the current time and the order of applying facts — uses the logic from actualization, taking the chosen strategy into account:

reorder
boolean
Default: false
Example: "true"

Activate trip actions reorder.

plan_new_orders
boolean
Default: false
Example: "true"

Ability to plan new orders into existing or new trips (if the create_new_trips option is enabled).

create_new_trips
boolean
Default: false
Example: "true"

Activate new trips creation.

{
}

Replanning (ASYNC)

Starting trip replanning - changing existing and creating new trips based on the facts and data about orders, performers and transport.

After loading and checking the data, the process_code is returned.

Using the process_code, you can find out calculation state and get result, and also cancel calculation and delete temporary data (otherwise they will be automatically deleted according to the ttl specified in the calculation settings).

An replan task can be transformed into a plan task using data processing.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Launching the asynchronous replanning.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip_list_required) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

object (replan_settings)

Replanning settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Process code - calculation identifier.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Replanning (SYNC)

Sync method for trips replanning.

Use only for testing and manual plannings.

For production use async method.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

New replanning request.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip_list_required) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

object (replan_settings)

Replanning settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Cancel calculation

Cancel calculation by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response samples

Content type
application/json
{
}

Calculation state

Read calculation state by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Getting the result

Getting the replanning result based on the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object (plan_statistics)

General statistics on the calculation result.

additional_attributes (object) or nullable (null)
Default: null

Additional attributes.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Result removal

Removal of the planning result by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Unique process identifier.

Responses

Response samples

Content type
application/json
{
}

Data validation

Check data before using.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for validation.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip_list_required) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

object (replan_settings)

Replanning settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Data refine

Cleaning up data for re-planning before calculation:

  • If one entity is referenced by several facts, only the latest one by the time field is taken into account; if the time is the same, a random one is taken into account.
  • All facts that occurred later than actualize_settings.current_time are deleted.
  • If plan_new_orders: false is specified - all orders that are not in the specified trips are removed from the original task.
  • If create_new_trips: false is specified - all performers and transport that are not in the specified trips are removed from the original task, and unplanned shifts of performers and transport that are in the specified trips are also removed.
  • Afterwards, cleaning up data for planning is performed.

As a result, a task for planning is returned.

Authorizations:
ApiKeyAuth
query Parameters
remove_locations
boolean
Default: false
Example: remove_locations=true

Flag responsible for deleting a location when cleaning data. If true is specified, locations that are not referenced by any entity in the dataset are deleted.

Request Body schema: application/json
required

Data for refine.

required
Array of objects (location_list_required) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order_list_required) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer_list_required) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport_list_required) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip_list_required) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

object (replan_settings)

Replanning settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
object (plan_task)

Task for planning

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (removed_items)

Information about removed essences.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

XLSX-format

Description of the VRt.Universal XLSX format for data import/export.

This format is a complete representation of the JSON data model and is used for:

  • input data
  • process settings
  • calculation results
  • statistics on the calculation result

Below is a description of each sheet separately; bold highlights the keys.

Data settings

Sheet name info.

Name Description
api_version Universal API version at the time of XLSX generation
timezone Time zone in which all times in the data are specified
docs_ru Link to the documentation (RU)
docs_en Link to the documentation (EN)

Locations

Sheet name locations.

List of locations used in orders and shifts.

Name Description Note
key Location key, unique identifier Unique key within the calculation
departure_duration Time to depart from the location, time interval
geopoint.latitude Geographic latitude in degrees
geopoint.longitude Geographic longitude in degrees
timetable.work_windows.from Start of the location's work time window Required if to is specified. If the list is empty or not specified, the location operates without time restrictions.
timetable.work_windows.to End of the location's work time window Required if from is specified. If the list is empty or not specified, the location operates without time restrictions.
compatibilities
.transport_restrictions
List of required restrictions on the transport Used to check transport compatibility with the location.
attributes Attributes used to specify auxiliary information This data is not taken into account in planning.

Object described:

key
required
string [ 1 .. 1024 ] characters
Example: "location_01"

Location key, unique identifier.

required
object (geopoint)

Geographical point.

arrival_duration
string <duration> (time_duration) [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d...
Example: "PT1H45M"

Time for driving up to the location (or waiting time at parking lot) according to ISO 8601 duration.

departure_duration
string <duration> (time_duration) [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d...
Example: "PT1H45M"

Time to leave the location according to ISO 8601 duration.

Array of objects (location_timetable) [ 0 .. 30 ] items

Location timetable - time windows of availability and capacity restrictions. If the list is empty or not specified, the location works without restrictions.

location_compatibilities (object) or nullable (null)
Default: null

Compatibilities of the location with transport.

name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

address
string or null [ 1 .. 1024 ] characters
Default: null
Example: "24th Line V.O., 15/2, building A, St. Petersburg, 199106"

Full location address.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Performers

Sheet name performers.

List of available performers.

Name Description Note
key Performer key, unique identifier
own_transport_type Transport type If not specified, defaults to CAR.
shifts.key Shift key, unique identifier
shifts.start_location_key Start location key If the key is not specified — the performer's path starts at the first order.
shifts.finish_location_key Finish location key If the key is not specified — the performer's path finishes at the last order.
shifts.max_locations Limit on the number of unique locations in a single trip, including the start and finish locations If the parameter is not specified or is null — the number of locations is not limited.
shifts.max_stops Limit on the number of stops in a single trip, including the start and finish locations If the parameter is not specified or is null — the number of stops is not limited.
shifts.attributes Attributes. Used to specify auxiliary information This data is not taken into account in planning.
shifts.availability_time.from Start of the shift's time window During which the performer can perform work at locations and travel between locations.
shifts.availability_time.to End of the shift's time window During which the performer can perform work at locations and travel between locations.
shifts.working_time.from Start of the working time window During which the performer can perform work at locations; must be inside the shift's time window.
shifts.working_time.to End of the working time window During which the performer can perform work at locations; must be inside the shift's time window.
shifts.tariff
.cost_per_shift
Price for using the shift, monetary unit Default: 0.001
shifts.tariff
.max_penalty_cost
Maximum sum of penalties the performer can incur within this shift, monetary unit. If the sum is not specified or is null — the performer cannot violate constraints.
shifts.tariff
.constraints.stage_length
Length of the paid period, time interval Default: 525960
shifts.tariff
.constraints.cost_per_unit
Cost within the paid period, monetary unit per second of work Default: 0.001
shifts.work_and_rest_rules
.first_break
.max_work_duration_sum
Total work time after which a break must be taken
shifts.work_and_rest_rules
.first_break
.duration
Break duration
compatibilities
.performer_features
List of the performer's features Used to check the performer's compatibility with orders and transport.
compatibilities
.transport_restrictions
List of required restrictions on the transport Used to check the performer's compatibility with the transport.
limits.max_work_shifts Limit on the performer's workload Limit on the number of the performer's shifts in a single planning run.
attributes Attributes used to specify auxiliary information This data is not taken into account in planning.

Object described:

key
required
string [ 1 .. 1024 ] characters
Example: "performer0001"

Performer's key, unique identifier.

required
Array of objects (performer_shift) [ 1 .. 15001 ] items unique

List of working shifts of performer.

own_transport_type
string (transport_type)
Default: "CAR"
Enum: "CAR" "TRUCK_1500" "TRUCK_3000" … 13 more
Example: "CAR"

The type of personal transport that the performer will use to get to his assigned work transport.

performer_compatibilities (object) or nullable (null)
Default: null
performer_limits (object) or nullable (null)
Default: null

Limitation on the performer's workload.

name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Transports

Sheet name transports.

List of available transport.

Name Description Note
key Transport key, unique identifier
transport_type Transport type If not specified, defaults to CAR
boxes.key List of transport boxes that can hold cargo Required if the task contains orders with PICKUP and DROP demands
shifts.key Shift key, unique identifier
shifts.start_location_key Start location key If the key is not specified — the transport's path starts at the first order
shifts.finish_location_key Finish location key If the key is not specified — the transport's path finishes at the last order
shifts.attributes Attributes. Used to specify auxiliary information This data is not taken into account in planning
shifts.availability_time.from Start of the shift's time window During which the transport can travel between locations and be used by the performer for work at locations
shifts.availability_time.to End of the shift's time window During which the transport can travel between locations and be used by the performer for work at locations
shifts.tariff
.cost_per_shift
Price for using the shift, monetary unit Default: 0.001
shifts.tariff
.max_penalty_cost
Maximum sum of penalties Default: 0. The transport can incur this within the shift, monetary unit. If the sum is not specified or is null — the transport cannot violate constraints.
shifts.tariff
.constraints.stage_length
Length of the paid part of the path, in meters Default: 100000000
shifts.tariff
.constraints.cost_per_unit
Cost within the paid part of the path Monetary unit per meter. Default: 0.001
shifts.tariff
.transportation_cost.mass
Cost of moving 1 unit of cargo mass per 1 meter In conventional monetary units
shifts.tariff
.transportation_cost.volume
Cost of moving 1 unit of cargo volume per 1 meter In conventional monetary units
shifts.tariff
.transportation_cost.capacity_a
Cost of moving 1 unit of additional cargo parameter A per 1 meter In conventional monetary units
shifts.tariff
.transportation_cost.capacity_b
Cost of moving 1 unit of additional cargo parameter B per 1 meter In conventional monetary units
shifts.tariff
.transportation_cost.capacity_c
Cost of moving 1 unit of additional cargo parameter C per 1 meter In conventional monetary units
compatibilities
.transport_features
List of the transport's features Used to check transport compatibility with locations and performers
compatibilities
.performer_restrictions
List of the transport's restrictions on the performer Used to check compatibility with the performer
limits.max_boxes Limit on the maximum number of transport boxes used in a single trip If the parameter is not specified or is null — the number of boxes is not limited. The limit must not exceed the number of boxes
limits.max_capacity.mass Parameter additionally limits the maximum possible transport load by mass summed across all boxes Mass in kilograms; applicable only if the transport has more than one box; the parameter must not be less than the capacity of any box.
limits.max_capacity.volume Parameter additionally limits the maximum possible transport load by volume summed across all boxes Volume in cubic meters; applicable only if the transport has more than one box; the parameter must not be less than the capacity of any box.
limits.max_capacity.capacity_a Parameter additionally limits the maximum possible transport load by additional parameter A summed across all boxes Additional capacity parameter (A) for measuring cargo and boxes in alternative units. For example, to count cargo in pieces (this parameter equals one for cargo, and equals the maximum number of cargos that fit for a box).
limits.max_capacity.capacity_b Parameter additionally limits the maximum possible transport load by additional parameter B summed across all boxes Additional capacity parameter (B) for measuring cargo and boxes in alternative units.
limits.max_capacity.capacity_c Parameter additionally limits the maximum possible transport load by additional parameter C summed across all boxes Additional capacity parameter (C) for measuring cargo and boxes in alternative units.
attributes Attributes used to specify auxiliary information This data is not taken into account in planning.

Object described:

key
required
string [ 1 .. 1024 ] characters
Example: "transport001"

Transport key, unique identifier.

required
Array of objects (transport_shift) [ 1 .. 15001 ] items unique

List of working shifts of transport.

transport_type
string (transport_type)
Default: "CAR"
Enum: "CAR" "TRUCK_1500" "TRUCK_3000" … 13 more
Example: "CAR"

Transport types:

  • CAR - car
  • TRUCK_1500 - truck with permissible weight 1500 kg
  • TRUCK_3000 - truck with permissible weight 3000 kg
  • TRUCK_5000 - truck with permissible weight 5000 kg
  • TRUCK_10000 - truck with permissible weight 10000 kg
  • TRUCK_20000 - truck with permissible weight 20000 kg
  • TRUCK_10000_L75_H35_W24_6000 - a truck with a permitted weight of no more than 10,000 kg, dimensions of 7.5 x 3.5 x 2.4 meters, and a permissible axle load of 6,000 kg
  • TRUCK_18000_L95_H40_W26_11000 - a truck with a permitted weight of no more than 18,000 kg, dimensions of 9.5 x 4.0 x 2.6 meters, and a permissible axle load of 11,000 kg
  • TRUCK_26000_L120_H40_W26_8000 - a truck with a permitted weight of no more than 26,000 kg, dimensions of 12.0 x 4.0 x 2.6 meters, and a permissible axle load of 8000 kg
  • TRUCK_GARBAGE_1 - truck for transporting garbage (type 1)
  • TRUCK_GARBAGE_2 - truck for transporting garbage (type 2)
  • TUK_TUK - tuk-tuk
  • BICYCLE - bicycle
  • PEDESTRIAN - pedestrian
  • PUBLIC_TRANSPORT - public transport
  • TELEPORT - teleport (instant movement between points)

Permissible weight is the weight of the equipped transport with cargo and driver, set by the manufacturer as the maximum allowable.

Array of objects (box) [ 0 .. 100 ] items
Default: []

A list of transport boxes that can accommodate the cargo.

transport_compatibilities (object) or nullable (null)
Default: null
transport_limits (object) or nullable (null)
Default: null

Transport load limits.

name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Boxes

Sheet name transports.boxes.

List of transport boxes that can hold cargo. The table is required if the calculation contains orders with PICKUP and DROP demands. In the description of the boxes, the fields that describe cargo are required.

Name Description Note
key Box key Unique identifier; used to identify the placement of cargo across boxes.
capacity.mass Mass, kg Mass limit that the box can hold at any single moment
capacity.volume Volume, m³ Volume limit that the box can hold at any single moment
capacity.capacity_a Additional capacity parameter (A) For measuring cargo and boxes in alternative units. For example, to count cargo in pieces (this parameter equals one for cargo, and equals the maximum number of cargos that fit for a box).
capacity.capacity_b Additional capacity parameter (B) For measuring cargo and boxes in alternative units.
capacity.capacity_c Additional capacity parameter (C) For measuring cargo and boxes in alternative units.
compatibilities
.width
Width in meters
compatibilities
.height
Height in meters
compatibilities
.length
Length in meters
compatibilities
.box_features
List of the box's features Used to evaluate whether cargo can be transported in this box
limits
.max_one_cargo_capacity.mass
Mass in kilograms Limit on capacity fields for a single cargo
limits
.max_one_cargo_capacity.volume
Volume in cubic meters Limit on capacity fields for a single cargo
limits
.max_one_cargo_capacity.capacity_a
Additional capacity parameter (A) Limit on capacity fields for a single cargo
limits
.max_one_cargo_capacity.capacity_b
Additional capacity parameter (B) Limit on capacity fields for a single cargo
limits
.max_one_cargo_capacity.capacity_c
Additional capacity parameter (C) Limit on capacity fields for a single cargo

Object described:

key
required
string [ 1 .. 1024 ] characters
Example: "box01"

Unique box key used to identify the cargo placement in boxes.

capacity (object) or nullable (null)
Default: null

The box capacity, which limits the maximum amount for all capacity fields of all the cargoes.

box_compatibilities (object) or nullable (null)
Default: null

Transport box compatibilities.

box_limits (object) or nullable (null)
Default: null

Box limits.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Orders

Sheet name orders.

List of orders.

Name Description Note
key Order key A repeated order key means demands belonging to the same order
cargos.key List of cargos Can contain a single cargo for DROP, a list for PICKUP, or be empty for WORK.
demands.key Demand key, unique identifier
demands.demand_type Demand type Loading — PICKUP, unloading — DROP, work at a location — WORK.
demands.target_cargos List of cargo keys For PICKUP, a single cargo key for DROP, an empty key for WORK
demands.precedence_in_trip Priority within the trip 0 — priority is not taken into account. Default: 0.
demands.precedence_in_order Priority within the order 0 — priority is not taken into account. Default: 0.
demands
.possible_events.key
Event key, unique identifier Description of the time-window and locations object in which the demand can be performed
demands
.possible_events.location_key
Key of the location where this event is possible
demands
.possible_events.duration
Event execution time
demands
.possible_events.reward
Reward for performing this event
demands
.possible_events.hard_time_window.from
Start of the hard time window
demands
.possible_events.hard_time_window.to
End of the hard time window
demands
.possible_events.soft_time_window.from
Start of the soft time window
demands
.possible_events.soft_time_window.to
End of the soft time window
demands
.attributes
Attributes. Used to specify auxiliary information This data is not taken into account in planning.
compatibilities
.order_features
List of the order's features
compatibilities
.order_restrictions
List of restrictions for an order performed in the same trip
compatibilities
.performer_restrictions
List of required restrictions on the performer Used to check the performer's compatibility with the order (work).
compatibilities
.performer_blacklist
List of features the performer must not have Used to check the performer's compatibility with the order (work). This list must not overlap with performer_restrictions
attributes Attributes used to specify auxiliary information This data is not taken into account in planning.

Object described:

key
required
string [ 1 .. 1024 ] characters
Example: "order01"

Order key, unique identifier.

required
Array of objects (demand) [ 1 .. 1000 ] items unique

Demands list.

Array of objects (cargo_list) [ 0 .. 1000 ] items unique

The list of cargoes referred to by the demands of this order. The list must be empty if all demands in the order are of type WORK.

order_compatibilities (object) or nullable (null)
Default: null
name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Cargos

Sheet name orders.cargos.

List of cargos. May contain a single cargo for DROP, a list for PICKUP, or be empty for WORK. The table is not required if all demands have type WORK.

Name Description Note
key Cargo key, unique identifier
capacity.mass Mass in kilograms
capacity.volume Volume in cubic meters
capacity.capacity_a Additional capacity parameter (A) For measuring cargo and boxes in alternative units. For example, to count cargo in pieces (this parameter equals one for cargo, and equals the maximum number of cargos that fit for a box).
capacity.capacity_b Additional capacity parameter (B)
capacity.capacity_c Additional capacity parameter (C)
compatibilities
.width
Width in meters Used to check the cargo's fit into the transport's box by width.
compatibilities
.height
Height in meters Used to check the cargo's fit into the transport's box by height.
compatibilities
.length
Length in meters Used to check the cargo's fit into the transport's box by length.
compatibilities
.rotation
List of the object's rotation abilities Rotation step is 90 degrees. If the list is empty — the object cannot be rotated. Allowed values: ALL, YAW, PITCH, ROLL
compatibilities
.box_restrictions
List of restrictions on the transport's box
compatibilities
.cargo_features
List of the cargo's features Used to check cargo compatibility with other cargos. Incompatible cargos cannot be in the same transport box at the same time
compatibilities
.cargo_restrictions
List of required restrictions on cargo Used to check cargo compatibility with other cargos. Incompatible cargos cannot be in the same transport box at the same time

Object described:

key
required
string [ 1 .. 1024 ] characters
Example: "cargo01"

Cargo key, unique identifier.

capacity (object) or nullable (null)
Default: null

Cargo additive measures.

cargo_compatibilities (object) or nullable (null)
Default: null
target_box_key
string or null [ 1 .. 1024 ] characters
Default: null
Example: "box01"

The key of the transport box in which the cargo is already located. Applicable only for cargo that is in the order with the type DROP_FROM_BOX. For other order types, the key must be empty.

cargo_invoice (object) or nullable (null)
Default: null

Cargo invoice.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Trips

Sheet name trips.

List of trips.

Object described:

key
required
string [ 1 .. 1024 ] characters
Example: "trip-0000-9999"

Unique trip identifier.

required
object (assigned_performer)

Performer's shift assigned to the specified time (shift_time).

required
object (assigned_transport)

Transport's shift assigned to the specified time (shift_time).

required
Array of objects (trip_state_list) [ 0 .. 15001 ] items

List of performer's states.

waitlist
Array of strings (trip_waitlist) [ 0 .. 15001 ] items unique [ items [ 1 .. 1024 ] characters ]
Example: ["order02"]

List of order keys assigned to the performer, but not scheduled for a specific time and not taken into account in the transport load.

name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Facts

Sheet name facts.

List of facts.

Object described:

key
required
string [ 1 .. 1024 ] characters
Example: "fact_01"

Fact key.

type
required
string (fact_type)
Enum: "NEW_LOCATION" "ORDER_DONE" "DEMAND_START" … 8 more
Example: "NEW_LOCATION"

Possible fact types:

  • NEW_LOCATION - the performer changed his location during the trip
  • ORDER_DONE - the performer has finished fulfilling the order (or the order has been cancelled), the cargo associated with the order is no longer in the transport box
  • DEMAND_START - performer started to fulfill the demand
  • DEMAND_DONE - performer finished to fulfill the demand
  • DEMAND_CANCELED - the performer canceled the demand
  • TRIP_PRECEDENCE_CHANGED - the performer changed the precedence of the demands in the trip
  • TRIP_RECEIVED - the performer has received the trip
  • TRIP_CONFIRMED - the performer has agreed to perform the trip
  • TRIP_REJECTED - the performer has refused to perform the trip
  • TRIP_EXECUTED - the performer has started performing the trip
  • JOB_DONE - the performer has finished custom job
creation_date
required
string <date-time>
Example: "2026-04-21T09:30:00+03:00"

Fact creation date and time in the ISO 8601 format.

reception_date
string or null <date-time>
Default: null
Example: "2026-04-21T09:33:00+03:00"

Date and time of receipt of the fact by the server in the ISO 8601 format.

execution_date
string or null <date-time>
Default: null
Example: "2026-04-21T09:35:00+03:00"

Date and time of execution the fact by the server in the ISO 8601 format.

status
required
string (fact_status)
Enum: "NEW" "APPLIED" "ERROR"
Example: "APPLIED"

Current fact status:

  • NEW - the fact has been created and is awaiting system processing
  • APPLIED - the fact has been processed by the system and applied to the data
  • ERROR - an error occurred while processing the fact; the sender must correct the fact and resubmit
status_detail
string or null [ 1 .. 1024 ] characters
Default: null
Example: "duplicate fact"

Additional information about the fact status, used to clarify fact processing errors.

trip_key
required
string [ 1 .. 1024 ] characters
Example: "trip_01"

The trip key to which the fact applies.

fact_lore (object) or nullable (null)
Default: null

Additional data describing the fact. This field is required for the following fact types:

  • NEW_LOCATION
  • ORDER_DONE
  • DEMAND_START
  • DEMAND_DONE
  • DEMAND_CANCELED
  • TRIP_PRECEDENCE_CHANGED
  • JOB_DONE
Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Plan settings

Sheet name plan_settings.

Plan settings.

Object described:

object (trips_settings)

Trip creation settings.

object (geo_settings)

Geodata usage settings.

object (calculation_settings)

Calculation settings.

object (extension_settings)

Settings for using external extensions to adjust calculations.

{
}

Actualize settings

Sheet name actualize_settings.

Actualize settings.

Object described:

current_time
string or null <date-time>
Default: null
Example: "2026-04-21T09:30:00+03:00"

Current date and time according to the ISO 8601. If not specified, the current time when the request was received by the server is taken.

max_delay_duration
string <duration> [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d...
Default: "PT3H"
Example: "PT1H30M"

Acceptable delay. Affects the shift of the right boundaries of hard time windows of orders and time windows of work shifts of performers and transports.

{
}

Replan settings

Sheet name replan_settings.

Replan settings.

Object described:

object (replan_strategy)

Replan strategy.

{
}

Total statistics

Sheet name total_statistics.

Total statistics.

Object described:

cost
required
number <double> [ 0 .. 1000000000000 ]
Example: "1231.1"

Total cost calculated based on the performer's and transport tariffs.

reward
required
number <double> [ 0 .. 1000000000000 ]
Example: "2343.3"

The total reward for orders fulfillment.

profit
required
number <double> [ -1000000000000 .. 1000000000000 ]
Example: "1231.1"

The total profit is equal to the difference between the total reward (reward) and cost (cost).

required
object (measurements)

Measurements of times and distances for aggregate and individual trips:

  • time_window - the start time of the first trip and the end time of the last, if there are no trips, the time of the left border of the planning horizon is returned, while the from \ to fields have the same value
  • driving_time - duration of driving time
  • waiting_time - total waiting time for all locations
  • working_time - total time of work execution at all locations included in the trip
  • break_time - total break time for all locations
  • rest_time - total rest time for all locations
  • arriving_time - total time to drive / park at locations
  • departure_time - total time for departure from locations
  • total_time - total time, composed of driving_time + waiting_time + working_time + break_time + rest_time + arriving_time + departure_time
  • distance - the total length of the roundtrip/trip/set of trips, in meters
trips_count
required
integer <int32> [ 0 .. 15001 ]
Example: "250"

The total number of planned trips.

performers_count
required
integer <int32> [ 0 .. 15001 ]
Example: "157"

The total number of performers involved in orders fulfillment.

orders_count
required
integer <int32> [ 0 .. 15001 ]
Example: "1700"

The total number of planned and assigned orders.

plan_orders_count
required
integer <int32> [ 0 .. 15001 ]
Example: "1003"

The total number of planned orders.

waitlist_orders_count
required
integer <int32> [ 0 .. 15001 ]
Example: "697"

The total number of assigned orders.

stops_count
required
integer <int32> [ 0 .. 15001000 ]
Example: "87"

The total number of stops (non-unique locations).

locations_count
required
integer <int32> [ 0 .. 15001000 ]
Example: "45"

The total number of unique locations within one trip. For general statistics - the sum of unique locations within each trip.

required
object (capacity_statistics_sum)

Total additive measures of the transported cargo.

required
object (capacity_statistics_ratio)

The ratio of the total additive measures of the transported cargo to the total capacity of the boxes. In fractions of a unit. It may be more than one.

required
object (capacity_statistics_load)

The ratio of the maximum load of boxes to the total capacity of boxes. In fractions of a unit. Cannot be greater than one.

average_speed
required
number <double> [ 0 .. 1000000000000 ]
Example: "43.1"

Average speed is the ratio of the total distance to the total time of movement, km/h.

round_trips_count
required
integer <int32> [ 0 .. 15001 ]
Example: "2"

Number of roundtrips within a trip.

average_roundtrip_distance
required
number <double> [ 0 .. 1000000000000 ]
Example: "23.4"

Average mileage per roundtrip is the ratio of the total mileage per trip to the number of roundtrips, in meters.

average_roundtrip_time
required
string <duration> (time_duration) [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d...
Example: "PT1H45M"

Average roundtrip time is the ratio of the total time to the number of roundtrips.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Convert

Data conversion.

JSON >> XLSX

Used for conversion of data to the VRt.Universal XLSX format.

Authorizations:
ApiKeyAuth
query Parameters
timezone
integer <int32> (timezone) [ -12 .. 12 ]
Default: 0
Example: timezone=3

Target time zone.

Request Body schema: application/json
required

Conversion request to the XLSX.

Array of objects (location_list) [ 0 .. 15001 ] items unique

List of locations used for orders and shifts.

Array of objects (order_list) [ 0 .. 15001 ] items unique

List of orders that need to be completed.

Array of objects (performer_list) [ 0 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

Array of objects (transport_list) [ 0 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

plan_statistics (object) or nullable (null)
Default: null

General statistics on the calculation result.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (replan_settings)

Replanning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/octet-stream
string <byte> (file_xlsx)

File with data in XLSX format.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

XLSX >> JSON

Used for data conversion from the VRt.Universal XLSX format to the VRt.Universal JSON format.

Authorizations:
ApiKeyAuth
Request Body schema: application/octet-stream
required

Conversion request to the JSON format.

string <byte> (file_xlsx)

File with data in XLSX format.

Responses

Response Schema: application/json
Array of objects (location_list) [ 0 .. 15001 ] items unique

List of locations used for orders and shifts.

Array of objects (order_list) [ 0 .. 15001 ] items unique

List of orders that need to be completed.

Array of objects (performer_list) [ 0 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

Array of objects (transport_list) [ 0 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

plan_statistics (object) or nullable (null)
Default: null

General statistics on the calculation result.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (replan_settings)

Replanning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Response samples

Content type
application/json
{
}

JSON >> THRIFT

Used for conversion of input data to the THRIFT format.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Conversion request to the THRIFT.

Array of objects (location_list) [ 0 .. 15001 ] items unique

List of locations used for orders and shifts.

Array of objects (order_list) [ 0 .. 15001 ] items unique

List of orders that need to be completed.

Array of objects (performer_list) [ 0 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

Array of objects (transport_list) [ 0 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

plan_statistics (object) or nullable (null)
Default: null

General statistics on the calculation result.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (replan_settings)

Replanning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: text/plain
string (file_text) [ 0 .. 2000000000 ] characters

File with data in text format.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

System

System functions. Auxiliary functionality common to all services.

Checking the availability

Checking the service availability.

Responses

Response Schema: application/json
health
required
number <double> [ 0 .. 1 ]
Example: "0.999"

The current health indicator of the service.

  • 0.0 means the service is not ready to perform tasks.
  • 1.0 means the service is fully ready to perform tasks.

Response samples

Content type
application/json
{
}

Getting the service version

Getting the service version.

Responses

Response Schema: application/json
major
required
integer <int32> [ 1 .. 100 ]
Example: "7"

Product version. Within a single version, compatibility of common data structures between services is guaranteed. A version change indicates changes that are incompatible with previous versions of the product (and all services).

minor
required
integer <int32> [ 0 .. 111 ]
Example: "15"

Minor version of the service. A version change indicates new functionality. The update is backward compatible with the major version of the service.

build
required
string [ 1 .. 64 ] characters
Example: "3754RC"

Build version.
Contains backwards compatible bug fixes and docs update.

Response samples

Content type
application/json
{
}

Getting the documentation

Getting the file with this service documentation.

path Parameters
filename
required
string [ 6 .. 128 ] characters
Example: file_en.html

File name.

Responses

Response Schema:
string (file_html) [ 0 .. 2000000000 ] characters

File with data in HTML format.

Response samples

Content type
application/json
{
}