SpotHero · Schema

SpotHero Facility

Schema for a SpotHero parking facility, including location, amenities, operating hours, and capacity.

ParkingMobilityTransportationNavigationReservations

Properties

Name Type Description
facility_id string Unique facility identifier
name string Facility name
description string Facility description and access instructions
address object
coordinates object
phone string Facility phone number in E.164 format
hours object Operating hours by day of the week
amenities array List of available amenities
capacity integer Total parking capacity
entry_instructions string
exit_instructions string
rating number
review_count integer
operator string Parking operator or management company name
facility_type string Type of parking facility
View JSON Schema on GitHub

JSON Schema

spothero-facility-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.spothero.com/schemas/facility",
  "title": "SpotHero Facility",
  "description": "Schema for a SpotHero parking facility, including location, amenities, operating hours, and capacity.",
  "type": "object",
  "properties": {
    "facility_id": {
      "type": "string",
      "description": "Unique facility identifier",
      "examples": ["fac_abc123"]
    },
    "name": {
      "type": "string",
      "description": "Facility name",
      "examples": ["Millennium Park Garage"]
    },
    "description": {
      "type": "string",
      "description": "Facility description and access instructions"
    },
    "address": {
      "type": "object",
      "properties": {
        "street": {"type": "string"},
        "city": {"type": "string"},
        "state": {"type": "string"},
        "zip": {"type": "string"},
        "country": {"type": "string", "default": "US"}
      },
      "required": ["street", "city", "state", "zip"]
    },
    "coordinates": {
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        }
      },
      "required": ["latitude", "longitude"]
    },
    "phone": {
      "type": "string",
      "description": "Facility phone number in E.164 format"
    },
    "hours": {
      "type": "object",
      "description": "Operating hours by day of the week",
      "properties": {
        "is_24_hours": {"type": "boolean"},
        "monday": {"$ref": "#/$defs/dayHours"},
        "tuesday": {"$ref": "#/$defs/dayHours"},
        "wednesday": {"$ref": "#/$defs/dayHours"},
        "thursday": {"$ref": "#/$defs/dayHours"},
        "friday": {"$ref": "#/$defs/dayHours"},
        "saturday": {"$ref": "#/$defs/dayHours"},
        "sunday": {"$ref": "#/$defs/dayHours"}
      }
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "covered", "outdoor", "indoor", "valet", "self_park",
          "handicap_accessible", "ev_charging", "attendant_on_duty",
          "24_hour_security", "monthly_available", "oversized_vehicles",
          "motorcycle", "car_wash", "restrooms"
        ]
      },
      "description": "List of available amenities"
    },
    "capacity": {
      "type": "integer",
      "minimum": 1,
      "description": "Total parking capacity"
    },
    "entry_instructions": {
      "type": "string"
    },
    "exit_instructions": {
      "type": "string"
    },
    "rating": {
      "type": "number",
      "minimum": 0,
      "maximum": 5
    },
    "review_count": {
      "type": "integer",
      "minimum": 0
    },
    "operator": {
      "type": "string",
      "description": "Parking operator or management company name"
    },
    "facility_type": {
      "type": "string",
      "enum": ["garage", "lot", "street", "valet"],
      "description": "Type of parking facility"
    }
  },
  "required": ["facility_id", "name", "address", "coordinates"],
  "$defs": {
    "dayHours": {
      "type": "object",
      "properties": {
        "open": {
          "type": "string",
          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
        },
        "close": {
          "type": "string",
          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
        },
        "closed": {
          "type": "boolean"
        }
      }
    }
  }
}