Geo Search
Search geographic location data from OpenStreetMap. Query streets, places, and POIs by name, type, city, country, and coordinates with pagination support.
Endpoint: POST /biz/bigdata/data/geo/search
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | No | Place/street name (fuzzy match) |
| alternative_names | String | No | Alternative name (fuzzy match) |
| street | String | No | Street name (fuzzy match) |
| class_name | String | No | OSM class (fuzzy match, e.g., "highway", "place") |
| type | String | No | OSM type (fuzzy match) |
| city | String | No | City name (fuzzy match) |
| state | String | No | State/province (fuzzy match) |
| country | String | No | Country name (fuzzy match) |
| country_code | String | No | ISO 3166-1 alpha-2 country code (fuzzy match) |
| osm_type | String | No | OSM element type (fuzzy match: N=Node, W=Way, R=Relation) |
| lat | Double | No | Latitude (exact match) |
| lon | Double | No | Longitude (exact match) |
| osm_id | Long | No | OpenStreetMap element ID |
| housenumbers | String | No | House numbers (exact match) |
| pageNumber | Integer | No | Page number (default: 1) |
| pageSize | Integer | No | Page size (default: 1000) |
All search parameters are optional. Multiple parameters are combined with AND logic. Name-based fields use fuzzy matching (LIKE %value%).
Request
bash
curl -X POST "https://api.alaikis.com/std/biz/bigdata/data/geo/search" \
-H "X-API-Key: your_api_key" \
-H "X-API-Secret: your_api_secret" \
-d 'bizContent={"country_code": "DE", "city": "Berlin", "class_name": "place", "pageNumber": 1, "pageSize": 20}'Response
json
{
"code": 200,
"msg": "success",
"data": {
"content": [
{
"id": 240109189,
"osmId": 240109189,
"osmType": "N",
"name": "Berlin",
"alternativeNames": "Берлин, Berlín, Berlim",
"street": null,
"className": "place",
"type": "city",
"city": "Berlin",
"state": "Berlin",
"country": "Germany",
"countryCode": "DE",
"lat": 52.5170365,
"lon": 13.3888599,
"housenumbers": null
}
],
"totalElements": 150,
"pageNumber": 0,
"pageSize": 20
}
}Data Model
| Field | Type | Description |
|---|---|---|
| id | Integer | Internal record ID |
| osmId | Long | OpenStreetMap element ID |
| osmType | String | OSM element type (N=Node, W=Way, R=Relation) |
| name | String | Place/street name |
| alternativeNames | String | Alternative names in various languages |
| street | String | Street name |
| className | String | OSM classification class |
| type | String | OSM type within class |
| city | String | City name |
| state | String | State/province |
| country | String | Country name |
| countryCode | String | ISO 3166-1 alpha-2 country code |
| lat | Double | Latitude in decimal degrees |
| lon | Double | Longitude in decimal degrees |
| housenumbers | String | House number range |
OSM Class Reference
| Class | Description | Common Types |
|---|---|---|
| highway | Roads and paths | residential, motorway, footway |
| place | Named places | city, town, village, suburb |
| building | Buildings | yes, residential, commercial |
| amenity | Facilities | school, hospital, restaurant |
| shop | Shops | supermarket, convenience |
| tourism | Tourism | hotel, attraction, museum |
Pagination
The response uses a paginated structure:
| Field | Type | Description |
|---|---|---|
| content | Array | Result records for current page |
| totalElements | Long | Total number of matching records |
| pageNumber | Integer | Current page number (0-based) |
| pageSize | Integer | Number of records per page |
Error Codes
| Code | Description |
|---|---|
| 400 | Invalid JSON format |