Check availability
const url = 'https://api.govza.app/v1/delivery/availability';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"pickup":{"latitude":43.342439,"longitude":45.693597},"dropoffs":[{"latitude":43.320872,"longitude":45.691756}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.govza.app/v1/delivery/availability \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "pickup": { "latitude": 43.342439, "longitude": 45.693597 }, "dropoffs": [ { "latitude": 43.320872, "longitude": 45.691756 } ] }'Answers whether Govza can take a delivery from this pickup right now: whether the points are in the service area, and whether a courier is free near the pickup and how soon they would reach it. Nothing is created or reserved. Call it at checkout to decide whether to offer Govza delivery.
The courier status reflects this moment and changes minute to minute;
it is not a promise, and POST /orders does not consult it.
Authorizations
Заголовок раздела «Authorizations»Request Bodyrequired
Заголовок раздела «Request Bodyrequired»Coordinates only, like POST /quotes: you can check before the
customer has typed an address.
object
object
Optional. Checked against the service area only.
object
Example
{ "pickup": { "latitude": 43.342439, "longitude": 45.693597 }, "dropoffs": [ { "latitude": 43.320872, "longitude": 45.691756 } ]}Responses
Заголовок раздела «Responses»Availability was checked.
object
object
true when an order would be accepted and a courier is free
near the pickup — reasons is empty exactly when this is
true. limited still counts as available.
object
One entry per requested dropoff, in the same order.
object
object
available— free couriers near the pickup outnumber the orders already waiting there.limited— someone is free, but the orders already waiting could take every one of them first; expect a longer wait.unavailable— no courier is free near the pickup. An order can still be created and will wait for one.
Estimated minutes until a courier reaches the pickup if
the order is created now: the nearest free courier’s
driving time plus the usual time to accept. null when
the status is unavailable.
Why available is false. Empty otherwise.
Example
{ "data": { "available": true, "pickup": { "in_service_area": true }, "dropoffs": [ { "in_service_area": true } ], "couriers": { "status": "available", "pickup_eta": 6 }, "reasons": [], "checked_at": "2026-10-05T12:00:00.000Z" }}The payload was rejected. error.details is a JSON array of
{ field, message } covering every offending field, not just the
first, so one response is enough to fix the request.
object
object
Example
{ "success": false, "error": { "id": "validation.delivery_payload_invalid", "message": "dropoffs.0.address.latitude: latitude is required", "details": "[{\"field\":\"dropoffs.0.address.latitude\",\"message\":\"latitude is required\"}]" }}The key is missing, malformed, revoked, or its account can no longer create orders.
object
object
Example
{ "success": false}Too many requests for this key in the current minute.
object
object
Example
{ "success": false}