A backend proxy for reverse geocoding, address autocomplete, and place details, with
results biased to Venezuela. Paths are relative to the /api/v1 prefix;
/geocoding/reverse is public, while
/geocoding/autocomplete and /geocoding/place require Authorization: Bearer {token}.
See Common errors.
| Method | URI | Role | Description |
|---|---|---|---|
GET |
/geocoding/reverse |
Public | Coordinates → nearest address |
GET |
/geocoding/autocomplete |
any | Address predictions for a query |
GET |
/geocoding/place |
any | Resolve a place id to a precise location |
All three share the same upstream failure modes: 503 GeocodingNotConfigured when
the backend has no Google Maps API key, and 502 UpstreamError for any other
upstream failure.
Resolves a coordinate pair to its nearest street address.
Query
| Field | Type | Required | Rules |
|---|---|---|---|
lat |
number | yes | between −90 and 90 |
lng |
number | yes | between −180 and 180 |
Response 200
{
"address": "Av. Principal, Las Mercedes, Caracas",
"components": [ { "long_name": "Las Mercedes", "short_name": "Las Mercedes", "types": ["neighborhood"] } ],
"placeId": "ChIJ..."
}
When the coordinates match nothing, the response is { "address": null, "components": null }.
Errors
| Status | Body | When |
|---|---|---|
503 |
{ "error": "GeocodingNotConfigured", "message": "…" } |
No Google Maps API key on the backend |
502 |
{ "error": "UpstreamError", "message": "…" } |
Google Maps returned an error |
Address predictions for a partial query, biased to Venezuela. Pass a sessionToken
to group keystrokes into one billable Google session.
Query
| Field | Type | Required | Rules |
|---|---|---|---|
query |
string | yes | 2–120 chars |
sessionToken |
string | no | ≤ 64 chars |
Response 200
{
"suggestions": [
{
"placeId": "ChIJ...",
"description": "Av. Principal, Las Mercedes, Caracas",
"mainText": "Av. Principal",
"secondaryText": "Las Mercedes, Caracas"
}
]
}
suggestions is [] when Google returns no matches.
Errors
| Status | Body | When |
|---|---|---|
503 |
{ "error": "GeocodingNotConfigured", "message": "…" } |
No Google Maps API key on the backend |
502 |
{ "error": "UpstreamError", "message": "…" } |
Google Maps returned an error |
Resolves a placeId (typically from autocomplete) into a precise location. Reuse the
same sessionToken you used for autocomplete.
Query
| Field | Type | Required | Rules |
|---|---|---|---|
placeId |
string | yes | 1–300 chars |
sessionToken |
string | no | ≤ 64 chars |
Response 200
{
"placeId": "ChIJ...",
"address": "Av. Principal, Las Mercedes, Caracas",
"latitude": 10.487,
"longitude": -66.88
}
Errors
| Status | Body | When |
|---|---|---|
503 |
{ "error": "GeocodingNotConfigured", "message": "…" } |
No Google Maps API key on the backend |
502 |
{ "error": "UpstreamError", "message": "…" } |
Google Maps returned an error or the place had no geometry |
# Reverse geocode a coordinate (public)
curl "/api/v1/geocoding/reverse?lat=10.487&lng=-66.88"
# Autocomplete + resolve, sharing a session token
curl "/api/v1/geocoding/autocomplete?query=Av%20Principal&sessionToken=abc123" \
-H "Authorization: Bearer {token}"
curl "/api/v1/geocoding/place?placeId=ChIJ...&sessionToken=abc123" \
-H "Authorization: Bearer {token}"