# Search Monthly Parking

Search SpotHero monthly parking inventory near coordinates for a requested start date.

- Platform: [SpotHero](https://docs.upscrape.com/docs/platforms/spothero)
- Capability ID: `spothero.monthly-parking.search`
- Cost: 1 credit per request
- Maximum runtime: 30 seconds
- Execute endpoint: `POST https://data.upscrape.com/execute`

## Request

Use the exact public capability ID in the shared execute envelope.

```bash
curl --request POST \
  --url https://data.upscrape.com/execute \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Prefer: wait=30" \
  --data '{
  "input": {
    "latitude": 41.881943,
    "limit": 20,
    "longitude": -87.630976,
    "max_distance_meters": 3000,
    "starts": "2026-09-01T00:00:00-05:00"
  },
  "capability": "spothero.monthly-parking.search"
}'
```

## Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `latitude` | `number` | Yes | Latitude supplied for this request. |
| `limit` | `integer` | No | Maximum number of results to return. |
| `longitude` | `number` | Yes | Longitude supplied for this request. |
| `max_distance_meters` | `integer` | No | Max distance meters supplied for this request. |
| `starts` | `string` | Yes | Starts supplied for this request. |

### Example input

```json
{
  "latitude": 41.881943,
  "limit": 20,
  "longitude": -87.630976,
  "max_distance_meters": 3000,
  "starts": "2026-09-01T00:00:00-05:00"
}
```

## Response

Successful output is returned in `results[0].data`. Raw platform output is intentionally open-ended and may evolve with the upstream source.

### Illustrative sample output

This redacted fixture is an example, not a fixed response schema.

```json
{
  "facilities": [
    {
      "address": "35 South Dearborn Street",
      "available": true,
      "base_price": 525,
      "facility_id": 10369,
      "facility_type": "garage",
      "lat": 41.881422,
      "lon": -87.629297,
      "navigation_tip": "Enter this location at 35 S Dearborn St. This is the entrance address for the 30 W Monroe St. garage, operated by LAZ Parking. It is located on the east/right-hand side of S Dearborn St. (a one-way street) between W Monroe St. and W Madison St.",
      "operator": "LAZ Parking",
      "rating_average": 4.6,
      "rating_count": 3479,
      "title": "35 S Dearborn St. (30 W Monroe St.) - Garage",
      "total_price": 540.75,
      "walking_meters": 204
    },
    {
      "address": "22 West Monroe Street",
      "available": true,
      "base_price": 380,
      "facility_id": 152959,
      "facility_type": "valet_stand",
      "lat": 41.880845,
      "lon": -87.6286,
      "navigation_tip": "Arrive at 22 W Monroe St. This valet stand is for Hampton Inn Majestic operated by LAZ Parking. It is located on the North/Left-hand side of W Monroe St. (a one-way street) between S Dearborn St. and S State St.",
      "operator": "LAZ Parking",
      "rating_average": 4.3,
      "rating_count": 51,
      "title": "22 W Monroe St. - Hampton Inn Majestic Valet Stand",
      "total_price": 391.4,
      "walking_meters": 314
    },
    {
      "address": "181 North Clark Street",
      "available": true,
      "base_price": 135,
      "facility_id": 9001,
      "facility_type": "garage",
      "lat": 41.88541,
      "lon": -87.6306938,
      "navigation_tip": "Enter this location at 181 N Clark St. This is the Government Center garage operated by InterPark. It is located on the east/left-hand side of N Clark St. (a one-way street) between W Lake St. and W Randolph St.",
      "operator": "InterPark Parking",
      "rating_average": 4.9,
      "rating_count": 5,
      "title": "181 N Clark St - Government Center (Monthly)",
      "total_price": 139.05,
      "walking_meters": 384
    }
  ],
  "latitude": 41.881943,
  "longitude": -87.630976,
  "scraped_at": "2026-08-30T12:44:34Z",
  "search_type": "monthly",
  "starts": "2026-09-01T00:00:00-05:00"
}
```
### Illustrative output fields

Derived from the sample above for orientation only. These fields are not a fixed response schema.

| Path | Observed type | Example |
| --- | --- | --- |
| `facilities` | `array` | 3 items |
| `facilities` | `array` | 3 items |
| `latitude` | `number` | 41.881943 |
| `longitude` | `number` | -87.630976 |
| `scraped_at` | `string` | 2026-08-30T12:44:34Z |
| `search_type` | `string` | monthly |
| `starts` | `string` | 2026-09-01T00:00:00-05:00 |

## Execution behavior

A `200` response completed inline. A `202` response was queued; poll `GET /jobs/{id}` until the job reaches `completed` or `failed`. Use an `Idempotency-Key` when retrying must not create a duplicate logical job.

## Related documentation

- [Authentication](https://docs.upscrape.com/docs/api/authentication)
- [Jobs and results](https://docs.upscrape.com/docs/api/jobs)
- [Errors and retries](https://docs.upscrape.com/docs/api/errors)
- [Idempotency](https://docs.upscrape.com/docs/api/idempotency)
