CROL-List
The City Record, searchable

API & feeds

← Back to CROL-List

Every view on CROL-List has a machine-readable twin. No key, no account; endpoints are rate-limited and cached, and none touches a paid service. Base URL: https://api.crol-list.org.

Feeds — any search as RSS / JSON / calendar

GET /feed.xml (Atom) · GET /feed.json (JSON Feed 1.1) · GET /feed.ics (subscribable calendar — one event per dated notice). Edge-cached 15 minutes.

ParamMeaning
lensmoney · land · property · rules · meetings · entity
qkeywords (up to 4)
agencyagency name as printed in the record
minminimum award $ (money lens → award feed)
kind + nameentity lens: kind=vendor|agency, name=… — vendor names are matched by normalized stem, so suffix/case variants are included
https://api.crol-list.org/feed.xml?lens=rules&agency=Buildings
https://api.crol-list.org/feed.ics?lens=meetings&q=community%20board
https://api.crol-list.org/feed.json?lens=entity&kind=vendor&name=Sinergia%20Inc

Batch cross-reference

POST /batch with {"names": ["…", …]} (≤10 names/request, 30 requests/day/IP). For each name: awards = award/intent notices naming that vendor (name-stem matched, all years); mentions = full-text hits in the last two years of editions; entity = the vendor-profile permalink when awards exist.

Permalinks

Everything on the site has a stable address you can link or cite:

/#notice/<request_id>one notice — at-a-glance summary, flags, Checkbook dollars, full text
/#vendor/<name>vendor profile (name variants resolved by stem)
/#agency/<name>agency profile
/#matter/<pin>a procurement matter as a timeline, Checkbook payments included
/#money?agency=…&q=…&m=…any filtered view — the URL is the state

Shared investigations

POST /inv stores a pin-list snapshot (structured fields only, ≤32KB, 90-day TTL, 10/day/IP) and returns an id; GET /inv/<id> reads it back. The site renders these at /#investigation/shared/<id>.

Public stats

GET /stats — the project's own usage as aggregate counts (active subscriptions, digests sent, digest links followed, feed/batch/share activity). No personal data exists behind it; cached ~15 minutes. Human-readable version: stats. Related: digest emails link notices via GET /r/<kind>/<request_id>, a count-only redirect to the notice permalink — it accepts a validated id (never a URL, so it can't redirect off-site) and records a per-day number, never a person.

Upstream data

CROL-List republishes and joins public datasets — for bulk work, go straight to the sources: City Record Online (dg92-zbpx, Socrata SODA) · Checkbook NYC API · Citywide Payroll · ZAP.

CROL-List · Home · About