ATM Locator API
hsbc · Finance
ATM Locator API API
Authentication
Sample Requests
This API will return data about all our ATMs and is prepared to the Open Banking standards as defined by the Open Banking Implementation Entity (OBIE) in data dictionary version 2.2. It is regulated by the UK Competition and Markets Authority (CMA). Data is only available for the United Kingdom.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/open-banking/v2.2/atms"
import requests
response = requests.get(
"https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/open-banking/v2.2/atms",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/open-banking/v2.2/atms'; const response = await fetch(url); const data = await response.json(); console.log(data);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/open-banking/v2.2/atms"
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/open-banking/v2.2/atms")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/open-banking/v2.2/atms";
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));This extended API will return data about all ATMs in the specified country. It is based-on the Open Banking standards as defined by the Open Banking Implementation Entity (OBIE) in data dictionary version 2.2. The extended functionality may not fully adhere to the non-functional requirements of the
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/country/{country}"import requests
response = requests.get(
"https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/country/{country}",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/country/{country}';
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/country/{country}"
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/country/{country}")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/country/{country}";
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));This extended API will return data about all ATMs within a 5 mile radius of the specified postcode. It is based-on the Open Banking standards as defined by the Open Banking Implementation Entity (OBIE) in data dictionary version 2.2. The extended functionality may not fully adhere to the non-functio
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/postcode/{postcode}"import requests
response = requests.get(
"https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/postcode/{postcode}",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/postcode/{postcode}';
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/postcode/{postcode}"
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/postcode/{postcode}")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/hsbc.com/atm/2.2.1/x-open-banking/v2.2/atms/postcode/{postcode}";
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with ATM Locator API?
ATM Locator API is a Finance API. Developers commonly use finance APIs for:
- processing payments and handling transactions
- building subscription and billing systems
- automating invoicing and financial reporting
- fraud detection and risk scoring
- connecting to banking and accounting software
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. ATM Locator API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide