An Open Geospatial ETL Engine

npm build status

Leave geospatial data where it lives and transform it into GeoJSON, CSV, KML, a Shapefile, or a Feature Service dynamically.

ArcGIS Online                   GeoJSON
Socrata                         CSV
CKAN             => Koop =>     KML
Github                          Shapefile
OpenStreetMap                   Feature Service

Core Concepts

Koop is, first and foremost, a web server. It is written in JavaScript and runs in the Node.js runtime environment. It acts as middleware for the Express web framework. Koop extracts data from third party providers, transforms that data into GeoJSON and loads it into a cache database. From that point a user can query the data as a feature service or download it in various formats.


Koop uses providers to transform data from different sources – most often open data providers that serve geospatial data on the web.

name version build status
ArcGIS Online npm travis
Socrata npm travis
GitHub npm travis
Gist npm travis


Koop uses a cache to store data from third party providers. This helps reduce requests to other servers, bypass rate limiting issues, and speed up response times.

name version build status
PostGIS npm travis


Koop has plugins that add extra functionality not covered by providers and caches.

name version build status
Koop Tile Plugin npm travis

Contributions welcome

Koop is entirely open source. Check us out, file an issue, open a pull request, and help grow the project to make it as useful as possible to the geospatial community.