Public API
NYC displacement data, as JSON.
Everything the site shows is available as a free read-only API. No key, no signup. The data comes from NYC public records (ACRIS deeds, DOB permits, marshal evictions, HPD violations, 311 complaints) and refreshes nightly. If you publish something built on it, credit PulseCities (pulsecities.com).
Quick start
# The current citywide picture: top-risk list, live counts, feed freshness
curl https://pulsecities.com/api/stats
Ground rules
- Base URL is
https://pulsecities.com/api. Every endpoint below isGETand returns JSON. - Rate limit is 60 requests per minute per IP (30 on a few heavier routes). Responses carry standard
X-RateLimit-*headers. - Data refreshes once a night from city sources. Most responses are cached for an hour; there is nothing to gain from polling faster.
- Check
data_freshnessin/api/statsbefore trusting a window. When an upstream feed pauses (ACRIS does), the field says so. - Attribution: CC BY 4.0. Name PulseCities and link pulsecities.com.
Endpoints
Citywide snapshot: recent LLC transfer and eviction counts, the current top-risk neighborhoods, and per-source freshness watermarks.
llc_transfers_recent · evictions_30d · top_risk_list[] rank, zip_code, name, borough, score, dominant_signal, signal_counts · data_freshness per source: through, days_stale, stale
GeoJSON FeatureCollection of every NYC ZIP neighborhood with its current composite score. This is the layer the map renders.
features[].properties zip_code, name, borough, score · features[].geometry polygon
One neighborhood in depth: composite score plus the six-signal breakdown, raw counts, and a plain-language summary.
curl https://pulsecities.com/api/neighborhoods/11216/score
score 0 to 100 · signal_breakdown each signal normalized 0 to 100 · signal_raw_counts · summary_text
Daily composite score snapshots for a ZIP, oldest first. Good for trend lines.
[] date, score
The most active LLC operator networks on record, by acquisitions. Lenders, GSEs, and government entities are classified out.
[] operator_root, total_acquisitions, llc_count
Citywide renovation-flip feed: an LLC takes a building by deed, then files an A1/A2 renovation permit on the same lot within 60 days. One year of lookback, newest first.
count · flips[] bbl, address, zip_code, neighborhood, buyer, doc_amount, transfer_date, permit_date, days_between
Concentrated-buying clusters: one buyer taking three or more buildings in one ZIP within 90 days.
count · clusters[] buyer, zip_code, neighborhood, building_count, span_days, total_amount, properties[]
The featured arc of the newest human-reviewed eviction-flip edition: eviction, LLC purchase, resale, with ACRIS document IDs. Returns nulls until an edition is approved.
week · arc bbl, address, eviction_date, buy_date, buy_amt, buyer, sell_date, sell_amt, gain_pct, buy_doc, sell_doc
Partner keys
The public tier above is all you need to read the data. Keys exist for partners
(newsroom data teams, researchers) who want identified access and usage visibility:
send the key as an X-API-Key header and your traffic is tracked under
your name instead of an anonymous IP. An invalid key fails with a 401 rather than
silently falling back to public access.
Want one, or need more than the public rate limit? Email nycdisplacement@gmail.com with a line about what you're building.
Terms
- All data is derived from NYC public records. Scores are indicators built from those records, not predictions about any tenant or building. Read the methodology before drawing conclusions.
- Provided as is, no uptime guarantee. The status page shows feed freshness in real time.
- Attribution required for published work: PulseCities, linked to pulsecities.com (CC BY 4.0).
- Don't hammer the API; sustained abuse gets an IP blocked.