Branch Locator API
hsbc · Finance
Branch Locator API API
Authentication
Sample Requests
This API will return the branch details for all branches 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
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/hsbc.com/branches/2.2.1/open-banking/v2.2/branches"
import requests
response = requests.get(
"https://api.apis.guru/v2/specs/hsbc.com/branches/2.2.1/open-banking/v2.2/branches",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/hsbc.com/branches/2.2.1/open-banking/v2.2/branches'; 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/branches/2.2.1/open-banking/v2.2/branches"
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/branches/2.2.1/open-banking/v2.2/branches")
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/branches/2.2.1/open-banking/v2.2/branches";
$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 the branch details for all branches 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 requ
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/hsbc.com/branches/2.2.1/x-open-banking/v2.2/branches/country/{country}"import requests
response = requests.get(
"https://api.apis.guru/v2/specs/hsbc.com/branches/2.2.1/x-open-banking/v2.2/branches/country/{country}",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/hsbc.com/branches/2.2.1/x-open-banking/v2.2/branches/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/branches/2.2.1/x-open-banking/v2.2/branches/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/branches/2.2.1/x-open-banking/v2.2/branches/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/branches/2.2.1/x-open-banking/v2.2/branches/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 the branch details for all branches 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
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/hsbc.com/branches/2.2.1/x-open-banking/v2.2/branches/postcode/{postcode}"import requests
response = requests.get(
"https://api.apis.guru/v2/specs/hsbc.com/branches/2.2.1/x-open-banking/v2.2/branches/postcode/{postcode}",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/hsbc.com/branches/2.2.1/x-open-banking/v2.2/branches/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/branches/2.2.1/x-open-banking/v2.2/branches/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/branches/2.2.1/x-open-banking/v2.2/branches/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/branches/2.2.1/x-open-banking/v2.2/branches/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 Branch Locator API?
Branch 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. Branch Locator API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide