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

Endpoints

GET/api/stats

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

GET/api/neighborhoods

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

GET/api/neighborhoods/{zip}/score

One neighborhood in depth: composite score plus the per-signal breakdown, raw counts, and a short written 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

GET/api/score-history/{zip}?days=180

Daily composite score snapshots for a ZIP, oldest first. Good for trend lines.

[] date, score

GET/api/operators/top?limit=10

The most active LLC operator networks on record, by acquisitions. Lenders, GSEs, and government entities are classified out.

[] operator_root, total_acquisitions, llc_count

GET/api/flips

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

GET/api/radar

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[]

GET/api/flips/editions/latest

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

Connect an AI assistant

PulseCities also runs an MCP server, so an AI assistant can look a building up and answer from the record instead of from memory. Add this address as a custom connector in Claude, ChatGPT or any other assistant that supports MCP. There is no key and no account.

https://pulsecities.com/api/mcp

Then ask it something like: who bought 4575 Furman Avenue in the Bronx, and has anyone been evicted there?

All three tools are read-only. The server speaks MCP 2026-07-28 and the handshake versions 2025-03-26 through 2025-11-25 over Streamable HTTP, and the rate limit above applies.

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

Keep PulseCities running

PulseCities runs on one server that costs about $50 a month. It stays free either way.

Loading Ko-fi

Ko-fi not loading? Open it in a new tab