AppyWay Availability RealTime API

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.

OpenAPI Specification

appyway-availability-realtime-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: AppyWay Availability RealTime 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
paths:
  /ping:
    get:
      tags:
        - Status
      summary: AppyWay Ping
      description: Returns Status (pong) of the Availability Realtime service
      operationId: get-ping
      responses:
        '200':
          description: Success
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /queries/fetchAvailabilityByEntityIds:
    post:
      tags:
        - Availability
      summary: AppyWay Fetch realtime availability by entity Ids
      description: Returns the availability for the list of given entity Ids.
      operationId: post-queries-fetchavailabilitybyentityids
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchAvailabilityByEntityIdsQuery'
            example:
              ids:
                - string
          text/json:
            schema:
              $ref: '#/components/schemas/FetchAvailabilityByEntityIdsQuery'
            example:
              ids:
                - string
          application/*+json:
            schema:
              $ref: '#/components/schemas/FetchAvailabilityByEntityIdsQuery'
            example:
              ids:
                - string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ParkingAvailabilityIReadOnlyCollectionOkResponse
              example:
                success: true
                result:
                  - entityId: string
                    entityType: 1
                    dataSourceType: 0
                    groupId: string
                    totalSpaces: 0
                    availableSpaces: 0
                    parentId: 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'
components:
  schemas:
    AvailabilityGroupKey:
      type: object
      properties:
        entityId:
          type: string
          description: Unique identifier for the entity related to the group
          nullable: true
        groupId:
          type: string
          description: Group Id of the aggregation carried out on the entity.
          nullable: true
      additionalProperties: false
    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
    DataSourceType:
      enum:
        - 0
        - 1
        - 2
        - 4
      type: integer
      description: |
        Enumeration for the different data source types

        *Unknown (0) - Unknown
        *Sensor (1) - Sensor
        *Barrier (2) - Barrier
        *Camera (4) - Camera
      format: int32
    EntityType:
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
      type: integer
      description: >
        Enumeration for the different types of Entity


        *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 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.

        *Authority (4) - Defines the area controlled by a particular local
        authority. Authorities may contain zones and may also contain parking
        entities directly.

        *CarParkFloor (5) - An off-street parking facility (car park) floor.

        *CarParkBay (6) - An off-street parking facility (car park) bay.
      format: int32
    Error:
      type: object
      properties:
        property:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
      additionalProperties: false
    FetchAvailabilityByEntityIdsQuery:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
          description: List of Ids of entities to get real time availability for
          nullable: true
      additionalProperties: false
    FetchAvailabilityByGroupAndEntityIdsQuery:
      type: object
      properties:
        keys:
          type: array
          items:
            $ref: '#/components/schemas/AvailabilityGroupKey'
          description: >-
            Availability aggregation group key formed by the group id and entity
            id
          nullable: true
        (Collection):
      additionalProperties: false
    FetchAvailabilityForAllSourceTypesByEntityIdsQuery:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
          description: List of Ids of entities to get real time availability for
          nullable: true
      additionalProperties: false
    FetchAvailabilityForAllSourceTypesByGroupAndEntityIdsQuery:
      type: object
      properties:
        keys:
          type: array
          items:
            $ref: '#/components/schemas/AvailabilityGroupKey'
          description: >-
            Availability aggregation group key formed by the group id and entity
            id
          nullable: true
        (Collection):
      additionalProperties: false
    FetchH3AvailabilityByCentreAndViewportSizeQuery:
      type: object
      properties:
        viewportCenter:
          type: object
          properties:
            lat:
              type: number
              description: Latitude
              format: double
            lng:
              type: number
              description: Longitude
              format: double
          additionalProperties: false
        viewportSize:
          type: integer
          format: int32
        h3Resolution:
          type: integer
          format: int32
      additionalProperties: false
    H3Availability:
      type: object
      properties:
        h3Index:
          type: string
          nullable: true
        availabilityRatio:
          type: number
          format: float
        normalizedRatio:
          type: number
          format: float
      additionalProperties: false
    H3AvailabilityIReadOnlyCollectionOkResponse:
      type: object
      properties:
        success:
          type: boolean
          readOnly: true
        result:
          type: array
          items:
            $ref: '#/components/schemas/H3Availability'
          nullable: true
      additionalProperties: false
    LatLng:
      type: object
      properties:
        lat:
          type: number
          description: Latitude
          format: double
        lng:
          type: number
          description: Longitude
          format: double
      additionalProperties: false
    ParkingAvailability:
      type: object
      properties:
        entityId:
          type: string
          description: Unique identifier for this entity
          nullable: true
        entityType:
          $ref: '#/components/schemas/EntityType'
        dataSourceType:
          $ref: '#/components/schemas/DataSourceType'
        groupId:
          type: string
          description: Aggregation Group Id
          nullable: true
        totalSpaces:
          type: integer
          description: Total Vehicle Spaces for the Entity
          format: int32
        availableSpaces:
          type: integer
          description: Available Vehicle Spaces for the Entity
          format: int32
          nullable: true
        parentId:
          type: string
          description: >-
            OnStreetParking will have a ParentId as the AuthorityId, CarPark
            will have a ParentId as the CarParkId
          nullable: true
      additionalProperties: false
      description: Parking Availability model for our Entities
    ParkingAvailabilityIReadOnlyCollectionOkResponse:
      type: object
      properties:
        success:
          type: boolean
          readOnly: true
        result:
          type: array
          items:
            $ref: '#/components/schemas/ParkingAvailability'
          nullable: true
      additionalProperties: false
  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
  responses:
    TooManyRequests:
      description: Too many requests
    Unauthorized:
      description: Unauthorized
    Forbidden:
      description: Forbidden
security:
  - apiKey: []
  - oAuth2: []
tags:
  - name: Availability
  - name: Status