We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
Documentation
Everything you need to query the complete OpenStreetMap planet dataset.
Getting Started
Authentication, API basics, and your first query in 30 seconds.
Query Languages
Write queries in Overpass QL or SPARQL to extract exactly the data you need.
Geocoding
Convert addresses to coordinates and coordinates to addresses worldwide.
Routing
Calculate routes, distances, and travel times between any two points.
Streaming
Stream large result sets as chunked GeoJSON, XML, or CSV responses.
SDKs & Libraries
Official client libraries for TypeScript, Python, and more.
Migration Guides
Step-by-step guides to migrate from Google Maps or Mapbox.
Tutorials
Build real projects: cafe finders, route planners, delivery zone maps.
Quickstart
By the end of this guide, you'll have made your first Plaza API call and seen real OpenStreetMap data come back.
Get an API key
Sign up at plaza.fyi and create a key from your dashboard. It starts with pk_live_ and looks something like pk_live_a1b2c3d4e5f6....
You only see the full key once. Copy it right away -- Plaza stores a hash, not the original.
Make a request
Find every cafe within 500 meters of the Eiffel Tower:
curl "https://plaza.fyi/api/v1/nearby?lat=48.8584&lon=2.2945&radius=500&tags=amenity%3Dcafe" \
-H "x-api-key: pk_live_YOUR_KEY"
You get back GeoJSON:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [2.2938, 48.8579] },
"properties": {
"osm_id": 12345678,
"osm_type": "node",
"tags": { "amenity": "cafe", "name": "Cafe du Trocadero" }
}
}
]
}
That's real data from OpenStreetMap. Every cafe, bench, road, and building on the planet is queryable through this API.
Try Overpass QL
If you've used the public Overpass API before, the same query language works here. Find all drinking water fountains in central Paris:
curl -X POST "https://plaza.fyi/api/v1/overpass" \
-H "x-api-key: pk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "[out:json];node[amenity=drinking_water](48.84,2.33,48.87,2.36);out;"}'
Use an SDK
Skip the HTTP boilerplate with an official SDK:
# TypeScript / Node
npm install plaza-api
# Python
pip install plaza-api
Both handle auth, pagination, retries, and streaming. See the SDK docs for details.
What to read next
- Authentication -- rate limits and key management
- REST API -- every endpoint with examples
- Overpass QL -- write spatial queries
- Streaming -- handle large result sets
- Playground -- run queries in the browser