OpenCurb

Enhance your maps with NYC on-street parking regulations!

OpenCurb is a web service & data feed of New York City parking regulations. See NYC parking map demo of mapped parking regulations you can build from data feed. To pull data from the feed, construct a GET request with a query string similar to the following:

http://www.opencurb.nyc/search.php?coord=40.7630131962117,-73.9860065204115&v_type=PASSENGER&a_type=PARK&meter=0&radius=50&StartDate=2015-09-30&StartTime=06:25&EndDate=2015-09-30&EndTime=07:25&action_allowed=1

This example query pulls data for passenger vehicles searching for free on-street parking within a 50-meter radius of coord on September 30th from 6:25AM to 7:25AM New York local time.

Here are some data feed key points to keep in mind:

{"errors":["Vehicle type needs to be PASSENGER, TAXI, COMMERCIAL, or TRUCK"]}
The error object has only a "errors" key associated with an array of error messages. The following tables describe the input and output parameters respectively.


 INPUT
Query Parameter Possible Values Description
v_type PASSENGER, COMMERCIAL, TRUCK, TAXI Vehicle type. Required. Refer to NYCDOT for definition of trucks and commercial vehicles.
a_type PARK, STAND, STOP Action type. Required.
coord Location coordinates in (latitude, longitude) decimal degrees format. OpenCurb is based on the WSG84 coordinate reference system. Required.
radius The distance in meters from coord. Only curb segments inside the circular region defined by the radius are considered. Excluding this parameter is equivalent to radius=100.
StartDate The date in YYYY-MM-DD format when a_type begins. All dates and times are local to New York. Required.
StartTime The start time of a_type in HH:mi format (24 hour clock format). For example, for 8:30PM use 20:30 instead. Note: StartDate and StartTime are used together to form a complete start datetime. All dates and times are local to New York. Required.
EndDate The date in YYYY-MM-DD format when a_type ends. All dates and times are local to New York. Required.
EndTime The end time of a_type in HH:mi format (24 hour clock format). For example, for 8:30PM use 20:30 instead. Note: EndDate and EndTime are used together to form a complete end datetime. All dates and times are local to New York. Required.
action_allowed 0,1,2 0: Return only features where user action is prohibited. 1: Return only features where user action is permitted. 2: Return features where user action is permitted or prohibited. Excluding this parameter is equivalent to action_allowed=1.
meter 0,1,2 Applies only to a_type of PARK. 0: free parking, 1: metered parking, 2: free or metered. Excluding this parameter is equivalent to meter=2.
duration Metered parking duration in minutes. Acceptable values are positive integers. Excluding this parameter considers all metered parking duration limits.
stand_type LOADING & UNLOADING, LOADING Applies only to a_type of STAND. Excluding this parameter is equivalent to stand_type=LOADING & UNLOADING.
stop_type LOADING & UNLOADING, LOADING Applies only to a_type of STOP. Excluding this parameter is equivalent to stop_type=LOADING & UNLOADING.



A successful GET request returns a GeoJSON object with slight differences. A "properties" key is present in every feature object within the features array. Its value is an object of properties which describe the regulation LineString feature. As every other key-value pair is part of the GeoJSON standard, the following table only explains the properties object.


 OUTPUT
Parameter Possible Values Description
borough M M for Manhattan
main_street {text} The street name where the parking regulation curb segment is located
cross_streets {text} The cross streets separated by "<-->"
side_of_st N,S,W,E Side of main_street
meter_applies Y,N,null Y: a_type=PARK and meter is in effect, N: a_type=PARK and meter is not in effect, null: a_type=STAND or a_type=STOP
meter_duration null, {positive integer} null: a_type=STAND or a_type=STOP, {positive integer}: metered parking duration
check_days 0,1 1: some signposts indicate that SCHOOL DAYS or SUMMER SCHOOL, for example, can affect regulations. User should check if such days are in session. 0: standard non-special day
check_days_desc null, {text} {text}: text description of check_days such as "SCHOOL DAYS", null: standard day