POI Data
Query points of interest across 10+ countries: discover regions, filter by category, and download data as Parquet files using the mapular-mpoi server.
The mapular-mpoi server provides pre-indexed points of interest from Mapular's location database, spatially indexed by H3 cells.
Typical workflow
mpoi_list_regions → mpoi_list_partitions → mpoi_fetch → SQL analysis with mapular-geo
Tools
mpoi_list_regions
Discover which countries have data available.
Returns all regions with bounding boxes and row counts. Each region has a short code ("de", "nl", "be", etc.) used by every other tool.
mpoi_list_partitions(region)
Find city-level areas within a region before downloading.
Returns partition IDs (H3 level-3 cells) with center coordinates and row counts. Use this before mpoi_fetch to target a specific city rather than downloading an entire country.
mpoi_schema(region)
Inspect available columns and data types.
Key columns: name, latitude, longitude, overture_group_secondary (broad category), overture_group_tertiary (subtype).
mpoi_categories(region, group?)
Browse the POI category hierarchy with row counts.
Returns a primary → secondary tree. Pass returned values as filter inputs to mpoi_fetch or mpoi_search.
mpoi_fetch(region, h3l3?, filters?, columns?, limit?)
Download filtered POI data to a local Parquet file.
Returns the file path, row count, column list, and a row preview. Pass the file path to mapular-geo for SQL analysis.
| Param | Description |
|---|---|
region | Region code, e.g. "de" |
h3l3 | Partition ID(s) from mpoi_list_partitions — omit to fetch an entire region |
filters | Column → value(s). Use overture_group_secondary for broad categories, overture_group_tertiary for specific subtypes |
columns | Return only these fields |
limit | Max rows |
mpoi_search(region, query, lat?, lon?, radius_km?, limit?)
Quick "find X near Y" lookup — returns results directly without writing a file.
Text-matches against POI names and categories. With lat/lon, filters by radius and sorts nearest-first.
| Param | Default | Description |
|---|---|---|
radius_km | 10 | Search radius |
limit | 25 | Max results |
Example: pharmacies in Berlin
1. mpoi_list_regions → confirm "de" is available
2. mpoi_list_partitions("de") → find Berlin partition ID
3. mpoi_fetch("de", h3l3="<berlin_id>", filters={"overture_group_secondary": "health"})
→ returns /tmp/mpoi_de_<hash>.parquet with ~3,000 rows
4. Pass path to mapular-geo for SQL filtering and aggregation
Data quality
Mapular POI data may contain naming inconsistencies, duplicates, or incomplete records due to the diversity of underlying data sources. For production use, we recommend reviewing and filtering the raw output.