SpotHero Parking API
Check one lot's price and availability for an event, by the lot's name or facility ID.
- 1 credit per call
- Failed calls are free
- Updated
- spothero.lookup
{ "address": "1901 West Madison Street", "availability": "available", "facility_type": "lot", "lat": 41.88068100000001, "lon": -87.674053, "lot": "", "sh_base": 28, "sh_total": 30.66, "start_time": "2026-10-07T18:00:00-05:00", "url": "https://spothero.com/checkout/14021", "walking_meters": 1, "walking_seconds": 1}
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| event_id | integer | one of | The event's SpotHero ID. | 1418307 |
| event_url | string | one of | The event's SpotHero page. | |
| facility_id | integer | one of | The lot's facility ID, as an alternative to its name. | 14021 |
| lot | string | one of | The lot's name, as SpotHero shows it. |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| address | string | The facility's street address. | 1901 West Madison Street |
| availability | string | Whether a space can be booked. | available |
| sh_total | number | SpotHero's price with fees. | 30.66 |
| sh_base | integer | SpotHero's price before fees. | 28 |
| start_time | string | When the parking or event starts. | 2026-10-07T18:00:00-05:00 |
| facility_type | string | The kind of facility, such as a lot or garage. | lot |
| walking_meters | integer | The walk from the facility to the destination, in metres. | 1 |
| url | string | The booking page on SpotHero. | https://spothero.com/checkout/14021 |
| lat | number | The facility's latitude. | 41.88 |
| lon | number | The facility's longitude. | -87.67 |
| lot | string | ||
| walking_seconds | integer | The walk from the facility to the destination, in seconds. | 1 |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "spothero.lookup", "input": { "event_id": 1418307, "facility_id": 14021 }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "spothero.lookup", "input": { "event_id": 1418307, "facility_id": 14021 }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "spothero.lookup", "input": { "event_id": 1418307, "facility_id": 14021 }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
With Upscrape, check SpotHero facility 14021 for event 1418307: is it available, and what does it cost?
More from the SpotHero API
The same data from other platforms
SpotHero Parking API FAQ
The short answers. The docs have the long ones.
How much does the SpotHero Parking API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send event_url or lot or facility_id or event_id. The input fields below list every option with its type and limits.
Do I need a SpotHero login?
No. It reads public SpotHero data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds spothero.lookup, checks its price and runs it with the same credits as the REST API.
Your first SpotHero call is free.
Up to 100 free credits to start, no card needed.