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


Koop is a highly-extensible Javascript toolkit for connecting incompatible spatial APIs. Out of the box it exposes a Node.js server that can translate GeoJSON into the Geoservices specification supported by the ArcGIS family of products. Koop can be extended to translate data from any source to any API specification. Don’t let API incompatiblity get in your way, start using one of Koop’s data providers or write your own.


If you want to run Koop right away. You can use one of the “Providers” below in the Koop Sample App.

If you want to develop on Koop, it’s usually best to start by creating a Provider. You can read more about that below or check out:

Components of Koop


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
Google Sheets npm travis
Google Fusion Tables npm travis
Marklogic npm travis


Koop uses outputs to serve data in open specifications like Geoservices so data can be used in clients that support them.

name version build status
Geoservices 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
Memory npm travis
PostGIS npm travis


Koop uses plugins to add extra functionality not supported by other plugin types.

name version build status
File Exporter npm travis
Tile Generator npm travis
Queue npm travis
Logger npm travis
Worker 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.