arcgis
ArcGIS API for Python
What it is and what it does
The ArcGIS API for Python is Esri's official library for working with ArcGIS services and geospatial data in Python. It provides tools for vector and raster analysis, geocoding, routing, map visualization, and GIS administration—all backed by Esri's Web GIS infrastructure and curated geographic datasets. The library integrates with the scientific Python ecosystem (numpy, pandas, matplotlib, dask) and supports Jupyter notebooks for interactive exploration.
You use it to query and analyze maps and spatial data, create web-based visualizations, perform geocoding and routing operations, and manage GIS resources like users, groups, and data items. It works with both Esri's ready-to-use datasets and your own data, making it suitable for spatial data science, cartography, and enterprise GIS administration workflows.
Use it for:
- Perform vector and raster spatial analysis on geographic datasets using Esri's curated data sources.
- Build interactive web maps and visualizations in Jupyter notebooks with rich geospatial rendering.
- Geocode addresses and compute routes and directions programmatically.
- Administer GIS resources—users, groups, and information items—in an ArcGIS organization.
- Integrate spatial analysis into data science pipelines using pandas and dask for large-scale processing.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Access Esri's ArcGIS services and geospatial data through Python, enabling vector and raster analysis, geocoding, mapping, and GIS administration from a single library.
Yes, if you work with ArcGIS services or Esri data and need programmatic access from Python. The library is actively maintained, has low install friction, and integrates well with the scientific Python stack. However, review the Esri MLA license terms carefully before use in commercial or redistributed contexts, and be aware that the 25 runtime dependencies create a substantial environment footprint.
Install
arcgis on PyPI
pip
pip install arcgisuv
uv add arcgispoetry
poetry add arcgisInstalling arcgis
Before you install
Low install friction with a pure-wheel distribution. Active maintenance status and support for current Python versions (3.11–3.14). Heavy dependency footprint (25 runtime packages including numpy, pandas, matplotlib, dask) means a substantial environment; verify compatibility with your existing stack.
License in practice
Licensed under Esri Master License Agreement (MLA), not an open-source license. License treatment is unclear in the system; review the MLA terms directly before use in commercial or redistributed contexts.
Quickstart
pip install arcgis
from arcgis.gis import GIS
gis = GIS()
map_widget = gis.map()
Requires Python 3.11–3.14; ArcGIS services may require authentication or API credentials for full functionality.
Verify before relying
- Whether Esri MLA permits commercial use or redistribution without additional licensing.
- Whether the 25 runtime dependencies can coexist peacefully in environments with conflicting versions of numpy, pandas, or matplotlib.
- Specific performance or memory overhead of the full dependency tree in production deployments.
Package facts
| License | Esri Master License Agreement (MLA) - http://www.esri.com/LEGAL/pdfs/mla_e204_e300/english.pdf (unclear) |
| Python support | supports the current Python release (<3.15,>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 25 — pillow, urllib3, cachetools, lxml, cryptography, pandas, numpy, matplotlib, keyring, pylerc, ujson, truststore, pywin32, geomet, requests, requests-oauthlib, requests_toolbelt, pyspnego, dask, matplotlib-inline, pyarrow, puremagic, pydantic, networkx, websocket-client |
| Maintenance | actively maintained — 115 days since the last release |
| First released | |
| Downloads | 229,270/month — #9,135 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: arcgis-2.4.3-py3-none-any.whl
Keywords: gis, arcgis, geographic, spatial, spatial-data, spatial-data-analysis, spatial-analysis, data-science, maps, mapping, web-mapping, python, native-development
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
mapboxA Python client library for Mapbox web…
permissive · top 15,000 on PyPI
pyshpPyShp reads and writes ESRI Shapefiles in pure…
permissive · top 5,000 on PyPI
arcgis2geojsonConverts ArcGIS JSON format to GeoJSON format,…
permissive · top 15,000 on PyPI
geopandasGeoPandas extends pandas DataFrames to handle…
permissive · top 1,000 on PyPI
accessCalculates spatial accessibility metrics to…
permissive · top 15,000 on PyPI
whiteboxWhitebox is a Python frontend to WhiteboxTools,…
permissive · top 15,000 on PyPI
leafmapLeafmap enables interactive geospatial mapping…
permissive · top 15,000 on PyPI
geodatasetsGeodatasets provides a curated database of…
permissive · top 15,000 on PyPI
osmiumosmium provides Python bindings for the…
permissive · top 15,000 on PyPI
rasterstatsRasterstats computes summary statistics (mean,…
permissive · top 15,000 on PyPI