Skip to main content
POST
Check a solve request without running it
V3 is in beta. General availability (GA) is planned for January 2027.

Authorizations

Authorization
string
header
required

Body

application/json

Request body for POST /v3/routing/solve.

problem
object
required

The problem: tasks, fleet, depots, relations, objective, travel.

Example:
options
null | object

Solve options.

Example:
plan
null | object

Warm start: the plan the search starts from instead of constructing from scratch (re-optimization). A result's plan goes in as it stands. See plan.routes[].locked_count for freezing a dispatched prefix.

A hint, not a guarantee: an unlocked stop that violates a hard constraint (e.g. capacity, skills, eligibility, limits.*, or a time window with no per_late_hour set) is left unassigned and the search reinserts it wherever it legitimately fits, or it surfaces in unassigned[] with a typed reason. An infeasible locked stop is a 400.

Response

The request passed every check made before travel times are fetched. warnings may contain warnings; none are produced today.

The 200 body of POST /v3/routing/validate/{solve,evaluate,suggest}: the request passed every check a real call runs before the matrix fetch.

valid
boolean
required

Always true: an invalid request gets a 400 instead.

warnings
object[]
required

May contain warnings about the request; none are produced today.