{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/appyway/json-schema/appyway-map-entities-response-ok-response-schema.json",
  "title": "MapEntitiesResponseOkResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/appyway-bulk-api-openapi.yml#/components/schemas/MapEntitiesResponseOkResponse",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "readOnly": true
    },
    "result": {
      "$ref": "#/$defs/MapEntitiesResponse"
    }
  },
  "additionalProperties": false,
  "$defs": {
    "Address": {
      "type": "object",
      "properties": {
        "street": {
          "type": [
            "string",
            "null"
          ],
          "description": "Street address"
        },
        "city": {
          "type": [
            "string",
            "null"
          ],
          "description": "Town or city"
        },
        "country": {
          "type": [
            "string",
            "null"
          ],
          "description": "Country"
        },
        "postcode": {
          "type": [
            "string",
            "null"
          ],
          "description": "Postal code"
        }
      },
      "additionalProperties": false,
      "description": "A standard address for an Onstreet bay or Car park"
    },
    "Authority": {
      "type": "object",
      "properties": {
        "entityId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier for this entity"
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "User-readable name for this entity"
        },
        "eTag": {
          "type": [
            "string",
            "null"
          ],
          "description": "ETag for the entity. The ETag is specific to each version of this entity and changes whenever the entity data changes. Clients can\nsend the eTags of cached entities to the server when requesting data and the server can return only entities for which the current ETag does\nnot match the requested tag - i.e. just those entities that have changed."
        },
        "notes": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/Note"
          },
          "description": "Any special notes associated with this authority"
        },
        "paymentProviders": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/PaymentProvider"
          }
        },
        "entityType": {
          "$ref": "#/$defs/MapEntityType"
        },
        "countryId": {
          "type": [
            "string",
            "null"
          ],
          "description": "ID of the country in which the authority resides"
        },
        "geometry": {
          "$ref": "#/$defs/GeometryCollection"
        },
        "hasFreeParkingOutsideZone": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "This flag gives an indication of whether parking is likely to be available outside of designated\ncontrolled parking zones. The flag indicates the availability of parking for sections of the kerb where\nthis API does NOT return a specific OnStreetParking result. If TRUE, parking is likely to be free and\nunrestricted where the Parking Search results do not indicate otherwise. if FALSE, it is likely to be no parking.\n            \nThis is an indication only, and clients should inform their end users that they should always check local\nsignage when parking.\n            \nIf NULL, it is not known whether parking is available for this authority outside of designated zones.\n            \nNOTE that inside controlled parking zones, it is likely that parking is not available in areas where no\nOnStreetParking result is returned."
        }
      },
      "additionalProperties": false,
      "description": "Defines the area controlled by a particular local authority. Authorities may contain zones and may also contain parking entities directly."
    },
    "BasemapTranslation": {
      "enum": [
        1,
        2
      ],
      "type": "integer",
      "description": "Enumeration for the different types of base maps\n\n*OrdnanceSurvey (1) - Ordnance Survey: Realistic mapping\n*OpenStreetMaps (2) - Open street map.\n",
      "format": "int32"
    },
    "CarParkOperator": {
      "type": "object",
      "properties": {
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier (if the payment provider is present on Reference API)"
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "Provider name"
        },
        "cardPaymentsExternalUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "URL for taking payments (if online payments are supported)"
        },
        "paymentsTelephone": {
          "type": [
            "string",
            "null"
          ],
          "description": "Phone number for taking payments (if pay-by-phone is supported)"
        },
        "paymentsAppDeepLinks": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": {
            "$ref": "#/$defs/PaymentDeepLinks"
          },
          "description": "Payment Mobile apps deep links by platform"
        },
        "telephone": {
          "type": [
            "string",
            "null"
          ],
          "description": "Operator phone number"
        },
        "website": {
          "type": [
            "string",
            "null"
          ],
          "description": "Operator website"
        }
      },
      "additionalProperties": false,
      "description": "Details of the operator for a car park, including telephone numbers and URLs for phone and online payments (if applicable)"
    },
    "Crs": {
      "type": "object",
      "properties": {
        "type": {
          "type": [
            "string",
            "null"
          ]
        },
        "properties": {
          "$ref": "#/$defs/CrsProperties"
        }
      },
      "additionalProperties": false
    },
    "CrsProperties": {
      "type": "object",
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "FeatureInfo": {
      "type": "object",
      "properties": {
        "basemap": {
          "$ref": "#/$defs/BasemapTranslation"
        }
      },
      "additionalProperties": false,
      "description": "Provides information about the geometry contained in the feature"
    },
    "Geometry": {
      "type": "object",
      "properties": {
        "type": {
          "type": [
            "string",
            "null"
          ]
        },
        "crs": {
          "$ref": "#/$defs/Crs"
        }
      },
      "additionalProperties": false
    },
    "GeometryCollection": {
      "type": "object",
      "properties": {
        "type": {
          "type": [
            "string",
            "null"
          ]
        },
        "crs": {
          "$ref": "#/$defs/Crs"
        },
        "geometries": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/Geometry"
          }
        }
      },
      "additionalProperties": false
    },
    "GeometryCollectionFeatureInfoFeature": {
      "type": "object",
      "properties": {
        "type": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "geometry": {
          "$ref": "#/$defs/GeometryCollection"
        },
        "properties": {
          "$ref": "#/$defs/FeatureInfo"
        }
      },
      "additionalProperties": false
    },
    "GeometryCollectionFeatureInfoFeatureCollection": {
      "type": "object",
      "properties": {
        "type": {
          "type": [
            "string",
            "null"
          ]
        },
        "features": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/GeometryCollectionFeatureInfoFeature"
          }
        },
        "properties": {}
      },
      "additionalProperties": false
    },
    "MapEntitiesResponse": {
      "type": "object",
      "properties": {
        "parkingEntities": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ParkingEntity"
          },
          "description": "Parking entities returned from the query"
        },
        "zones": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/Zone"
          },
          "description": "Zones returned from the query"
        },
        "authorities": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/Authority"
          },
          "description": "Authorities returned from the query"
        }
      },
      "additionalProperties": false,
      "description": "Response shape for a request for multiple Map Entities"
    },
    "MapEntityType": {
      "enum": [
        1,
        2,
        3,
        4
      ],
      "type": "integer",
      "description": "Enumeration for the different types of Map Entity - objects returned by the API that can be drawn on a map.\n\n*OnStreet (1) - An on-street parking area\n*Carpark (2) - An off-street parking facility (car park) including surface and multi-storey car parks.\n*Zone (3) - A zone is an area defined by the local authority that acts as a container for a set of On-Street and Car park entities.\nA zone may define common parking rules that are applicable generally across parts of the kerb (e.g. Single Yellow Lines) and may\ndefine rules parking entities that can be overridden by individual entities.\n*Authority (4) - Defines the area controlled by a particular local authority. Authorities may contain zones and may also contain parking entities directly.\n",
      "format": "int32"
    },
    "Note": {
      "type": "object",
      "properties": {
        "message": {
          "type": [
            "string",
            "null"
          ],
          "description": "The text of the note"
        }
      },
      "additionalProperties": false,
      "description": "Models a note that can be attached to an entity"
    },
    "OnStreetParkingType": {
      "enum": [
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        32,
        33,
        34,
        35,
        36,
        37,
        -1
      ],
      "type": "integer",
      "description": "Indicates the type of on an OnStreet bay.\n\n*StandardBay (1) - Standard bay (paid or free)\n*DisabledBay (2) - A bay requiring a disabled badge / permit during restricted hours\n*MotorcycleBay (3) - Designated motorcycle bay\n*ElectricBay (4) - A bay designated for electric vehicles only\n*CarClubBay (5) - A bay designated for Car Club members only during restricted hours\n*CoachBay (6) - A bay with space for a coach\n*LoadingBay (7) - A bay that allows Loading Only during restricted hours\n*TaxiBay (8) - Taxi bay\n*ResidentBay (9) - A bay designated for resident permit holders during restricted hours\n*SpecialBay (10) - A bay with special restrictions, e.g. RNLI, High Court or Ambulance bays\n*SingleYellowLine (11) - Single yellow line\n*DoubleYellowLine (12) - Double yellow line\n*SingleRedLine (13) - Single red line\n*DoubleRedLine (14) - Double red line\n*SingleYellowKerbMark (15) - Single yellow kerb marks\n*DoubleYellowKerbMark (16) - Double yellow kerb marks\n*KeepClearLine (17) - Keep Clear lines\n*DroppedKerbDriveway (18) - A dropped kerb driveway\n*RedRouteBay (19) - Red route bay\n*BusStop (20) - Bus stop\n*BusinessBay (21) - A business bay\n*DoctorBay (22) - A doctor's bay\n*HospitalBay (23) - An hospital bay\n*MarketTraderBay (24) - A market trader bay\n*HotelBay (25) - A Hotel bay\n*PoliceBay (26) - A police bay\n*RnliBay (27) - An RNLI bay\n*SupremeCourtBay (28) - Supreme court bay\n*AmbulanceBay (29) - An ambulance bay\n*CycleHireBay (30) - Cycle hire bay\n*CycleHangar (31) - Cycle hangar\n*AdvisorySchoolKeepClearLine (32) - Advisory school keep clear line\n*MobileLibraryBay (33) - A mobile library bay\n*DiplomatBay (34) - A diplomat bay\n*FireBrigade (35) - Fire brigade\n*CycleRack (36) - Cycle rack\n*SchoolKeepClearLine (37) - School keep clear line\n*None (-1) - Standard bay (paid or free)\n",
      "format": "int32"
    },
    "ParkingEntity": {
      "type": "object",
      "properties": {
        "entityId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier for this entity"
        },
        "entityType": {
          "$ref": "#/$defs/MapEntityType"
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "User-readable name for this entity"
        },
        "eTag": {
          "type": [
            "string",
            "null"
          ],
          "description": "ETag for the entity. The ETag is specific to each version of this entity and changes whenever the entity data changes. Clients can\nsend the eTags of cached entities to the server when requesting data and the server can return only entities for which the current ETag does\nnot match the requested tag - i.e. just those entities that have changed."
        },
        "address": {
          "$ref": "#/$defs/Address"
        },
        "locationCode": {
          "type": [
            "string",
            "null"
          ],
          "description": "A unique code for each parking entity assigned by a payment provider and is their identifier for payment purposes"
        },
        "totalCapacity": {
          "type": [
            "integer",
            "null"
          ],
          "description": "How many vehicles can be parked at the parking entity. May be approximate (in the case of unmarked bays)",
          "format": "int32"
        },
        "zoneId": {
          "type": [
            "string",
            "null"
          ],
          "description": "ID of the zone in which the parking entity resides"
        },
        "authorityId": {
          "type": [
            "string",
            "null"
          ],
          "description": "ID of the authority in which the parking entity resides"
        },
        "features": {
          "$ref": "#/$defs/GeometryCollectionFeatureInfoFeatureCollection"
        },
        "paymentMethodIds": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "integer",
            "format": "int32"
          },
          "description": "Payment methods supported at this on-street location."
        },
        "operator": {
          "$ref": "#/$defs/CarParkOperator"
        },
        "onStreetParkingTypeIds": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/OnStreetParkingType"
          },
          "description": "The types of road markings represented by this entity. This property is only present for On Street Parking entities.\n\n*StandardBay (1) - Standard bay (paid or free)\n*DisabledBay (2) - A bay requiring a disabled badge / permit during restricted hours\n*MotorcycleBay (3) - Designated motorcycle bay\n*ElectricBay (4) - A bay designated for electric vehicles only\n*CarClubBay (5) - A bay designated for Car Club members only during restricted hours\n*CoachBay (6) - A bay with space for a coach\n*LoadingBay (7) - A bay that allows Loading Only during restricted hours\n*TaxiBay (8) - Taxi bay\n*ResidentBay (9) - A bay designated for resident permit holders during restricted hours\n*SpecialBay (10) - A bay with special restrictions, e.g. RNLI, High Court or Ambulance bays\n*SingleYellowLine (11) - Single yellow line\n*DoubleYellowLine (12) - Double yellow line\n*SingleRedLine (13) - Single red line\n*DoubleRedLine (14) - Double red line\n*SingleYellowKerbMark (15) - Single yellow kerb marks\n*DoubleYellowKerbMark (16) - Double yellow kerb marks\n*KeepClearLine (17) - Keep Clear lines\n*DroppedKerbDriveway (18) - A dropped kerb driveway\n*RedRouteBay (19) - Red route bay\n*BusStop (20) - Bus stop\n*BusinessBay (21) - A business bay\n*DoctorBay (22) - A doctor's bay\n*HospitalBay (23) - An hospital bay\n*MarketTraderBay (24) - A market trader bay\n*HotelBay (25) - A Hotel bay\n*PoliceBay (26) - A police bay\n*RnliBay (27) - An RNLI bay\n*SupremeCourtBay (28) - Supreme court bay\n*AmbulanceBay (29) - An ambulance bay\n*CycleHireBay (30) - Cycle hire bay\n*CycleHangar (31) - Cycle hangar\n*AdvisorySchoolKeepClearLine (32) - Advisory school keep clear line\n*MobileLibraryBay (33) - A mobile library bay\n*DiplomatBay (34) - A diplomat bay\n*FireBrigade (35) - Fire brigade\n*CycleRack (36) - Cycle rack\n*SchoolKeepClearLine (37) - School keep clear line\n*None (-1) - Standard bay (paid or free)\n"
        },
        "facilityTypeIds": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "integer",
            "format": "int32"
          },
          "description": "Any special facilities available at this on-street location, e.g. charging points for EVs. This property is only present for On Street Parking entities."
        },
        "venueId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The venue id"
        }
      },
      "additionalProperties": false,
      "description": "Base class for Map Entities that support parking, either on-street or car parks"
    },
    "PaymentDeepLinks": {
      "type": "object",
      "properties": {
        "schemas": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "Deep link schemas (eg: ringgo://, etc)"
        },
        "packageName": {
          "type": [
            "string",
            "null"
          ],
          "description": "Deep link package name (only applies to android, eg: co.uk.ringgo.android)"
        }
      },
      "additionalProperties": false
    },
    "PaymentProvider": {
      "type": "object",
      "properties": {
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier (if the payment provider is present on Reference API)"
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "Provider name"
        },
        "cardPaymentsExternalUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "URL for taking payments (if online payments are supported)"
        },
        "paymentsTelephone": {
          "type": [
            "string",
            "null"
          ],
          "description": "Phone number for taking payments (if pay-by-phone is supported)"
        },
        "paymentsAppDeepLinks": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": {
            "$ref": "#/$defs/PaymentDeepLinks"
          },
          "description": "Payment Mobile apps deep links by platform"
        }
      },
      "additionalProperties": false,
      "description": "Indicates the payment provider that you can use to pay for an stay at a Parking Entity"
    },
    "Zone": {
      "type": "object",
      "properties": {
        "entityId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier for this entity"
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "User-readable name for this entity"
        },
        "eTag": {
          "type": [
            "string",
            "null"
          ],
          "description": "ETag for the entity. The ETag is specific to each version of this entity and changes whenever the entity data changes. Clients can\nsend the eTags of cached entities to the server when requesting data and the server can return only entities for which the current ETag does\nnot match the requested tag - i.e. just those entities that have changed."
        },
        "geometry": {
          "$ref": "#/$defs/GeometryCollection"
        },
        "notes": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/Note"
          },
          "description": "Any special note associated with this zone"
        },
        "authorityId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The authority containing this zone"
        },
        "zoneType": {
          "$ref": "#/$defs/ZoneType"
        },
        "venueId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The venue id"
        },
        "entityType": {
          "$ref": "#/$defs/MapEntityType"
        }
      },
      "additionalProperties": false,
      "description": "A zone is an area defined by the local authority that acts as a container for a set of OnStreet and CarPark entities.\nA zone may define common parking rules that are applicable generally across parts of the kerb (e.g. Single Yellow Lines) and may\ndefine rules parking entities that can be overridden by individual entities."
    },
    "ZoneType": {
      "enum": [
        1,
        2,
        3,
        4,
        5,
        7,
        8,
        9,
        10
      ],
      "type": "integer",
      "description": "Different types of Zone\n\n*ControlledParkingZone (1) - An ordinary zone in which authority-defined restrictions are in place.\n*RestrictedParkingZone (2) - A zone in which parking is never allowed.\n*FreeParking (3) - A zone in which parking is always allowed.\n*Private (4) - A region not under authority control (such as a shopping centre).\n*CongestionCharge (5) - A region in which congestion charges apply.\n*Container (7) - A zone that exists to contain On Street Parking entities that don't really belong in a zone.\n*ResidentsParkingScheme (8) - A zone in which a resident's permit parking scheme applies\n*PermitParkingArea (9) - Area of residential streets where parking is reserved for permit holders Gn++n++ a sign at the entrance to the street will show that parking is for permit holders only. \nPPAs may not have signs or bay markings within them. Sometimes there may be small plates to remind motorists of the controls in place\n*PedestrianZone (10) - Pedestrian area where no parking is allowed\n",
      "format": "int32"
    }
  }
}