openapi: 3.0.1 info: title: AppyWay Availability RealTime ActivityTypes Zones API version: '1.0' description: AppyWay Availability RealTime API allows businesses to access real-time data on parking availability, traffic congestion, and road closure information. This API provides up-to-the-minute updates on parking spots, helping users find and reserve parking spaces quickly and easily. By providing this information in real-time, businesses can improve customer satisfaction and reduce the frustration of searching for parking. Additionally, the API helps businesses optimize their operations by providing detailed information on traffic conditions and road closures, allowing for more efficient route planning and delivery scheduling. Overall, the AppyWay Availability RealTime API is a valuable tool for businesses looking to streamline their operations and improve the customer experience. servers: - url: https://api.appyway.com/v1/availability-realtime security: - apiKey: [] - oAuth2: [] tags: - name: Zones paths: /fetchZoneById: post: tags: - Zones summary: AppyWay Fetch a zone by ID description: Returns a specific zone by its ID operationId: post-fetchzonebyid requestBody: content: application/json: schema: $ref: '#/components/schemas/FetchZoneByIdQuery' example: id: string text/json: schema: $ref: '#/components/schemas/FetchZoneByIdQuery' example: id: string application/*+json: schema: $ref: '#/components/schemas/FetchZoneByIdQuery' example: id: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ZoneOkResponse' example: success: true result: entityId: string name: string eTag: string geometry: type: string crs: type: string properties: name: string geometries: - type: string crs: type: string properties: name: string notes: - message: string authorityId: string zoneType: 1 venueId: string entityType: 1 '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' example: success: true message: string '429': $ref: '#/components/responses/TooManyRequests' /fetchZoneDefaultRulesById: post: tags: - Zones summary: AppyWay Fetch zone default rules by id description: Returns default rules for parking entities by zone ID. operationId: post-fetchzonedefaultrulesbyid requestBody: content: application/json: schema: $ref: '#/components/schemas/FetchZoneDefaultRulesByIdQuery' example: startTime: string id: string includeNotApplicableTimes: true onStreetParkingTypeIds: - 1 endTime: string text/json: schema: $ref: '#/components/schemas/FetchZoneDefaultRulesByIdQuery' example: startTime: string id: string includeNotApplicableTimes: true onStreetParkingTypeIds: - 1 endTime: string application/*+json: schema: $ref: '#/components/schemas/FetchZoneDefaultRulesByIdQuery' example: startTime: string id: string includeNotApplicableTimes: true onStreetParkingTypeIds: - 1 endTime: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ZoneDefaultRulesResultOkResponse' example: success: true result: entityId: string entityETag: string zoneType: 1 defaults: - onStreetParkingTypeId: 1 applicableTimes: - startTime: string endTime: string maxStay: 0 notApplicableTimes: - startTime: string endTime: string '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' example: success: true message: string errors: - property: string code: string message: string '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' /findZoneDefaultRulesByViewport: post: tags: - Zones summary: AppyWay Find zone default rules by viewport description: Returns default rules for parking entities for zones that are at least partially within the specified GeoJson viewport. operationId: post-findzonedefaultrulesbyviewport requestBody: content: application/json: schema: $ref: '#/components/schemas/FindZoneDefaultRulesByViewportQuery' example: startTime: string viewport: type: string crs: type: string properties: name: string coordinates: - - - 0 distanceCalculationLocation: lat: 0 lng: 0 includeNotApplicableTimes: true endTime: string onStreetParkingTypeIds: - 1 text/json: schema: $ref: '#/components/schemas/FindZoneDefaultRulesByViewportQuery' example: startTime: string viewport: type: string crs: type: string properties: name: string coordinates: - - - 0 distanceCalculationLocation: lat: 0 lng: 0 includeNotApplicableTimes: true endTime: string onStreetParkingTypeIds: - 1 application/*+json: schema: $ref: '#/components/schemas/FindZoneDefaultRulesByViewportQuery' example: startTime: string viewport: type: string crs: type: string properties: name: string coordinates: - - - 0 distanceCalculationLocation: lat: 0 lng: 0 includeNotApplicableTimes: true endTime: string onStreetParkingTypeIds: - 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ZoneSearchResponseOkResponse' example: success: true result: zones: - entityId: string entityETag: string zoneType: 1 defaults: - onStreetParkingTypeId: 1 applicableTimes: - startTime: string endTime: string maxStay: 0 notApplicableTimes: - startTime: string endTime: string distance: 0 zoneContainingLocation: entityId: string entityETag: string zoneType: 1 defaults: - onStreetParkingTypeId: 1 applicableTimes: - startTime: string endTime: string maxStay: 0 notApplicableTimes: - startTime: string endTime: string distance: 0 '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' example: success: true message: string errors: - property: string code: string message: string '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' components: schemas: ZoneSearchResult: type: object properties: entityId: type: string description: Entity ID of the zone referred to by this result nullable: true entityETag: type: string description: 'The Etag of the current latest version of the Zone referred to by this result. This allows clients to determine if they have the latest version of the zone in their local cache and only request the entity if it is missing.' nullable: true zoneType: $ref: '#/components/schemas/ZoneType' defaults: type: array items: $ref: '#/components/schemas/ZoneDefault' description: List of defaults for this zone nullable: true distance: type: number description: 'How far away the zone is, in meters. Distances are relative to the DistanceCalculationLocation if supplied in the query, otherwise they are relative to the centre of the viewport. If the DistanceCalculationLocation / viewport centre is inside the zone, this value will be zero. Otherwise it will be the direct distance to the nearest point on the zone boundary.' format: double nullable: true additionalProperties: false description: Represents a single result returned from a search for zones ZoneSearchResponse: type: object properties: zones: type: array items: $ref: '#/components/schemas/ZoneSearchResult' description: List of search results returned in this response nullable: true zoneContainingLocation: $ref: '#/components/schemas/ZoneSearchResult' additionalProperties: false description: Response shape for zone search requests GeometryCollection: type: object properties: type: type: string nullable: true crs: $ref: '#/components/schemas/Crs' geometries: type: array items: $ref: '#/components/schemas/Geometry' nullable: true additionalProperties: false 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. *StandardBay (1) - Standard bay (paid or free) *DisabledBay (2) - A bay requiring a disabled badge / permit during restricted hours *MotorcycleBay (3) - Designated motorcycle bay *ElectricBay (4) - A bay designated for electric vehicles only *CarClubBay (5) - A bay designated for Car Club members only during restricted hours *CoachBay (6) - A bay with space for a coach *LoadingBay (7) - A bay that allows Loading Only during restricted hours *TaxiBay (8) - Taxi bay *ResidentBay (9) - A bay designated for resident permit holders during restricted hours *SpecialBay (10) - A bay with special restrictions, e.g. RNLI, High Court or Ambulance bays *SingleYellowLine (11) - Single yellow line *DoubleYellowLine (12) - Double yellow line *SingleRedLine (13) - Single red line *DoubleRedLine (14) - Double red line *SingleYellowKerbMark (15) - Single yellow kerb marks *DoubleYellowKerbMark (16) - Double yellow kerb marks *KeepClearLine (17) - Keep Clear lines *DroppedKerbDriveway (18) - A dropped kerb driveway *RedRouteBay (19) - Red route bay *BusStop (20) - Bus stop *BusinessBay (21) - A business bay *DoctorBay (22) - A doctor''s bay *HospitalBay (23) - An hospital bay *MarketTraderBay (24) - A market trader bay *HotelBay (25) - A Hotel bay *PoliceBay (26) - A police bay *RnliBay (27) - An RNLI bay *SupremeCourtBay (28) - Supreme court bay *AmbulanceBay (29) - An ambulance bay *CycleHireBay (30) - Cycle hire bay *CycleHangar (31) - Cycle hangar *AdvisorySchoolKeepClearLine (32) - Advisory school keep clear line *MobileLibraryBay (33) - A mobile library bay *DiplomatBay (34) - A diplomat bay *FireBrigade (35) - Fire brigade *CycleRack (36) - Cycle rack *SchoolKeepClearLine (37) - School keep clear line *None (-1) - Standard bay (paid or free) ' format: int32 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. *OnStreet (1) - An on-street parking area *Carpark (2) - An off-street parking facility (car park) including surface and multi-storey car parks. *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. A zone may define common parking rules that are applicable generally across parts of the kerb (e.g. Single Yellow Lines) and may define rules parking entities that can be overridden by individual entities. *Authority (4) - Defines the area controlled by a particular local authority. Authorities may contain zones and may also contain parking entities directly. ' format: int32 ZoneDefaultApplicableTime: type: object properties: startTime: type: string description: The time and date that the window starts format: date-time endTime: type: string description: The time and date that the window ends format: date-time maxStay: type: integer description: The maximum stay policy that applies during this time window. NULL if there is no maximum stay. format: int32 nullable: true additionalProperties: false description: Represents a window of time during which a zone default applies. BadRequestResponse: type: object properties: success: type: boolean readOnly: true message: type: string nullable: true errors: type: array items: $ref: '#/components/schemas/Error' nullable: true additionalProperties: false CrsProperties: type: object properties: name: type: string nullable: true additionalProperties: false ZoneDefaultNotApplicableTime: type: object properties: startTime: type: string description: The time and date that the window starts format: date-time endTime: type: string description: The time and date that the window ends format: date-time additionalProperties: false description: Represents a window of time during which a zone default do not applies. ZoneDefaultRulesResult: type: object properties: entityId: type: string description: Entity ID of the zone referred to by this result nullable: true entityETag: type: string description: 'The Etag of the current latest version of the Zone referred to by this result. This allows clients to determine if they have the latest version of the zone in their local cache and only request the entity if it is missing.' nullable: true zoneType: $ref: '#/components/schemas/ZoneType' defaults: type: array items: $ref: '#/components/schemas/ZoneDefault' description: List of defaults for this zone nullable: true additionalProperties: false 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 Note: type: object properties: message: type: string description: The text of the note nullable: true additionalProperties: false description: Models a note that can be attached to an entity FindZoneDefaultRulesByViewportQuery: required: - startTime - viewport type: object properties: viewport: type: object properties: type: type: string nullable: true crs: $ref: '#/components/schemas/Crs' coordinates: type: array items: type: array items: type: array items: type: number format: double nullable: true additionalProperties: false description: Viewport for the query, expressed as a GeoJson polygon !:https://tools.ietf.org/html/rfc7946#section-3.1.6. Required. Limited to 70km2. startTime: minLength: 1 type: string description: 'Start of the window for which to retrieve state. Required. Dates/times should be provided in ISO8601 format: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)' format: date-time endTime: type: string description: 'End of the window for which to retrieve state. Required. Dates/times should be provided in ISO8601 format: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)' format: date-time onStreetParkingTypeIds: type: array items: $ref: '#/components/schemas/OnStreetParkingType' description: 'On Street Parking types for which to return state. Optional. If omitted, defaults are returned for all the on-street parking types in the zone for which they are defined. *StandardBay (1) - Standard bay (paid or free) *DisabledBay (2) - A bay requiring a disabled badge / permit during restricted hours *MotorcycleBay (3) - Designated motorcycle bay *ElectricBay (4) - A bay designated for electric vehicles only *CarClubBay (5) - A bay designated for Car Club members only during restricted hours *CoachBay (6) - A bay with space for a coach *LoadingBay (7) - A bay that allows Loading Only during restricted hours *TaxiBay (8) - Taxi bay *ResidentBay (9) - A bay designated for resident permit holders during restricted hours *SpecialBay (10) - A bay with special restrictions, e.g. RNLI, High Court or Ambulance bays *SingleYellowLine (11) - Single yellow line *DoubleYellowLine (12) - Double yellow line *SingleRedLine (13) - Single red line *DoubleRedLine (14) - Double red line *SingleYellowKerbMark (15) - Single yellow kerb marks *DoubleYellowKerbMark (16) - Double yellow kerb marks *KeepClearLine (17) - Keep Clear lines *DroppedKerbDriveway (18) - A dropped kerb driveway *RedRouteBay (19) - Red route bay *BusStop (20) - Bus stop *BusinessBay (21) - A business bay *DoctorBay (22) - A doctor''s bay *HospitalBay (23) - An hospital bay *MarketTraderBay (24) - A market trader bay *HotelBay (25) - A Hotel bay *PoliceBay (26) - A police bay *RnliBay (27) - An RNLI bay *SupremeCourtBay (28) - Supreme court bay *AmbulanceBay (29) - An ambulance bay *CycleHireBay (30) - Cycle hire bay *CycleHangar (31) - Cycle hangar *AdvisorySchoolKeepClearLine (32) - Advisory school keep clear line *MobileLibraryBay (33) - A mobile library bay *DiplomatBay (34) - A diplomat bay *FireBrigade (35) - Fire brigade *CycleRack (36) - Cycle rack *SchoolKeepClearLine (37) - School keep clear line *None (-1) - Standard bay (paid or free) ' nullable: true distanceCalculationLocation: type: object properties: lat: type: number description: Latitude format: double lng: type: number description: Longitude format: double additionalProperties: false description: 'Custom location within the viewport from which to calculate distances for returned results. Optional. If omitted, distances will be calculated from the centre of the viewport. This field is useful if you want to display or order results by distance from a given point that is not the centre of your requested viewport.' includeNotApplicableTimes: type: boolean description: Include all the time windows for which the zone defaults not applies and intersect with the requested period. additionalProperties: false description: A request to search for zone default information by viewport Crs: type: object properties: type: type: string nullable: true properties: $ref: '#/components/schemas/CrsProperties' additionalProperties: false ZoneDefaultRulesResultOkResponse: type: object properties: success: type: boolean readOnly: true result: $ref: '#/components/schemas/ZoneDefaultRulesResult' additionalProperties: false ZoneOkResponse: type: object properties: success: type: boolean readOnly: true result: $ref: '#/components/schemas/Zone' additionalProperties: false ZoneDefault: type: object properties: onStreetParkingTypeId: $ref: '#/components/schemas/OnStreetParkingType' applicableTimes: type: array items: $ref: '#/components/schemas/ZoneDefaultApplicableTime' description: "All the time windows for which this zone default applies which intersect the requested period. \nAny window that applies for at least part of the requested period will be returned." nullable: true notApplicableTimes: type: array items: $ref: '#/components/schemas/ZoneDefaultNotApplicableTime' description: All the time windows for which this zone default not applies and intersect the requested period. nullable: true additionalProperties: false description: A default zone-wide setting that applies to all parking entities of the given bay type unless overridden specifically at the Parking Entity level Zone: type: object properties: entityId: type: string description: Unique identifier for this entity nullable: true name: type: string description: User-readable name for this entity nullable: true eTag: type: string description: 'ETag for the entity. The ETag is specific to each version of this entity and changes whenever the entity data changes. Clients can send the eTags of cached entities to the server when requesting data and the server can return only entities for which the current ETag does not match the requested tag - i.e. just those entities that have changed.' nullable: true geometry: $ref: '#/components/schemas/GeometryCollection' notes: type: array items: $ref: '#/components/schemas/Note' description: Any special note associated with this zone nullable: true authorityId: type: string description: The authority containing this zone nullable: true zoneType: $ref: '#/components/schemas/ZoneType' venueId: type: string description: The venue id nullable: true entityType: $ref: '#/components/schemas/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. A zone may define common parking rules that are applicable generally across parts of the kerb (e.g. Single Yellow Lines) and may define rules parking entities that can be overridden by individual entities.' FetchZoneDefaultRulesByIdQuery: required: - id - startTime type: object properties: id: minLength: 1 type: string description: Identifier of the Zone to fetch startTime: minLength: 1 type: string description: 'Start of the window for which to retrieve state. Required. Dates/times should be provided in ISO8601 format: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)' format: date-time endTime: type: string description: 'End of the window for which to retrieve state. Required. Dates/times should be provided in ISO8601 format: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)' format: date-time onStreetParkingTypeIds: type: array items: $ref: '#/components/schemas/OnStreetParkingType' description: 'On-Street Parking types for which to return state. Optional. If omitted, defaults are returned for all the on-street parking types in the zone for which they are defined. *StandardBay (1) - Standard bay (paid or free) *DisabledBay (2) - A bay requiring a disabled badge / permit during restricted hours *MotorcycleBay (3) - Designated motorcycle bay *ElectricBay (4) - A bay designated for electric vehicles only *CarClubBay (5) - A bay designated for Car Club members only during restricted hours *CoachBay (6) - A bay with space for a coach *LoadingBay (7) - A bay that allows Loading Only during restricted hours *TaxiBay (8) - Taxi bay *ResidentBay (9) - A bay designated for resident permit holders during restricted hours *SpecialBay (10) - A bay with special restrictions, e.g. RNLI, High Court or Ambulance bays *SingleYellowLine (11) - Single yellow line *DoubleYellowLine (12) - Double yellow line *SingleRedLine (13) - Single red line *DoubleRedLine (14) - Double red line *SingleYellowKerbMark (15) - Single yellow kerb marks *DoubleYellowKerbMark (16) - Double yellow kerb marks *KeepClearLine (17) - Keep Clear lines *DroppedKerbDriveway (18) - A dropped kerb driveway *RedRouteBay (19) - Red route bay *BusStop (20) - Bus stop *BusinessBay (21) - A business bay *DoctorBay (22) - A doctor''s bay *HospitalBay (23) - An hospital bay *MarketTraderBay (24) - A market trader bay *HotelBay (25) - A Hotel bay *PoliceBay (26) - A police bay *RnliBay (27) - An RNLI bay *SupremeCourtBay (28) - Supreme court bay *AmbulanceBay (29) - An ambulance bay *CycleHireBay (30) - Cycle hire bay *CycleHangar (31) - Cycle hangar *AdvisorySchoolKeepClearLine (32) - Advisory school keep clear line *MobileLibraryBay (33) - A mobile library bay *DiplomatBay (34) - A diplomat bay *FireBrigade (35) - Fire brigade *CycleRack (36) - Cycle rack *SchoolKeepClearLine (37) - School keep clear line *None (-1) - Standard bay (paid or free) ' nullable: true includeNotApplicableTimes: type: boolean description: Include all the time windows for which the zone defaults not applies and intersect with the requested period. additionalProperties: false NotFoundResponse: type: object properties: success: type: boolean readOnly: true message: type: string nullable: true additionalProperties: false FetchZoneByIdQuery: required: - id type: object properties: id: minLength: 1 type: string description: Identifier of the Zone to fetch additionalProperties: false ZoneSearchResponseOkResponse: type: object properties: success: type: boolean readOnly: true result: $ref: '#/components/schemas/ZoneSearchResponse' additionalProperties: false Geometry: type: object properties: type: type: string nullable: true crs: $ref: '#/components/schemas/Crs' additionalProperties: false Error: type: object properties: property: type: string nullable: true code: type: string nullable: true message: type: string nullable: true additionalProperties: false responses: Forbidden: description: Forbidden Unauthorized: description: Unauthorized TooManyRequests: description: Too many requests securitySchemes: apiKey: name: API-KEY in: header type: apiKey oAuth2: flows: authorizationCode: scopes: {} authorizationUrl: https://auth.appyway.com/authorize tokenUrl: https://auth.appyway.com/oauth/token type: oauth2