bestparking.com APIbestparking.com ↗
Search parking lots by coordinates, get lot details with pricing quotes, autocomplete locations, and retrieve supported cities via the BestParking API.
curl -X GET 'https://api.parse.bot/scraper/67c0c881-f6f9-4f3d-b4b9-4b26be95160e/search_parking?lat=40.7128&lng=-74.0060&end_time=2026-02-24T14%3A00%3A00Z&start_time=2026-02-24T10%3A00%3A00Z&search_type=transient' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for parking locations (hourly or monthly) near a specific coordinate. Returns detailed pricing, availability, and curated recommendations (cheapest, closest). When start_time and end_time are omitted, defaults to a 2-hour window starting now.
| Param | Type | Description |
|---|---|---|
| latrequired | number | Latitude of the search center. |
| lngrequired | number | Longitude of the search center. |
| end_time | string | End time for the parking quote in ISO 8601 format (e.g. 2026-05-10T14:00:00). Defaults to 2 hours after start_time if omitted. |
| start_time | string | Start time for the parking quote in ISO 8601 format (e.g. 2026-05-10T10:00:00). Defaults to current hour if omitted. |
| search_type | string | Type of search: 'transient' (hourly/daily) or 'monthly'. |
{
"type": "object",
"fields": {
"data": "array of parking location quotes with pricing and availability",
"curated_data": "object containing cheapest and closest recommendations"
},
"sample": {
"data": {
"data": [
{
"type": "offstreet",
"distance": {
"straight_line": {
"feet": 563,
"meters": 171
}
},
"end_time": "2026-05-07T23:00:00.000-04:00",
"_embedded": {
"pw:location": {
"id": "11938",
"city": "New York",
"name": "Park-it Management - 35 Reade St. Garage",
"state": "NY",
"address1": "35 Reade St."
}
},
"seller_id": 1090,
"quote_type": "transient",
"start_time": "2026-05-07T21:00:00.000-04:00",
"location_id": "11938",
"purchase_options": [
{
"price": {
"USD": "21.40"
},
"base_price": {
"USD": "20.00"
}
}
]
}
],
"curated_data": {
"closest": {
"location_id": "11938"
},
"cheapest": {
"location_id": "52007",
"purchase_options": [
{
"price": {
"USD": "19.26"
},
"base_price": {
"USD": "18.00"
}
}
]
}
}
},
"status": "success"
}
}About the bestparking.com API
The BestParking API exposes 4 endpoints covering parking search, lot details, location autocomplete, and city coverage for the BestParking.com platform (powered by ParkWhiz). The search_parking endpoint accepts a lat/lng pair and optional ISO 8601 time window to return per-lot pricing, availability, and curated picks for the cheapest and closest options. Results include bookable quotes for both transient (hourly/daily) and monthly parking.
Search and Pricing
The search_parking endpoint is the core of the API. Pass lat, lng, and optionally start_time and end_time in ISO 8601 format to receive an array of nearby parking locations in data, each with pricing and availability for the requested window. If times are omitted, the endpoint defaults to a 2-hour window starting at the current hour. The curated_data object in the response breaks out the cheapest and closest recommendations so you don't need to sort client-side. Set search_type to 'transient' for hourly/daily results or 'monthly' for monthly parking quotes.
Lot Details
get_parking_lot_details takes a location_id (returned by search_parking) and optional start_time/end_time parameters. With times, it returns purchase_options — an array of bookable pricing options for that window. Without times, it returns static location metadata from _embedded.pw:location: name, address, city, description, rating summary, and hours of operation. The time range should match the lot's pricing type (short-term or monthly) to get relevant quotes.
Autocomplete and City Coverage
autocomplete_locations accepts a free-text query and returns two arrays: autocomplete (location suggestions with id, full_name, address, and coordinates) and events (upcoming events near matching venues, each with name, start_time, end_time, and venue info). This makes it straightforward to resolve a user-typed string to a location_id or a lat/lng pair before calling search_parking.
get_supported_cities takes no inputs and returns a cities array where each object contains name, slug, lat, and lng. Use this to build city-picker UIs or to seed coordinate-based searches without a geocoder.
- Find the cheapest parking near a venue by passing event coordinates to
search_parkingand readingcurated_data.cheapest. - Display real-time parking prices for a neighborhood map by querying
search_parkingwith a center coordinate and a specific time window. - Resolve a user-typed address or landmark to parking options by chaining
autocomplete_locationsintosearch_parking. - Show full lot details — hours, ratings, and bookable options — by calling
get_parking_lot_detailswith alocation_idfrom search results. - Build a monthly parking finder for commuters by passing
search_type: 'monthly'tosearch_parking. - Populate a city selector for a parking app using the
name,slug,lat, andlngfields fromget_supported_cities. - Surface upcoming events near a searched location alongside parking suggestions using the
eventsarray fromautocomplete_locations.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does BestParking have an official public developer API?+
What does `search_parking` return beyond a list of lots?+
data array of lot quotes — each with pricing and availability — the response includes a curated_data object that pre-selects the cheapest and closest options for the searched coordinates and time window. This saves a client-side sort for common UI patterns.Does `get_parking_lot_details` always return pricing?+
start_time and end_time are provided. Without a time range, the endpoint returns static location metadata (name, address, city, description, rating_summary, hours) but the purchase_options array will be absent or empty. Supply times that match the lot's pricing type — transient or monthly — to get bookable quote data.Does the API cover parking availability for airports or specific garages outside supported cities?+
get_supported_cities, and lot results are tied to the BestParking/ParkWhiz inventory for those areas. Garages or regions not in that inventory will not appear in search_parking results. You can fork this API on Parse and revise it to add endpoints targeting additional regions or data sources.