Custom Datasets

Upload your own GeoJSON and query it alongside 8 billion OpenStreetMap features. One API, all your data.

How it works

1

Upload your GeoJSON

POST a FeatureCollection or individual features. Replace, merge, or append to existing data.

2

Plaza indexes it

Features are tiled to H3, spatially indexed, and stored alongside the OSM planet.

3

Query everything together

Use REST or PlazaQL to search your data and OSM in the same request. Spatial filters, tag filters, and set operations all work.

See it in action

A real API request, visualized.

terminal
$

Who uses this

Teams building with Custom Datasets.

Store locators

Upload locations, query by proximity. Combine with geocoding to find the nearest store to any address.

Custom boundaries

Sales territories, delivery zones, or franchise areas as polygons. Spatial queries check which zone a coordinate falls in.

Data enrichment

Query your features against OSM in the same request. Find all restaurants within 500m of each office location.

1M

Features per dataset

100

Datasets per account

8

CRUD endpoints

3

Upload modes

What you can build

Example apps powered by Custom Datasets.

Store Locator

Find the nearest location to any address with proximity search.

Custom Datasets Geocoding

Delivery Zone Checker

Upload service areas as polygons, check if an address is covered.

Custom Datasets Geocoding PlazaQL

Asset Dashboard

Track fleet positions and query by bounding box in real time.

Custom Datasets Reverse Geocoding

Start building

# Create a dataset
curl -X POST https://plaza.fyi/api/v1/datasets \
-H "x-api-key: $PLAZA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Store Locations"}'
# Upload GeoJSON features
curl -X POST https://plaza.fyi/api/v1/datasets/$DATASET_ID/upload \
-H "x-api-key: $PLAZA_API_KEY" \
-F "file=@stores.geojson" \
-F "mode=replace"
View endpoints
Method Path Description
POST /api/v1/datasets Create a new dataset
GET /api/v1/datasets List your datasets
GET /api/v1/datasets/:id Get dataset metadata
POST /api/v1/datasets/:id/upload Upload GeoJSON features (replace, merge, or append)
POST /api/v1/datasets/:dataset_id/features Create individual features
GET /api/v1/datasets/:dataset_id/features List features with cursor-based pagination
PATCH /api/v1/datasets/:dataset_id/features/:id Update a feature's geometry or properties
DELETE /api/v1/datasets/:dataset_id/features/:id Delete a feature

How it compares

Google: No custom data hosting
Plaza: Upload GeoJSON, query alongside 8B+ OSM features
Mapbox: Tilesets (rendering only)
Plaza: Full CRUD + spatial queries on your data
Self-hosted PostGIS: You manage the infra
Plaza: Managed storage from 1 MB free to 20 GB+

Common questions

What formats can I upload?

GeoJSON FeatureCollections. Upload a file via the REST API or dashboard. Every feature needs a valid geometry (Point, LineString, Polygon, or Multi* variants) and optional properties.

Can I query my data alongside OpenStreetMap?

Yes. Use the datasets parameter on any query endpoint, or use PlazaQL's dataset() source to mix your data with OSM in a single query.

How much storage is included?

Free tier includes 1 MB. Pro plans include 1 GB to 20 GB depending on the tier. Overage is $5/GB/month. Enterprise gets custom storage.

What are the upload modes?

Replace (swap all features), merge (upsert by ID), and append (add without removing). Choose the mode that fits your update pattern.