Getting to know the ArcREST Python package

ArcREST is a Python package library developed by Esri. It provides a set of python tools to assist working with ArcGIS REST API for ArcGIS Enterprise (formerly ArcGIS Server), ArcGIS Online (AGOL), and ArcGIS WebMap JSON. The first release was in 2014 and latest release number (v3.5.9) dates from January this year. The GitHub page mentions that ArcREST is not a full implementation of the Esri REST API, but more contributors can make this happen. The requirements for the latest version are a working version of Python (any version between 2.7.x and 3.4), numpy and an installed version of ArcPy and an ArcGIS Desktop version from 10.2 and upwards. A GitHub page shows how to install the package and get started. Also available are a set of example scripts and Jupyter Notebooks for Python 3 users.

The package can be used to add, delete, update and query Feature Services, upload attachments to feature services, assist in managing and publishing content, it allows users to control, migrate and update online content, manage users on Portal, ArcGIS Enterprise, and ArcGIS Online sites and more.

Differences between ArcREST and Python API for ArcGIS

Although the package has not been marketed as much as the Python PI for ArcGIS, both are expansive, well written, and have a target audience and/or intended use. With more capabilities becoming available with the Python API for ArcGIS, some users have been asking if there’s overlap in functionality between both libraries and what package to learn first.

One important difference between the two is that ArcREST is supported and mainted through a community of developers through GitHub, whereas the Python API is supported by an Esri support team. A second difference is that ArcREST is provides support for python 2 and 3, which means there is coverage for both Pro and ArcGIS Desktop users. The Python API for ArcGIS only supports Python 3. As Esri is moving forward to substitute ArcMap with Pro, it´s more likely that the Python API will be a first choice instead of ArcREST, but as long as ArcMap is around, ArcREST will advance too. One example of overlapping functionality is that the Python API for ArcGIS can now too be used to access ArcGIS Enterprise.