INRIX documentation logo

Description

Want to find the cheapest parking lot near your local sushi restaurant? How about the best monthly parking options near your new office? Our how about parking for a nearby sporting event?

The Off-Street Parking Lots API is used to return a list of parking lots with location, pricing, restrictions, and attributes.

All-in-all INRIX tracks over 91+ attributes per lot. We are the worlds largest and most accurate parking database.

Usage

Query Types

  1. Querying a single lot for a known lot id
  2. Querying a list of lots by lot id or by operator alias
  3. Querying a geographic region
    1. by a bounded box defined by four points
    2. by a circle defined by a point and radius
    3. by a polygon defined by a list of points
    4. by a route defined by a list of points
  4. Add or Update lot detail

Filtering and Pagination

A returned list of results can be pre-filtered by lot operator. Additionally, 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, including but not limited to:

  1. name
  2. hours of operation
  3. occupancy
  4. reservations
  5. reviews

Entry Datetime and Duration

The entry_time and duration parameters not only change the calculatedRates (see FAQ) but also the occupancy prediction. Selecting an entry_time or duration too far in the past or future can cause additional overhead that will slow down response time.

Sample Request

GET http://parking-api.inrix.com/lots?box=47.7757724964185|-122.20724916406249,47.743362594532755|-122.16227388330077&units=1 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:

Special Reponse Objects

peps

PEPs are “Parking Entry/Exit Points” and they direct the user to the entry or exit points of the lot. Here’s an example:


"peps": [ {                         // Parking Entry Points
    "pep_pt":   [lon, lat],         // in GeoJSON format
    "pep_ppoint": "sdkjhdskj"       // Polyline encoded version of the entry point
    "pep_az":   218,                // The azimuth of the pep
    "pep_b_primary": true           // One of the PEPs will be listed as "Primary".
    "pep_type": "IN"                // IN, OUT, or IN/OUT
    }, ...
],

Remember that some lots will have more than one entry point.

/lots

GET Get lots in a given area

Parameters

  = required
Name Located In Type Description
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: < data_source_key >|< lot_id >
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: < lat1 >|< long1 >,< lat2 >|< long2 >.
point Query String Used to select a region based on a point and radius. If used, other Location parameters cannot be used, eg: < lat >|< long >.
radius Query Float 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."
polygon Query String Used to specify a geography region. If used, other Location parameters cannot be used, eg: < lat1 >|< long1 >,< lat2 >|< long2 >,< lat3 >|< long3 >,< lat4 >|< long4 >.
polyline Query String Used to specify a region along a route. If used, other Location parameters cannot be used, eg: < lat1 >|< long1 >,< lat2 >|< long2 >,< lat3 >|< long3 >
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 Commas separate list of output fields
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.

Responses

200 Lot objects returned
{
  "copyright": "Copyright INRIX Inc.",
  "versionNumber": "5.2",
  "createdDate": "2018-10-17T18:16:10Z",
  "responseId": "27874aee-8663-428a-bc99-23ff6d0aed4c",
  "result": [
    {
      "id": 120869, // integer
      "occupancy": {
        "available": 125,
        "probability": 59,
        "pct": 64,
        "rank": 1,
        "bucket": 2,
        "available": null
      },
      "format": "Surface",
      "reviewCount": 0,
      "pmtTypes": [
        "Bills",
        "Coins"
      ],
      "hrs": [
        "Mon-Sun: 24 Hours"
      ],
      "photoThumbs": [
        "https://d13esfgglb25od.cloudfront.net/lot_img/120869/d.jpg",
        "https://d13esfgglb25od.cloudfront.net/abm.png"
      ],
      "rateCard": [
        "Daily Max: $3",
        "Rates Reset At 8am"
      ],
      "peps": [
        {
          "pepPt": [
            -84.1977892164,
            39.7613819947
          ],
          "pepAz": 159,
          "pepPrimary": null,
          "pepType": "IN"
        }
      ],
      "phone": "(937) 461-2916",
      "costIndex": 2,
      "note": "No In & Out Privileges",
      "amenities": [
        {
          "id": 10, // Each amenity has an integer id
          "name": "Open 24/7", // Readable string description of amenity
          "value": true // Boolean value indicating presence of the amenity
        },
        {
          "id": 13,
          "name": "Unobstructed Parking",
          "value": true
        },
        {
          "id": 19,
          "name": "Over 7ft. Clearance",
          "value": true
        }
      ],
      "ev_stations": [
        {
          "level": null,
          "minVolt": null,
          "maxVolt": 480,
          "minAmp": null,
          "maxAmp": 250,
          "rateCard": null,
          "url": null,
          "phone": null,
          "restriction": "PRIVATE",
          "plugs": {
            "teslaSuper": 1,
            "teslaRoadster": 4
          },
          "pmt_types": [
            "MC/Visa"
          ]
        }
      ],
      "name": "324 W 1st St Parking", // varchar(128)
      "spacesTotal": 56,
      "navigationAddress": {
        "city": "Dayton",
        "type": "NAVIGATION",
        "state": "OH",
        "postal": "45402",
        "street": "324 W 1st St",
        "country": "US"
      },
      "url": "https://www.parkme.com/lot/120869/324-w-1st-st",
      "structured_rates": [
        {
          "rate": 3,
          "dow_end": 7,
          "repeats": true,
          "dow_start": 1,
          "increment": 1440
        }
      ],
      "pois": [
        {
          "type": "SHOP",
          "poi_name": "Neiman Marcus",
          "coordinates": [
            34.0668005,
            -118.4061684
          ]
        }
      ],
      "currency": "$",
      "reservations": [
      ],
      "reviewScore": 0,
      "operator": "ABM",
      "type": "Non-restricted",
      "handicapSpacesTotal": 0,
      "currencyIso": "USD",
      "distance": 681, // Cartesian distance in meters from the center
      "point": {
        "type": "Point",
        "coordinates": [
          -84.1976858224,
          39.7611083177
        ]
      },
      "polygon": "s{tqFlz{`OhB[B^gB\\Ea@",
      "href": "http://api-parking.inrix.com/v2/lot/120869",
      "phones": [
        {
          "type": "Lot",
          "number": "(937) 461-2916"
        },
        {
          "type": "Central Office",
          "number": "(877) 727-5452"
        },
        {
          "type": "Tow",
          "number": "(937) 252-3356"
        }
      ],
      "calculatedRates": [
        {
          "rateCost": 3,
          "quotedDuration": "1:00:00",
          "rateType": "B"
        }
      ],
      "isOpen": true,
      "reviews": [
      ],
      "photos": [
        {
          "thumbnail": "https://d13esfgglb25od.cloudfront.net/lot_img/120869/b.jpg",
          "assetTypes": [
            "Entrance"
          ],
          "full": "https://d13esfgglb25od.cloudfront.net/lot_img/120869/a.jpg",
          "medium": "https://d13esfgglb25od.cloudfront.net/lot_img/120869/c.jpg"
        },
        {
          "thumbnail": "https://d13esfgglb25od.cloudfront.net/abm.png",
          "assetTypes": [
            "OPERATOR_LOGO"
          ],
          "full": "https://d13esfgglb25od.cloudfront.net/abm.png",
          "medium": "https://d13esfgglb25od.cloudfront.net/abm.png"
        }
      ],
      "offset": -14400,
      "tz": "EDT"
    }
  ]
}
400 Bad request
401 invalid or expired token
404 lot instance not found

/lot

POST Create a new parking lot

Parameters

  = required
Name Located In Type Description
user Body String A unique user id
lng Body Float longitude
lat Body Float latitude
pk_lot_type_id Body Integer A lot type id.(Resticted /Non-restricted etc.)
pk_lot_status_id Body Integer A lot status id.(Default takes 1)
address Body Integer Lot address based on longitude and latitude.
destination Body Integer A lot destination.
pk_operator Body Integer A lot operator id
restrictive Body Boolean Is Restrictive Lot ?
building_address Body Integer Building's legal address.
cloneFrom Body Integer A lot destination.

Responses

200 Lot object Updated.
{

   'pk_meter_type’:2,
   'dt_create_date':datetime.datetime(2017,9,18,20,21,33,210010,tzinfo=<UTC>),
   'str_gc_address':'335 Wilshire Blvd',
   'i_lot_id':2375,
   'pk_payment_method_source':1,
   'pk_user_modified':552701,
   'pk_lot_status':6,
   'pk_lot_type':2,
   'dt_effective_timestamp':datetime.datetime(2017,9,18,20,21,33,210010,tzinfo=<UTC>),
   'tz':'America/Los_Angeles',
   'str_modified_who’:’user_email@inrix.com'
}
400 Bad request
404 lot instance not found
409 Conflict/Duplicate Record
500 Internal Error

/lots/{lot_id}/

PUT Update parking lot details

Parameters

  = required
Name Located In Type Description
Accepts Header String 'application/json' or 'application/xml'
pk_user_profile Body String A unique user id
f_id Body Integer A unique lot id
pk_lot_type Body Integer A lot type id
f_long Body Float longitude
f_lat Body Float latitude
i_spaces Body Integer Total Number Of Spaces
i_floors Body Integer Total Number of Floors.
str_gc_address Body String Address information
pk_lot_status Body Integer Status of Lot.
pk_lot_format Body Integer Format of Lot.
ppoly_array Body Array of string ppoly_array.
pk_lot_status Body Integer Status of Lot.

Responses

200 Lot object Updated.
400 Bad request
401 invalid or expired token
404 lot instance not found
500 Internal Error

DELETE Drop parking lot details