arcgis2geojson
A Python library for converting ArcGIS JSON to GeoJSON
What it is and what it does
arcgis2geojson is a format converter that transforms ArcGIS JSON objects into GeoJSON-compliant Feature objects. It accepts input as either JSON strings or Python dictionaries and returns the corresponding GeoJSON format, preserving attributes as properties and converting ArcGIS geometry structures (rings, spatial references) into standard GeoJSON coordinate arrays. The package includes both a Python library API and a command-line tool for batch conversion or piped processing.
The library is a partial port of ESRI's official arcgis-to-geojson-utils, originally Apache 2.0 licensed but relicensed here under MIT. It has no external runtime dependencies, making installation straightforward. The package actively supports modern Python versions (3.10 through 3.14) and has been maintained since 2017, with recent activity as of August 2026.
Use it for:
- Convert ArcGIS REST API responses to GeoJSON for use in web mapping libraries like Leaflet or Mapbox
- Batch-process ArcGIS JSON export files to GeoJSON format via the command-line tool for data pipeline workflows
- Integrate ArcGIS data sources into GeoJSON-based geospatial analysis or visualization tools
- Transform spatial attributes and geometries from ArcGIS services for interoperability with GeoJSON-native systems
- Pipe ArcGIS JSON data through the CLI for real-time format conversion in shell scripts or data ETL processes
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts ArcGIS JSON format to GeoJSON format, supporting both string and dictionary inputs, with a command-line interface for file and stream processing.
Yes. The package solves a specific, well-defined problem with zero external dependencies, permissive licensing, active maintenance, and no known vulnerabilities. Install it if you need to convert ArcGIS JSON to GeoJSON; skip it if you work exclusively with one format.
Install
arcgis2geojson on PyPI
pip
pip install arcgis2geojsonuv
uv add arcgis2geojsonpoetry
poetry add arcgis2geojsonInstalling arcgis2geojson
Before you install
Low friction: pure Python wheel with no runtime dependencies. Actively maintained as of 2026-08-10 with recent release history.
License in practice
MIT license (permissive). Derivative of ESRI's Apache 2.0 licensed arcgis-to-geojson-utils; relicensed under MIT for this port.
Quickstart
pip install arcgis2geojson
from arcgis2geojson import arcgis2geojson
input_dict = {'attributes': {'OBJECTID': 123}, 'geometry': {'rings': [[[41.8359375, 71.015625], [56.953125, 33.75], [21.796875, 36.5625], [41.8359375, 71.015625]]], 'spatialReference': {'wkid': 4326}}}
output = arcgis2geojson(input_dict)
print(output)
Requires Python 3.10 or later.
Verify before relying
- Whether the conversion handles all ArcGIS geometry types (points, polylines, polygons, multipart) or only a subset
- Performance characteristics on large ArcGIS datasets or streaming scenarios
- Handling of spatial reference systems beyond the wkid examples shown
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 296 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 140,624/month — #11,266 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: arcgis2geojson-3.1.1-py3-none-any.whl
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
geojsonEncodes, decodes, and represents GeoJSON…
permissive · top 5,000 on PyPI
kml2geojsonConverts KML files to GeoJSON format,…
permissive · top 15,000 on PyPI
geometConverts between GeoJSON, WKT/WKB, Extended…
permissive · top 5,000 on PyPI
osm2geojsonConverts OpenStreetMap and Overpass API data…
permissive · top 15,000 on PyPI
arcgisAccess Esri's ArcGIS services and geospatial…
unclear · top 15,000 on PyPI
djangorestframework-gisAdds geographic and GeoJSON support to Django…
permissive · top 15,000 on PyPI
plpygisConverts geometries between WKB/EWKB, WKT/EWKT,…
copyleft · top 15,000 on PyPI
pydantic-geojsonProvides Pydantic-based type-safe validation…
permissive · top 15,000 on PyPI
pygeoifPyGeoIf provides lightweight, pure-Python…
copyleft · top 15,000 on PyPI
pyshpPyShp reads and writes ESRI Shapefiles in pure…
permissive · top 5,000 on PyPI