SpotHero APIspothero.com ↗
Search SpotHero parking availability by location and time window. Returns pricing, amenities, walking distance, ratings, and restrictions for nearby facilities.
What is the SpotHero API?
The SpotHero API exposes 1 endpoint — search_parking — that returns all available parking facilities near a given coordinate for a specified time window. A single call surfaces up to dozens of spot objects, each carrying pricing, real-time availability, walking distance, amenity flags, ratings, and access restrictions. It is useful for any application that needs to compare parking options near a venue, transit hub, or address.
curl -X GET 'https://api.parse.bot/scraper/cdfba353-4dac-4fd2-998f-3ccefeceda82/search_parking?ends=2026-07-15T17%3A00%3A00&starts=2026-07-15T09%3A00%3A00&latitude=41.8839288418&longitude=-87.6309569143' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace spothero-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: SpotHero SDK — bounded, re-runnable; every call capped."""
from parse_apis.spothero_com_api import SpotHero, InvalidInput
client = SpotHero()
# Search for parking near Times Square, NYC for tomorrow morning
for spot in client.spots.search(
latitude="40.7580",
longitude="-73.9855",
starts="2026-07-15T09:00:00",
ends="2026-07-15T17:00:00",
limit=3,
):
print(spot.title, spot.price_cents, spot.available_spaces)
# Get the first result for deeper inspection
first = client.spots.search(
latitude="41.8839",
longitude="-87.6310",
starts="2026-07-15T10:00:00",
ends="2026-07-15T14:00:00",
limit=1,
).first()
try:
if first:
print(first.title, first.street_address, first.city, first.state)
print("Rating:", first.rating_average, "from", first.rating_count, "reviews")
for amenity in first.amenities:
print(" -", amenity.name)
except InvalidInput as e:
print("bad input:", e)
print("exercised: spots.search")
Search for available parking spots near a geographic coordinate within a time window. Returns all nearby facilities with pricing, availability, walking distance, amenities, ratings, and restrictions. Results are sorted by relevance. Each spot includes full facility details in a single response — no detail fetch needed.
| Param | Type | Description |
|---|---|---|
| endsrequired | string | Parking end time in ISO format YYYY-MM-DDTHH:MM:SS or YYYY-MM-DDTHH:MM. |
| startsrequired | string | Parking start time in ISO format YYYY-MM-DDTHH:MM:SS or YYYY-MM-DDTHH:MM. |
| latituderequired | string | Latitude of the destination (e.g. 41.8839). |
| longituderequired | string | Longitude of the destination (e.g. -87.6310). |
{
"type": "object",
"fields": {
"spots": "array of parking spot objects with full facility details",
"total": "integer count of spots returned"
},
"sample": {
"data": {
"spots": [
{
"city": "Chicago",
"state": "IL",
"title": "13 N Clark St. (70 W Madison Building)",
"currency": "USD",
"amenities": [
{
"name": "Valet",
"type": "valet"
},
{
"name": "Garage - Covered",
"type": "covered"
}
],
"available": true,
"facility_id": "2231",
"postal_code": "60602",
"price_cents": 2500,
"rating_count": 1544,
"restrictions": [
"Height Restriction: 6' 0\""
],
"visual_flags": [
"Shortest Walk"
],
"facility_type": "garage",
"navigation_tip": "Enter this location on North Clark Street.",
"rating_average": 4.6,
"street_address": "13 North Clark Street",
"available_spaces": 21,
"total_price_cents": 2650,
"hours_of_operation": [],
"walking_distance_meters": 152,
"walking_duration_seconds": 133
}
],
"total": 93
},
"status": "success"
}
}About the SpotHero API
What the API Returns
The search_parking endpoint accepts a latitude/longitude pair plus starts and ends timestamps in ISO 8601 format (e.g. 2024-11-15T18:00:00 to 2024-11-15T22:00:00). The response contains a spots array and a total integer. Each object in spots is a full facility record that includes the facility name, street address, distance on foot, price for the requested window, availability status, amenities (covered parking, EV charging, etc.), user ratings, and any access restrictions such as height limits or vehicle type exclusions.
Parameters and Coverage
All four inputs — latitude, longitude, starts, and ends — are required. There are no optional filters for price range, amenity type, or vehicle class at the query level; filtering must be done client-side against the returned spots array. Results are sorted by relevance as determined by SpotHero's own ranking, not by price or distance. Coverage reflects SpotHero's own inventory, which is concentrated in major US cities.
Response Shape
The total field tells you how many spot objects were returned before any client-side filtering. Each spot object is self-contained: you get facility identity (name, address), cost for the exact time window requested, walking distance from the searched coordinate, availability flag, a list of amenities, an aggregate rating, and restriction details. There is no pagination parameter in the current endpoint — the single call returns all matching spots for the coordinate and time window.
The SpotHero API is a managed, monitored endpoint for spothero.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when spothero.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official spothero.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Show ranked parking options with prices on an event venue detail page
- Compare covered vs. uncovered parking costs near an airport for a given flight window
- Alert users to EV charging availability at lots near a destination
- Pre-populate a travel itinerary with parking cost estimates for a city trip
- Build a parking price tracker that logs SpotHero rates for a specific coordinate over time
- Filter lots by rating to surface only highly rated facilities near a sports stadium
- Estimate parking budget by querying the same coordinate across multiple time windows
| 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 | 100 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 SpotHero have an official public developer API?+
What does the `spots` array actually contain per facility?+
spots includes the facility name, street address, total price for the queried time window, walking distance from the searched coordinate, a real-time availability status, a list of amenities (such as covered parking or EV charging), an aggregate user rating, and access restrictions like vehicle height limits.Does the API support filtering by amenity, price range, or vehicle type?+
search_parking beyond the required coordinate and time window. All amenity, price, and restriction data is present in each spot object, so you can filter the returned spots array client-side. You can fork this API on Parse and revise it to add a filtering layer on top of the results.Can I retrieve monthly or recurring parking rates, not just hourly/event windows?+
starts and ends window. Monthly permit rates and recurring reservation data are not currently exposed. You can fork this API on Parse and revise it to add an endpoint targeting SpotHero's monthly parking listings.