Find an API

Search public APIs with auth details & Postman guides

← All APIs

Locations API

mastercard · Company

Company No Auth Free & Open API

The Locations API provides access to MasterCard's ATM and Merchant location database

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Returns detailed information about an ATM location. This information can be used to display ATMs on a map, provide driving directions, or show special ATM features.

Returns detailed information about an ATM location. This information can be used to display ATMs on a map, provide driving directions, or show special ATM features.

https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/atm?City=London&Radius=1&Country=US&Latitude=51.5074&Longitude=-0.1278&PageLength=1&PageOffset=1&PostalCode=example&SupportEMV=1&AddressLine1=example&AddressLine2=example&DistanceUnit=example&CountrySubdivision=example&InternationalMaestroAccepted=1

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/atm?City=London&Radius=1&Country=US&Latitude=51.5074&Longitude=-0.1278&PageLength=1&PageOffset=1&PostalCode=example&SupportEMV=1&AddressLine1=example&AddressLine2=example&DistanceUnit=example&CountrySubdivision=example&InternationalMaestroAccepted=1"
import requests
params = {
    "City": "London",
    "Radius": "1",
    "Country": "US",
    "Latitude": "51.5074",
    "Longitude": "-0.1278",
    "PageLength": "1",
    "PageOffset": "1",
    "PostalCode": "example",
    "SupportEMV": "1",
    "AddressLine1": "example",
    "AddressLine2": "example",
    "DistanceUnit": "example",
    "CountrySubdivision": "example",
    "InternationalMaestroAccepted": "1"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/atm",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/atm');
url.searchParams.set('City', 'London');
url.searchParams.set('Radius', '1');
url.searchParams.set('Country', 'US');
url.searchParams.set('Latitude', '51.5074');
url.searchParams.set('Longitude', '-0.1278');
url.searchParams.set('PageLength', '1');
url.searchParams.set('PageOffset', '1');
url.searchParams.set('PostalCode', 'example');
url.searchParams.set('SupportEMV', '1');
url.searchParams.set('AddressLine1', 'example');
url.searchParams.set('AddressLine2', 'example');
url.searchParams.set('DistanceUnit', 'example');
url.searchParams.set('CountrySubdivision', 'example');
url.searchParams.set('InternationalMaestroAccepted', '1');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/atm")
	q := baseURL.Query()
	q.Set("City", "London")
	q.Set("Radius", "1")
	q.Set("Country", "US")
	q.Set("Latitude", "51.5074")
	q.Set("Longitude", "-0.1278")
	q.Set("PageLength", "1")
	q.Set("PageOffset", "1")
	q.Set("PostalCode", "example")
	q.Set("SupportEMV", "1")
	q.Set("AddressLine1", "example")
	q.Set("AddressLine2", "example")
	q.Set("DistanceUnit", "example")
	q.Set("CountrySubdivision", "example")
	q.Set("InternationalMaestroAccepted", "1")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	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/mastercard.com/Locations/1.0.0/atms/v1/atm")
uri.query = URI.encode_www_form({
  "City" => "London",
  "Radius" => "1",
  "Country" => "US",
  "Latitude" => "51.5074",
  "Longitude" => "-0.1278",
  "PageLength" => "1",
  "PageOffset" => "1",
  "PostalCode" => "example",
  "SupportEMV" => "1",
  "AddressLine1" => "example",
  "AddressLine2" => "example",
  "DistanceUnit" => "example",
  "CountrySubdivision" => "example",
  "InternationalMaestroAccepted" => "1"
})

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/mastercard.com/Locations/1.0.0/atms/v1/atm?" . http_build_query([
    "City" => "London",
    "Radius" => "1",
    "Country" => "US",
    "Latitude" => "51.5074",
    "Longitude" => "-0.1278",
    "PageLength" => "1",
    "PageOffset" => "1",
    "PostalCode" => "example",
    "SupportEMV" => "1",
    "AddressLine1" => "example",
    "AddressLine2" => "example",
    "DistanceUnit" => "example",
    "CountrySubdivision" => "example",
    "InternationalMaestroAccepted" => "1"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Returns country subdivisions that have ATM locations. A country subdivision is a segment within a country (ex state or province). Country subdivisions are only available for the US and Canada.

Returns country subdivisions that have ATM locations. A country subdivision is a segment within a country (ex state or province). Country subdivisions are only available for the US and Canada.

https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/countrysubdivision?Country=US

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/countrysubdivision?Country=US"
import requests
params = {
    "Country": "US"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/countrysubdivision",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/countrysubdivision');
url.searchParams.set('Country', 'US');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/atms/v1/countrysubdivision")
	q := baseURL.Query()
	q.Set("Country", "US")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	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/mastercard.com/Locations/1.0.0/atms/v1/countrysubdivision")
uri.query = URI.encode_www_form({
  "Country" => "US"
})

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/mastercard.com/Locations/1.0.0/atms/v1/countrysubdivision?" . http_build_query([
    "Country" => "US"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Returns countries that have Merchants offering the following services: accept contactless-enabled cards and devices, allow customers to add money to an eligible MasterCard or Maestro prepaid card, issue MasterCard Prepaid Travel cards, offer cash at checkout when paying with a Debit MasterCard or Maestro Card.

Returns countries that have Merchants offering the following services: accept contactless-enabled cards and devices, allow customers to add money to an eligible MasterCard or Maestro prepaid card, issue MasterCard Prepaid Travel cards, offer cash at checkout when paying with a Debit MasterCard or Ma

https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/merchants/v1/country?details=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/merchants/v1/country?details=example"
import requests
params = {
    "details": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/merchants/v1/country",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/merchants/v1/country');
url.searchParams.set('details', 'example');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/mastercard.com/Locations/1.0.0/merchants/v1/country")
	q := baseURL.Query()
	q.Set("details", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	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/mastercard.com/Locations/1.0.0/merchants/v1/country")
uri.query = URI.encode_www_form({
  "details" => "example"
})

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/mastercard.com/Locations/1.0.0/merchants/v1/country?" . http_build_query([
    "details" => "example"
]);
$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

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with Locations API?

Locations API is a Company API. Developers commonly use company APIs for:

  • enriching CRM records with company firmographics
  • building lead-generation and prospecting tools
  • verifying business identity and registration details
  • monitoring competitors and market intelligence
  • powering B2B data enrichment pipelines

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Locations API is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide

Open documentation ↗