{
    "openapi": "3.0.0",
    "info": {
      "title": "Information of Automated Teller Machines of retail banks",
      "description": "This API is providing the location and related information of Banks' Automated Teller Machines (ATM).",
      "version": "v1"
    },
    "servers": [
      {
        "url": "https://api.hkma.gov.hk/public/bank-svf-info",
        "variables": {}
      }
    ],
    "paths": {
      "/banks-atm-locator": {
        "get": {
          "summary": "Retrieve information of Bank's ATMs",
          "parameters": [
            {
              "name": "lang",
              "in": "query",
              "description": "",
              "required": true,
              "style": "form",
              "explode": true,
              "schema": {
                "$ref": "#/components/schemas/Lang"
              }
            },
            {
              "name": "pagesize",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            },
            {
              "name": "offset",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "type": "integer",
                "format": "int32"
              }
            },
            {
              "name": "fields",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "column",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "filter",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "choose",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "from",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "to",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "sortby",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "sortorder",
              "in": "query",
              "description": "",
              "style": "form",
              "explode": true,
              "schema": {
                "$ref": "#/components/schemas/Sortorder"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Expected response to a valid request",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/Response"
                  }
                }
              }
            },
            "500": {
              "description": "Unexcpeted error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ErrorResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "components": {
      "schemas": {
        "Header": {
          "title": "Header",
          "type": "object",
          "properties": {
            "success": {
              "type": "boolean"
            },
            "err_code": {
              "type": "string"
            },
            "err_msg": {
              "type": "string"
            }
          }
        },
        "Response": {
          "title": "response",
          "type": "object",
          "properties": {
            "header": {
              "$ref": "#/components/schemas/Header"
            },
            "result": {
              "$ref": "#/components/schemas/Result"
            }
          }
        },
        "Result": {
          "title": "Result",
          "type": "object",
          "properties": {
            "datasize": {
              "type": "integer",
              "format": "int32"
            },
            "records": {
              "type": "array",
              "items": {
                  "$ref": "#/components/schemas/Record"
              },
              "description": ""
            }
          }
        },
        "Record": {
          "title": "Record",
          "type": "object",
          "properties": {
            "district": {
              "type": "string"
            },
            "bank_name": {
              "type": "string"
            },
            "type_of_machine": {
              "type": "string"
            },
            "function": {
              "type": "string"
            },
            "currencies_supported": {
              "type": "string"
            },
            "barrier-free_access": {
              "type": "string"
            },
            "network": {
              "type": "string"
            },
            "address": {
              "type": "string"
            },
            "service_hours": {
              "type": "string"
            },
            "latitude": {
              "type": "number"
            },
            "longitude": {
              "type": "number"
            }
          }
        },
        "Sortorder": {
          "title": "sortorder",
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "example": "asc",
          "x-enum-elements": [
            {
              "name": "asc",
              "description": ""
            },
            {
              "name": "desc",
              "description": ""
            }
          ]
        },
        "Lang": {
          "title": "lang",
          "enum": [
            "en",
            "tc",
            "sc"
          ],
          "type": "string",
          "example": "en",
          "x-enum-elements": [
            {
              "name": "en",
              "description": "Data in English"
            },
            {
              "name": "tc",
              "description": "Data in Traditional Chinese"
            },
            {
              "name": "sc",
              "description": "Data in Simplified Chinese"
            }
          ]
        },
        "ErrorResponse": {
          "title": "errorResponse",
          "type": "object",
          "properties": {
            "header": {
              "$ref": "#/components/schemas/Header"
            }
          }
        }
      }
    }
}