Overview
This API provides a facility for bulk update of systems with Parking data. This includes static data - segments, rates, ammenities - and dynamic data - predictions - at regular intervals and optimized for idempotent data retrieval.
The Bulk format covers Parking Lots, off-street, and Parking Blocks, on-street, with each static and dynamic call returning all authorized - such as worldwide - coverage.
As the data sets are large, a traditional API call model is utilized. Enabling systems to retrieve static and dynamic data when it’s best for their capacity or use case. The data is split into static - infrequently changing, such as rules & restrictions - and dynamic - frequently changing, such as predictions.
Update Cadence
A full update of static data is generated once a month, by the first of the month.
Dynamic data is generated approximately every 15min, 24 hours a day, 7 days a week.
Usage
All API endpoints are of the format https://daar.parkme.com/v2/{onstreet/offstreet}/{static/dynamic}
Example On-Street Static data request
# obtain token from UAS and store in $token variable
curl -H "Authorization: Basic $token" https://daar.parkme.com/v2/onstreet/static
Data format
Bulk data is based on jsonlines (jsonl): Each line in the data files is a standalone JSON object (dictionary or hashmap). Objects are separated by a newline. Each line has an id
field, which is used to link the dynamic data to the static data. In this documentation, lines are formatted as conventional JSON for readability.
The toplevel document is JSON proper.
Relationship to Lots and Blocks APIs
The bulk format is designed to facilitate bulk updating. An expected use of this API is to put all of the parking data into systems at a regular interval. A typical end-user use case is one where product consumers such as cars or reports access customer’s systems with those systems regularly updated with parking data.
Lots/Blocks | Bulk |
---|---|
End-users make calls to the INRIX parking system | End-users make calls to a customer’s system |
An API call returns data in a 2km circle | An API call returns all the data |
For each lot (block), static and dynamic data are combined | There are separate calls for static and dynamic data |
Uses JSON data format | Uses JSONlines data format |
The Lots and Blocks APIs provide the same data in a similar format with the following changes:
- Some fields are specific to the lots/blocks API (such as distance from the center point)
- A number of legacy/deprecated fields were removed from Bulk (such as the ‘review’ field)
- Data format has been upgraded to modern standards in many cases. For example, the value of
cross_streets
(blocks) is a string ("From 11th St to Lincoln Blvd"
) where it’s now an array of 2 strings (["11th St", "Lincoln Blvd"]
).
Lots: Off-Street
Dynamic Data
Contains the predictions for each of the lots.
There are potentially several types of dynamic data. Each jsonline has a top level to identify the lot or block, id
. This is followed by at least one string key, which determines what type of dynamic update this is. Keys are strings with internal slashes (/
) for namespacing, like lot/prediction
. It’s possible for one jsonline to contain more than one piece of dynamic data for the same id
, which should not impact parsing but should be disregarded.
{ "key": 1234,
"lot/prediction": { ... },
}
Predictions
Name/Object | Type | Description | |
---|---|---|---|
id | number | Unique ID of lot | |
“lot/prediction” | string | Namespaced domain of the update, “lot/prediction” | |
capacity | number | Total spaces available when lot is empty | |
pred | number | Predicted number of spaces available | |
trend | string | Predicted availability delta, one of STATIC, FILLING_UP, EMPTYING, UNKNOWN | |
available | optional | number | Measured number of spaces available |
avtime | optional | datetime | ISO datetime string of when ‘available’ was measured |
Data format:
{ "id": 1234,
"lot/prediction":
{
"capacity": 23,
"pred": 123,
"trend": "EMPTYING",
"available": 124,
"avtime": "2021-05-14T18:16:24.974511-07:00"
}
}
Static data
The static data contains all the physical information about lots such as rates, hours of operation, and payment methods.
Attributes List
Available upon request from a Sales Engineer
Blocks: On-Street
Blocks
A block represents a stretch of road from one intersection to the next. This is map independent and conflatable to any third party map library.
Segments
Each block will have a list of one or more parking “segments”. A segment is a stretch of road with the same parking rules and restrictions. Each segment will include information about rates, hours that parking is available, and the number of parking spaces. Segments have a Google polyline geometry field and are defined by their offset, in meters, from the start of the block they belong to.
Dynamic Data
The dynamic data contains the predictions for each block, with parking probability at the block level.
There are potentially several types of dynamic data. Each jsonline has a top level to identify the lot or block, id
. This is followed by at least one string key, which determines the type of dynamic update. Keys are strings with internal slashes (/
) for namespacing, like lot/prediction
. It’s possible for one jsonline to contain more than one piece of dynamic data for the same id
, which should not impact parsing but should be disregarded.
{ "id": 1234,
"lot/prediction": { ... },
}
Predictions
Prediction estimates the probability of finding at least one open parking spot on the block.
Name/Object | Type | Description | |
---|---|---|---|
id | number | Unique ID of lot | |
“block/predicion” | string | Namespaced domain of the update, “block/prediction” | |
probability | number | Probability of finding a parking spot | |
probetime | number | Time of prediction (ISO format) | |
trend | string | Predicted delta, one of STATIC, FILLING_UP, EMPTYING, UNKNOWN |
Data format:
{ "id": 1234,
"block/prediction":
{
"probability": 23,
"probetime": "2021-05-14T18:16:24.974511-07:00",
"trend": "EMPTYING"
}
}
Static Data
The static data contains all physical information about blocks such as rules & restrictions and cost to park.
Attributes list
Available upon request from a Sales Engineer