Points in a zone (batch)
⭐ Tests which points from a list fall inside a zone — either an administrative unit (uat=cod_siruta) or a GeoJSON polygon (poligon). Filtering orders by zone, in a single call.
Request body
Sent as JSON in the request body (Content-Type: application/json) — not in the query string.
{
"uat": 54975,
"puncte": [
{
"id": "centru",
"lat": 46.7712,
"lng": 23.6236
},
{
"id": "departe",
"lat": 44.4268,
"lng": 26.1025
}
]
}
{
"uat": 155243,
"puncte": [
{
"id": "piata-unirii",
"lat": 45.7565,
"lng": 21.229
},
{
"id": "aeroport",
"lat": 45.8099,
"lng": 21.3379
}
]
}
{
"poligon": {
"type": "Polygon",
"coordinates": [
[
[
23.55,
46.75
],
[
23.65,
46.75
],
[
23.65,
46.8
],
[
23.55,
46.8
],
[
23.55,
46.75
]
]
]
},
"puncte": [
{
"id": "a",
"lat": 46.7712,
"lng": 23.6236
},
{
"id": "b",
"lat": 44.4268,
"lng": 26.1025
}
]
}
{
"uat": 1071,
"puncte": [
{
"id": "ciugud",
"lat": 46.028,
"lng": 23.61
}
]
}
Query parameters
How it behaves
- Tests which points from a list fall inside a zone — either an administrative unit (
uat=cod_siruta) or a GeoJSON polygon (poligon). - One call to filter orders by zone. Each point can carry its own
id(otherwise its index is used).
What it is for
- Filtering a batch of orders by delivery zone: you send every coordinate in one call and learn which are deliverable.
- Bucketing customers by unit or polygon, for campaigns or for routing to the right warehouse.
- Bulk-validating the points of a fleet or a network of sites against a defined zone.
Response structure
Response examples
body: {"uat": 54975, "puncte": [{"id": "centru", "lat": 46.7712, "lng": 23.6236}, {"id": "departe", "lat": 44.4268, "lng": 26.1025}]} — “centru” is in Cluj-Napoca, “departe” in Bucharest.
{
"data": {
"in_zona": [
"centru"
],
"rezultate": [
{
"id": "centru",
"in_zona": true
}
]
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": null
}
}
}
body: {"uat": 155243, "puncte": [{"id": "piata-unirii", "lat": 45.7565, "lng": 21.2290}, {"id": "aeroport", "lat": 45.8099, "lng": 21.3379}]}
{
"data": {
"in_zona": [
"piata-unirii"
],
"rezultate": [
{
"id": "piata-unirii",
"in_zona": true
}
]
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": null
}
}
}
body: {"poligon": {"type": "Polygon", "coordinates": [[[23.55, 46.75], [23.65, 46.75], [23.65, 46.80], [23.55, 46.80], [23.55, 46.75]]]}, "puncte": [{"id": "a", "lat": 46.7712, "lng": 23.6236}, {"id": "b", "lat": 44.4268, "lng": 26.1025}]}
{
"data": {
"in_zona": [
"a"
],
"rezultate": [
{
"id": "a",
"in_zona": true
}
]
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": null
}
}
}
body: {"uat": 1071, "puncte": [{"id": "ciugud", "lat": 46.0280, "lng": 23.6100}]}
{
"data": {
"in_zona": [
"ciugud"
],
"rezultate": [
{
"id": "ciugud",
"in_zona": true
}
]
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": null
}
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 422 | parametri_invalizi | puncte or the zone (uat/poligon) is missing. |
| 429 | cota_depasita | The plan's monthly quota has been exceeded (see Retry-After). |
All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.
{
"eroare": {
"cod": "parametri_invalizi",
"mesaj": "puncte or the zone (uat/poligon) is missing."
}
}