GeoJSON & Shapefile Validator
Upload a file — .geojson, or a shapefile as a single .zip or as .shp/.dbf/.shx selected together — and find out whether every geometry is valid. If it isn’t, the exact reason; if you want, we’ll fix it and you can download the result.
Private by design. Your file is processed entirely in your browser (Python via WebAssembly) — it’s never uploaded to any server, including ours. Nothing to configure, nothing to trust: the code never gets the chance to see your data.
The code itself isn’t shown here — it’s a fixed, non-editable check using Shapely/GEOS underneath; see the full article for the actual code, editable and explained line by line.
make_valid() rebuilds the geometry into an equivalent, valid form — reuses exactly the data just diagnosed above, no new reading of the file.
First run loads the Python engine — expect about a minute. Instant after that, and again each time you come back to this page.
Want to understand what makes a geometry invalid, see the actual code, or compare against R’s independent implementation? The full article uses this same engine with a gallery of common errors explained one by one.