PlazaQL Query API
A spatial query language for OpenStreetMap โ filter, combine, and export in one request
How it works
Write your query
PlazaQL syntax โ clean, composable query language.
Plaza executes it
Parsed with tree-sitter, run against H3-indexed OSM data.
Get results
GeoJSON, CSV or NDJSON, streamed as it's produced.
See it in action
An example request and its response, drawn on the map.
Who uses this
Teams building with PlazaQL Query API.
Data extraction
Pull structured OSM data for analysis and research.
Custom maps
Query specific features for thematic map layers.
Automated pipelines
Integrate OSM queries into ETL and data pipelines.
4
Output formats
H3
Spatial index
1
Request per query
What you can build
Example apps powered by PlazaQL Query API.
Infrastructure Mapper
Query and visualize power lines, water systems, and roads.
OSM Data Pipeline
Automated extraction of POI data for analytics dashboards.
Urban Planner
Analyze building footprints and zoning within boundaries.
Start building
curl -X POST "https://plaza.fyi/api/v1/query" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"data": "$nyc = boundary(name: \"Manhattan\");\n$$ = search(node, amenity: \"hospital\").within($nyc);"
}'
View endpoints
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/query | Execute a PlazaQL query |
How it compares
Common questions
What output formats does PlazaQL support?
JSON (paginated GeoJSON, the default), streamed GeoJSON, CSV and NDJSON. Pick one with the format field of the request.
How does this differ from overpass-api.de?
Plaza runs PlazaQL against its own H3-indexed database. There's no shared queue: each key has its own rate limit, up to 10K/min on Enterprise, and each plan has a request timeout of 30 to 120 seconds.
Does Plaza support boundary queries and set operations?
Yes. Use boundary(name: "Berlin") to query by named boundaries, + and - for union and difference, and bind results to variables with $name = expr to reuse them.