Identify the dataset ID (e.g. erm2-nwe9 for '311 Service Requests from 2020 to Present')
Call GET https://data.cityofnewyork.us/resource/{dataset_id}.json to retrieve records in JSON, or .csv for CSV output
Add SoQL query parameters such as $where, $select, $limit, and $order to filter and shape the results server-side
Include an X-App-Token header with a registered Socrata application token to raise throttling limits above the default IP-based tier
Page through large result sets using $limit and $offset, since a single call returns a bounded page rather than the full dataset
Known gotchas
The 2020-to-present dataset (erm2-nwe9) is a distinct dataset ID from NYC's other 311 historical archives, so complaint history before 2020 requires querying a separate dataset ID
Unauthenticated queries work but are subject to a much lower, shared IP-based throttling limit than requests sent with an application token
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?