API Access
Access dataset files directly from scripts, code, or AI agents.
Browse dataset files
API Access
Access dataset files directly from scripts, code, or AI agents.
Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.
Start with these files — they give you everything you need to understand and access the dataset.
- 1. Fetch datapackage.json to inspect schema and resources
- 2. Download data resources listed in datapackage.json
- 3. Read README.md for full context
Data Files
Explore with AIsandy-311-calls-by-day
| Field | Type | Format |
|---|---|---|
| date | string | default |
| nyc-3-1-1 | integer | default |
| acs | integer | default |
| bpsi | integer | default |
| cau | integer | default |
| chall | integer | default |
| dep | integer | default |
| dob | integer | default |
| doe | integer | default |
| dof | integer | default |
| dohmh | integer | default |
| dpr | integer | default |
| fema | integer | default |
| hpd | integer | default |
| hra | integer | default |
| mfanyc | integer | default |
| mose | integer | default |
| nycem | integer | default |
| nycha | integer | default |
| nycservice | integer | default |
| nypd | integer | default |
| nysdol | integer | default |
| sbs | integer | default |
| nysemergencymg | integer | default |
| total | integer | default |
Download
Download CSVAbout
- Last updated
- 12 March 2026
- Total rows
- ...
- Format
- CSV
- File size
- 101 kB
About this dataset
Sandy 311 Calls
This folder contains data behind the story The (Very) Long Tail Of Hurricane Recovery.
Data was collected from the NYC OpenData website. The data dictionary, hosted on the city's website, contains an Agency List tab with the full form of each agency's acronym.
You can recreate this spreadsheet by downloading all the data from Oct. 2012 to today from that site (warning: it's very large), and running the following R code:
allCalls <- read.csv('DOWNLOADED_DATA_HERE')
justSandy <- allCalls[grepl(Sandy, allCalls$BRIEF_DESCRIPTION),]
library(reshape2)
justSandy$date <- mdy(justSandy$DATE)
bydate <- dcast(justSandy, date ~ AGENCY)
This dataset was scraped from FiveThirtyEight - sandy-311-calls