V3 is in beta. General availability (GA) is planned for January 2027.
Overview
These limits apply toPOST /v3/routing/solve, /v3/routing/evaluate and /v3/routing/suggest, and to POST /v3/routing/runs, which takes the solve body (see Async runs for what differs). Most are checked before any travel times are fetched, so an oversized request fails fast and is reported by POST /v3/routing/validate/* as well.
A request over a count limit gets a 400 whose errors[] item has code limit_exceeded, the limit and the actual count your request has:
400 Bad Request
Request
Solve time
time_limit_s is a number of seconds, fractions allowed, and counts search time only. Fetching travel times and waiting for a free solver are not deducted from it, so the request takes somewhat longer than the budget you set; set your HTTP client timeout accordingly. The budget is a ceiling: a solve that starts from a plan, or that has one vehicle with one shift, can return earlier, and a busy service can shorten any solve’s search (see Performance). Evaluate takes no options because it does not search.
Problem size
Capacity, skills and tags
In a request with shipments and no jobs, the pointers shown as
/problem/jobs in this table read /problem/shipments.
Relations
Values
Prices
Amounts are in your currency. Prices have lower ceilings thandrop_cost and depots[].per_reload.
A ceiling applies to the field you send, not to what one stop ends up costing. A lateness rate times a long delay can exceed 21,474.83647 for a single stop; the solver charges it in full, and a priced window never makes a stop infeasible however high the price. A task with a drop_cost can still be left unassigned when serving it would cost at least its drop_cost.
For a rule that must always hold, use the hard field and not a high price:
eligible_vehicles in place of a large violation_cost, and a time window with no lateness price in place of a large lateness rate. See Constraints.
Rate limits
Requests are also rate limited by the API gateway. A request over the rate limit is rejected with429, and that response does not use the routing error body: see 429 Too Many Requests. The x-ratelimit-limit and x-ratelimit-remaining response headers are described in Authentication.
When the service is at capacity it answers 503 with a Retry-After header. See Errors.
Errors
The error body and every code.
Performance
Choosing a time limit for your problem size.