Skip to main content

Python version of the R arcos package

Project description


Build Status

Note: as of 5/20/2021 you may need to run from arcospy import arcospy. You can then access functions as arcospy.county_raw() among others. Will attempt to resolve this in the coming weeks.


Welcome to arcospy, the python version of the R arcos package maintained by The Washington Post. arcospy is the result of a R-to-python translation project carried out at the University of Maryland in the Fall of 2019. The project was motivated a Washington Post data-driven story on a large pain pill database recently made publicly available.

The arcospy module was built to offer the exact same functionality as arcos, with the only difference being the ability to run the API calls in python! All of the commands in arcospy inherit the names from the original commands in arcos. Both arcos and arcospy act as wrappers for the DEA ARCOS dataset.


arcospy is hosted on PyPI and is pip installable. To install arcospy on your machine, start a new terminal and run the following commands:

$ pip install arcospy


arcospy requires pandas>=0.20.0, requests>=2.0.0, and io.


Updates (will be posted periodically):

  • 5/20/2021: Changes in API payload required a minor update to certain raw data commands.
  • 9/14/2020: Updated docs to reflect forthcoming publication of arcos and arcospy in JOSS.
  • 8/1/2020: Renamed demos to docs for development consistency. Added another example notebook demonstrating acquisition and manipulation of pharmacy-level data. Planning gathering of additional ARCOS reports.
  • 3/18/2020: Added four new commands for business-level data, as well as updating documentation to reflect additional years now present in the data (up to 2014).
  • 3/1/2020: Re-organized repository for readability. Updated testing documents. Fixed two small parameter issues with state-level query commands. 1.0.8 live and stable.
  • 1/22/2020: Carried out PEP8 styling for commands, added help information, and package header. Re-published package as 1.0.6 as the package is now considered stable.
  • 1/14/2020: Reformatted to provide more specific headers, installation instructions, requirements, and additional information.
  • 12/10/2019: added a new folder called demos. Inculdes a basic getting started guide as well as an introduction to making the data spatial.


All functions are available on The Washington Post reference page here. Example notebooks in python are available in the docs folder. Additional example use cases are available in R here.

Data can be gathered at the pharmacy, distributor, county, or state as the geographic unit of analysis. Depending on the geographic level, there may be raw, summarized, or supplemental data available. For example, the county_raw() command returns each individual ARCOS record for a given county from 2006 to 2014. However, the summarized_county_annual() command returns the annual summarized totals for a given county for each year of 2006 to 2014.


The following is lifted directly from

Contributions are welcome to both arcos and arcospy. For major contributions, please fork the master arcos or arcospy branch and then open a pull request with the suggested changes. We will then review the change and determine if there is a generalizable solution to both R and Python. If there is no generalizable solution, we will still strive to make your contribution visible on the respective Github page.


Improvements to the documentation for arcos and arcospy are welcome. As stated above, we will try to generalize all contributions to both packages. For example, if the wording around a specific command is unclear, we can improve the wording in both packages. Additionally, if there are features of a command that you believe should be included in the primary documentation, please let us know so we can improve the user experience.


Presently, the core functionality of the API is maintained by the Data Reporting Team at The Washington Post. There is ample room for users to suggest functions that can be added to arcos and arcospy. For example, users might suggest functions that download national or regional sets of data by looping existing commands.


Trackable issue pages are available on both the master arcos or arcospy Github pages. Issues may be related to anything from malfunctioning commands to inconsistent data. We encourage an active discussion and hope to readily address any errors. We recommend that when submitting an issue users provide specific tags and examples of the aberrant behavior. If you are able to solve an issue with the code independently, please open a pull request with the corrected code and a short explanation as to the bug fix.

Disclaimer: please note that the author of this package, Jeff Sauer, is not affiliated with the Washington Post in any official capacity.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arcospy-1.3.0.tar.gz (8.5 kB view hashes)

Uploaded source

Built Distribution

arcospy-1.3.0-py3-none-any.whl (9.9 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page