Place Search API

Find OpenStreetMap places by name with fuzzy, ranked matching, and query any tag through /features

How it works

1

Search by name or type

Free-form text or structured tag queries.

2

Plaza ranks results

Fuzzy name matching over named OpenStreetMap places.

3

Get ranked places

Name, coordinates, OSM type and ID, and a relevance score.

See it in action

An example request and its response, drawn on the map.

terminal
$

Who uses this

Teams building with Place Search API.

Place discovery

Search for restaurants, parks, or attractions in any city.

Business directories

Build location-aware search for local business listings.

Data enrichment

Enrich addresses and coordinates with nearby POI data.

Fuzzy

Name matching

100

Results per page

Any tag

Filters via /features

What you can build

Example apps powered by Place Search API.

City Explorer

Discover points of interest near any location on a map.

Search Geocoding Routing

Accessibility Finder

Find wheelchair-accessible venues filtered by OSM tags.

Search PlazaQL

Travel Planner

Search for hotels, restaurants, and attractions along a route.

Search Routing Isochrone

Start building

curl -X POST "https://plaza.fyi/api/v1/search" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"limit": 10,
"q": "coffee shops manhattan"
}'
View endpoints
Method Path Description
POST /api/v1/search Fuzzy search for named places
POST /api/v1/features Query elements by bounding box and tag filters

How it compares

Google Places: $5/1K for place details
Plaza: from $0.50/1K, all fields included
Mapbox: $1.70/1K requests (Search Box)
Plaza: from $0.50/1K
Nominatim: Limited to structured queries
Plaza: Free-form text with ranked results

Common questions

What search algorithm does Plaza use?

Trigram similarity on names, so typos and partial words still match. Results are ranked by how close the name is to your query, over the index of named OpenStreetMap places.

Can I search by OSM tags?

Yes, through POST /api/v1/features, which filters by any combination of OSM tags. /search matches names. For queries like "all pubs within 500m of a train station", use PlazaQL.

Can I filter search results by area?

Yes. Pass a bounding box or a center point with a radius, or use PlazaQL for other shapes.

Does search work with non-Latin scripts?

Yes. OpenStreetMap stores names in local scripts, and the index matches Unicode text as is, so you can search for 東京駅 or القاهرة.