INRIX IQ logo

Overview

The parking API for on-street parking. The “blocks” api returns data for a number of city blocks around a position. A block represents a road from one intersection to the next. The concept of blocks is important for the OnStreet API to be map independent and to be conflatable to any third party map library. Each block has a forecasted probability parking and datat attributes like the cost of parking.

Each block consists of multiple (1..n) segments. Segments start and end when the parking rules change. A pretthy common six-segment block in the US would have 3 segments on each side of the road: The first segment would cover parking from the corner to the close to the mid point, where there is a short segment of no parking around the alley. A final segment would cover the stretch from the alley to the other corner.

Driveways and Fire Hydrants

In order to avoid “zebra striping” in map visualizations, the API results do not include short breaks in street parking such as driveways, fire hydrates, mailboxes, crosswalks, etc. Gaps that are shorter than 25m are not included, unless they also represent a change in parking rules. We do include these short gaps in our internal representation, but the API does not surface them.

Spaces Total

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 segment, this does not take into account whether the street is currently available, “isOpen”, “No Parking”, etc., but an absolute measurement of spaces.

Usage

The v3 block queries are based on a circle defined by a point (lat, lon) and a radius (meters).

Entry Datetime and Duration

The entrytime and duration parameters not only change the rates but also the occupancy prediction. Selecting an entrytime in the past or more than a few hours in the future is not supported.

Probability versus isOpen

The isOpen attribute is a boolean that summarizes whether parking is legal at this point in time. For consistency, our forecasting algorithm will predict the number of available spaces for blocks that are temporary not allowing parking (such as for street cleaning). For most end users, a block with a high probability of an open parking spot but no legal parking at this time (isOpen equals False) should probably not be shown.

Example /blocks request

# obtain token from UAS and store in $token variable
# the point is represented as lat|lon
curl "https://api.parkme.com/blocks?accesstoken=$token&point=34.017395736527334|-118.49404245615005&radius=50&locale=en-US"

API versions and extensions

When the API changes in a substantial way, we will bump the version number according to ‘semantic versioning’ standards and notify our customers. We expect our client software to be ‘open to extension’, that is, fields can be added to the API output without changing the version number. Client software should ignore any fields that are not described in this documentation or that were not present at the time of their implementation.

Response Attributes list

Name/Object   Type Description  
blockID   number Unique ID for block  
name   string Street name  
address   string To and from streets  
polyline6   string Block geometry (Google encoded, version 6)  
probability   number Predicted likelihood of finding 1 or more open legal parking spots (%), NULL = No Parking  
segments   object Group of attributes that represent each segment  
    segmentID string Unique ID for segment
    polyline6 string Segment geometry with additional degree of precision
    spacesTotal number Total number of spaces for segment, independent of current rules. This is the capacity of the segment.
    start number Offset of where segment begins (meters)
    end number Offset of where segment ends (meters)
    side string Side of street in relation to heading. First point in the geojson is the beginning of the block.
    rateCards string Full restrictions and pricing
    isOpen string Parking allowed or No Parking
    calculatedRates object Group of attributes that represent the cost of parking for user specified parameters. Different segments may have different cost structures.

/blocks/v3

GET List on-street parking (blocks) in a given area.

Parameters

  = required
Name Located In Type Description
accesstoken Header String A valid access token provided from GET appToken. The accesstoken MUST be added to the request header, using format 'Authorization: Bearer xxxx.xxx.xxxx'.
point Query String Used to select a circular region based on a point and radius. Lat and long in decimal degrees are separated by a pipe symbol. For Paris, France: 48.864468|2.3388274.3435.
radius Query Double Radius in meters. Parking information will be retrieved for a approximately circular region around point, with specified radius.
box Query String Specifies two latitude and longitude 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. Format- [lat1]|[long1],[lat2]|[long2].
geoId Query Integer Used to select a region based on a geography. 'geoid' specifies the ID of the specified geography. For more information on how to obtain the ID, see GetGeography.
entry_time Query String Start time of parking in 'yyyy-mm-ddTHH:MMZ' format, should be UTC and end in the letter 'Z'. If omitted, current time is assumed. This parameter should only be used when the driver is inquiring about parking at a future time. This parameter can only be used for times in the near future and the precision of our prediction reduces for entry_times that are more than a few hours away. Historical queries are not supported.
duration Query Integer Parking duration in minutes. If omitted, information is returned about the current parking availability.
limit Query Integer Maximum number of elements to return. If the amount of elements is a concern, we recommend to reduce the radius as this will evenly fill a circle around the car. Use 'limit' has a hard stop to avoid getting overburdened with too many results. Using a larger radius with a low limit will result in gaps in the coverage shown because the results will be truncated and not some areas of the circle may be left empty.
locale Query String The locale as defined by ISO 15897, default: en-US

Responses

200 A list of blocks with their segments. In the example, only one blocks and an abbreviated list of segments is shown for clarity.
{
    "result": [
      {
        "name": "10th Street",
        "probability": 53,
        "reservations": [],
        "segments": [
          {
            "end": 185,
            "side": "RIGHT",
            "start": 142,
            "amenities": [
              {
                "id": 1,
                "name": "Free"
              },
              {
                "id": 2,
                "name": "Metered parking"
              },
              {
                "id": 3,
                "name": "Overnight parking"
              }
            ],
            "paymentID": [],
            "polyline6": "ezi{_A~sz~`FlOmR",
            "rateCards": [
              "Each Hour (Mon-Tue | Thu-Sat; 9am-6pm; 9 Hour Max): $1",
              "1 Hour (Wed; 9am-10am): $1",
              "Wed (10am-12pm): No Parking",
              "Each Hour (Wed; 12pm-6pm; 6 Hour Max): $1",
              "Mon-Sat (6pm-9am): Free",
              "Sun: Free"
            ],
            "segmentID": "826357f3-9897-45c4-bd40-a0783aec3950",
            "paymentIDs": [],
            "spacesTotal": 16,
            "isOpen": true,
            "calculatedRates": [
              {
                "rate_cost": 0,
                "quoted_duration": "1:00:00",
                "rate_type": "B"
              }
            ]
          },
          {
            "end": 122,
            "side": "RIGHT",
            "start": 60,
            "amenities": [
              {
                "id": 1,
                "name": "Free"
              },
              {
                "id": 3,
                "name": "Overnight parking"
              },
              {
                "id": 4,
                "name": "Residential parking"
              }
            ],
            "paymentID": [
            ],
            "polyline6": "_{j{_A|z{~`F~Vm[",
            "rateCards": [
              "Mon-Tue | Thu-Sun (7am-2am; Residential Permit Only): Free",
              "Wed (7am-10am; Residential Permit Only): Free",
              "Wed (10am-12pm): No Parking",
              "Wed (12pm-2am; Residential Permit Only): Free",
              "2am-7am: Free"
            ],
            "segmentID": "91819789-620d-44c4-ae77-6456f5c7e3aa",
            "paymentIDs": [
            ],
            "spacesTotal": 11,
            "isOpen": true,
            "calculatedRates": [
              {
                "rate_cost": 0,
                "quoted_duration": "1:00:00",
                "rate_type": "B"
              }
            ]
          }
        ]
      }
    ]
}
400 Bad request
401 Invalid or expired token
404 Instance not found