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.
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.
| Param | Meaning |
|---|---|
lens | money · land · property · rules · meetings · entity |
q | keywords (up to 4) |
agency | agency name as printed in the record |
min | minimum award $ (money lens → award feed) |
kind + name | entity 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
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.
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 |
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>.
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.
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.