NYC Ticket Odds

Public API

Free public API

A free, read-only API for the aggregated statistics on this site. No API key required. CORS is enabled, so you can call it directly from a browser.

Endpoint

GET https://tickets.zalize.com/api/public/violation-stats
ParameterDescription
datasetWhich table to return: violations (default; dismissal rates per violation type), counties (per violation type and borough), or annual (tickets, fines and hearing outcomes per issue year).
formatjson (default) or csv.
downloadSet to 1 to receive the response as a file download (Content-Disposition: attachment).

Example

curl "https://tickets.zalize.com/api/public/violation-stats?dataset=violations"

Response shape (JSON):

{
  "dataset": "violations",
  "source": "NYC Open Data nc67-uf89 (Open Parking and Camera Violations)",
  "fetched_at": "…",
  "license": "Free to use with attribution: link to https://tickets.zalize.com/data. …",
  "count": 123,
  "data": [
    {
      "violation": "FAIL TO DSPLY MUNI METER RECPT",
      "decided": 3431944,
      "guilty": 907977,
      "reduced": 900644,
      "not_guilty": 1623323,
      "dismissed_rate": 0.473,
      "reduced_rate": 0.2624,
      "avg_fine": 44.35
    }
  ]
}

Limits & license

  • Rate limit: 720 requests per IP per day (resets at midnight New York time). Responses are cacheable for an hour — please cache on your side too.
  • CORS: Access-Control-Allow-Origin: * — callable from any website.
  • License: free to use with attribution — link to tickets.zalize.com/data wherever you publish the numbers.
  • The API serves aggregates only. It contains no plates, names or any personal information.

Back to the data report · CSV/JSON downloads