OSM Features API

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.

GeoJSONOSM Data ExplorerCurated tag filtersMapLibre styling

Style

Preset

comma is AND; | is OR. Use parentheses to group: (a,b)|c. Put quotations around special tag values like "Ben & Jerry's".

Advanced options

Actual API params that presets populate. Lower map zoom also sometimes filters tags internally.

OSM type
way_shape

Query Results

These tables show the query results split by geometry type. There are 0 features in view.

Show Output
View

The Endpoint

Send one request and get up to your plan's max_limit features with GET /v3/osm_features. Use 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. More information in the OSM Wiki.

ParameterExampleWhat it does
bboxmin_lon,min_lat,max_lon,max_latFeatures that intersect this box. One of two spatial anchors, the other being location plus radius.
location, radius59.334,18.063 and 500Point as lat,lng plus radius in metres. Tier caps differ for tagged vs tag-free queries.
withinrelation/155790Query features that are within this osm_id.
tagsbuilding or amenity=cafe|amenity=barJoin clauses with , (or repeat tags) to AND. | is OR; group with parentheses, (a,b)|c. Quote values containing a comma: name="Ben, Jerry's". A leading ! excludes (!access=private).
typenode, way, relationOSM element types. Comma-separated. Omit to query all three.
way_shapeline, polygon, or allGeometry class for ways and relations. Nodes stay points. Example: type=way&way_shape=polygon&tags=building.
limit100000Maximum features to return. Omitted is the plan max_limit. A lower limit truncates. A match set larger than max_limit is HTTP 400 result_too_large.
osm_ids111,222,333Direct 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. The PostGIS tables behind these params are on the schema page. Full encodings and live try-it are in the OpenAPI docs.

How It Works

GET /v3/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.