Skip to content

Pricing

A price is calculated from the pickup and dropoff coordinates, adjusted for cargo size.

Окно терминала
curl -X POST https://api.govza.app/v1/delivery/quotes \
-H "Authorization: Bearer $GOVZA_KEY" \
-H "Content-Type: application/json" \
-d '{
"pickup": { "latitude": 43.342439, "longitude": 45.693597 },
"dropoffs": [{ "latitude": 43.320872, "longitude": 45.691756 }],
"cargo_size": "M"
}'
{
"success": true,
"data": {
"quote_id": "…",
"price": 300,
"distance": 2400,
"duration": 600,
"expires_at": "2026-08-11T12:05:00.000Z",
"dropoffs": [
{ "route_id": "…", "distance": 2400, "duration": 600, "cargo_size": "M", "price": 300 }
]
}
}

distance is in metres and duration in seconds.

GET /pricing returns the distance bands every price is built from — the same table the Govza app shows.

Окно терминала
curl https://api.govza.app/v1/delivery/pricing \
-H "Authorization: Bearer $GOVZA_KEY"
{
"success": true,
"data": {
"base_price": 200,
"first_threshold_km": 3,
"band_width_km": 2,
"band_step": 50,
"max_threshold_km": 15,
"per_km_over": 35,
"cargo_size_step_fee": 50,
"bands": [
{ "min_km": 0, "max_km": 3, "price": 200, "per_km_over": null },
{ "min_km": 3, "max_km": 5, "price": 250, "per_km_over": null },
{ "min_km": 5, "max_km": 7, "price": 300, "per_km_over": null },
{ "min_km": 7, "max_km": 9, "price": 350, "per_km_over": null },
{ "min_km": 9, "max_km": 11, "price": 400, "per_km_over": null },
{ "min_km": 11, "max_km": 13, "price": 450, "per_km_over": null },
{ "min_km": 13, "max_km": 15, "price": 500, "per_km_over": null },
{ "min_km": 15, "max_km": null, "price": 550, "per_km_over": 35 }
]
}
}

A distance belongs to a band when it is at least min_km and less than max_km. The last band has max_km: null: beyond max_threshold_km the price is the band’s price plus per_km_over for each kilometre started. The table is the same for every account; render it in your interface or check a quote against it, and price a concrete trip with POST /quotes.

The cargo surcharge applies to each dropoff.

  • a top-level cargo_size applies to every dropoff;
  • a dropoff may set its own cargo_size, which takes precedence;
  • the default is S.

Each dropoff’s price already includes its surcharge, and the quote’s price is the sum of the dropoffs.

routing_mode decides how the trip is routed:

  • sequential (default) — one chained trip through every dropoff in order;
  • parallel — each dropoff is priced independently from the pickup.

Five minutes. Pass quote_id to POST /orders to hold the price.