The On-Street Parking API is used to return metadata information on one or more city blocks.
The API can return a single block or a list of blocks in a geographic region. A block represents a road from one intersection to the next. The concept of blocks is important for the OnStreet API to be map independant and to be conflatable to any third party map library.
Each block will have a list of one or more parking “segments”, which will include information about rates / hours that parking is available, as well as number of spaces. Returned results can be additionally filtered by their metadata. Segments are defined as a continguous parking restriction. Segments are represented either by their offsets or their geometery.
Driveways and Fire Hydrants
In order to avoid “zebra striping” in the UI/UX, we do not represent breaks in street parking <25m in our API if they do not also represent a change in parking restriction type. This includes: driveways, fire hydrates, mailboxes, crosswalks, etc. This data is collected in our backend system and is a componenet of our USS and LPR offerings, however we have not found a end-user facing purpose for it yet and therefore do not have it in our API.
The spacesTotal field returned by the API is specific to each segment. The number of spaces returned here reflects the number of actual spaces in the seg,emt, this does not take into account whether the street is currently available, “isOpen”, “No Parking”, etc., but an absolute measurement of spaces.
Block queries can be made as follows:
- Querying a single block for a known block id
- Querying a list of blocks by block id
- Querying a geographic region
- by a bounded box defined by four points
- by a circle defined by a point and radius
Filtering and Pagination
A maximum number of results to be returned can be defined. The list of results can be paginated i.e. return second list of 20 results.
Additional filtering must be defined in client logic after results are returned. A wealth of metadata is returned for each lot that might be used to further filter results.
Entry Datetime and Duration
The entry_dt and duration parameters not only change the calculatedRates (see FAQ) but also the availability prediction. Selecting an entry_dt or duration too far in the past or future can case additional overhead that will slow down response time.
Example /blocks request
GET http://parking-api.inrix.com/blocks?box=47.617867|-122.352635,47.6085|-122.327074&accesstoken=YOURACCESSTOKEN HTTP/1.1 Host: parking-api.inrix.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: application/json Accept-Encoding: gzip, deflate Authorization: Bearer INRIXClientAgent:
GET Get blocks in a given area.
|accesstoken||Query||String||A valid access token provided from the GET appToken API response. Alternatively, the accesstoken can be added to the request header instead of a url parameter using format 'Authorization: Bearer xxxx.xxx.xxxx'.|
|id||Query||Integer||If used, other Location parameters cannot be used. An 'id' can be a single lot id or multiple separated by | symbols."|
|alias||Query||String||If used, other Location parameters cannot be used. A pipe-delimited data source and lot id, eg:
|box||Query||String||If used, other Location parameters cannot be used. 'box' specifies two lat/long pairs (using the WGS 84 datum) that outline a bounding box. The first lat/long pair should be the northwestern most point, and the second pair the southeastern most point, eg:
|point||Query||String||Used to select a region based on a point and radius. If used, other Location parameters cannot be used, eg:
|radius||Query||Double||Used to select a region based on a point and radius in meters. If 'radius' is used, 'point' must also be used and 'box' / 'geoid' cannot be used."|
|entry_time||Query||String||yyyy-mm-ddTHH:MM format, add a Z for UTC, otherwise treated locally|
|duration||Query||Integer||Duration in minutes. Can be pipe delimited for multiple durations, eg: 60|120|720|1400|
|limit||Query||Integer||Maximum number of elements to return from a large collection (for pagination).|
|offset||Query||Integer||Starting index within the requested collection (for pagination)|
|outputfields||Query||String||Comma separated list of output fields|
|restrictions||Query||String||Comma separated list of restriction IDs as returned from the Filters API|
|locale||Query||String||The locale as defined by ISO 15897, default: en-US|
|sort||String||To optmize performance, objects are not sorted by default. Paramter value `distance` sorts to center of geo query.|