OSM Features API Playground
Explore real OpenStreetMap features from the GeoJSON API. Preset buttons load curated tag filters you can inspect and edit. Results shown in map and table view.
Style
Preset
Advanced options
Actual API params that presets populate. Lower map zoom also sometimes filters tags internally.
Query Results
These tables show the query results split by geometry type. There are 0 features in view.
Show Output
GET /v2/osm_features
GET /v2/osm_features is the OSM Features API. Send a bounding box or a location plus radius, filter with native OpenStreetMap tags, and receive a GeoJSON FeatureCollection. The same route also serves FlatGeobuf, GeoParquet, CSV, and TSV when you set the Accept header. Tag filters require a spatial anchor. Authenticate with an API key.
| Parameter | Example | What it does |
|---|---|---|
bbox | min_lon,min_lat,max_lon,max_lat | Features that intersect this box. One of two spatial anchors, the other being location plus radius. |
location, radius | 59.334,18.063 and 500 | Point as lat,lng plus radius in metres. Tier caps differ for tagged vs tag-free queries. |
tags | building or amenity=cafe | AND filter. Repeat for multiple conditions. Use key=value or a bare key for key-exists. |
or_tags | highway=cycleway | OR filter. The whole group is ANDed with tags and the spatial anchor. |
not_tags | access=private | Exclusion filter. Repeat to drop several keys or key=value pairs. |
type | node, way, relation | OSM element types. Comma-separated. Omit to query all three. |
shape | line, polygon, or all | Geometry class for ways and relations. Nodes stay points. Example: type=way&shape=polygon&tags=building. |
limit, cursor | 1000 | Page size per table. Next page uses X-Next-Cursor from the previous response. Also returned: X-Returned, X-Has-More. |
osm_ids | 111,222,333 | Direct ID lookup. Mutually exclusive with bbox, location, and tag filters. |
Optional size filters (min_area_m2, max_area_m2, min_length_m, max_length_m) and zoom are on this playground under Advanced options. Full schema, encodings, and live try-it are in the OpenAPI docs.
How It Works
GET /v2/osm_features returns a GeoJSON FeatureCollection for a bounding box or a location plus radius. Filter with OSM tags. Preset buttons fill those params so you can see exactly what the query uses.
Loading source from GitHub...
Source: Python · TypeScript
Presets cover buildings, roads and paths, parks, food and dining, shops and commerce, public transport, leisure and sports, natural features, and waterways. Edit any field to retune the live query. MapLibre renders the resulting points, lines, and polygons on the basemap style you pick.
Use the API directly with your own key for production workloads. The full reference is available in the API docs.
More examples
Places API Playground
Live POI search and nearby (cafes, restaurants, pharmacies, ATMs, EV chargers, etc with opening hours).
Cycling Trail Finder
Use OR-combined tag filters to find bike-permitted paths and forestry tracks.
Walking Route Planner
Build Dijkstra-based walking directions on a real OSM footway network.
Restaurant Guide
Fetch restaurants with names, cuisine types, and map pins - handling both point and polygon geometries.