Skip to main content

Overview

These limits apply to POST /v3/routing/solve, /v3/routing/evaluate and /v3/routing/suggest. Most are checked before any travel times are fetched, so an oversized request fails fast and is reported by ?validate_only=true 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
See Errors for the full error body.

Request

Solve time

time_limit_s is whole seconds 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. 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.
The four-dimension limit counts names, not vehicles. A typo such as wieght on one job counts as a dimension of its own. When you hit this limit unexpectedly, read the names in the error message.

Relations

Values

Prices

Amounts are in your currency. Prices have lower ceilings than drop_fee and depots[].cost_per_visit. 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 with 429, 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 report your rate limit and how much of it is left. 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.