curl --request GET \
--url https://api.baselayer.com/directory/businesses \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/directory/businesses"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.baselayer.com/directory/businesses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.baselayer.com/directory/businesses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.baselayer.com/directory/businesses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.baselayer.com/directory/businesses")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/directory/businesses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": "<string>",
"domain": "<string>",
"kyb_verified": true,
"website": "<string>",
"logo_url": "<string>",
"summary": "<string>",
"payment_rails": [
"X402"
]
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Browse the directory of agent-ready businesses
Lists the businesses Baselayer has verified as set up to accept agentic payments, alphabetically. The directory is global — every organization reads the same registry — and carries public-record and self-declared commerce metadata only. Search by name or domain via query.
curl --request GET \
--url https://api.baselayer.com/directory/businesses \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/directory/businesses"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.baselayer.com/directory/businesses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.baselayer.com/directory/businesses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.baselayer.com/directory/businesses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.baselayer.com/directory/businesses")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/directory/businesses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": "<string>",
"domain": "<string>",
"kyb_verified": true,
"website": "<string>",
"logo_url": "<string>",
"summary": "<string>",
"payment_rails": [
"X402"
]
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Query Parameters
Maximum number of records to return in a single page. Must be between 1 and 1000.
1 <= x <= 1000Number of records to skip from the beginning. Use 0 for the first page.
x >= 0Response
Paginated directory entries, alphabetical by name.
The directory entry's id — resolvable via GET /directory/businesses/{id}.
The business's display name.
The merchant's canonical domain, where its kya-profile.json and counterparty credential are served.
Whether the entry is backed by a business whose public registry record is current: an active registration in good standing. Derived from public records, never from any organization's private evaluation; always false for an entry with no linked business.
The business's website URL.
URL of the business's logo.
A short description of what the business does.
The agentic payment rails the business advertises accepting.
A payment method a directory-listed business accepts from agents.
Self-declared commerce metadata on a KYA directory entry — which rails (protocols or card-network agent programs) the merchant advertises for agentic checkout. Advisory only: nothing in the platform settles on these rails, so the vocabulary is expected to grow with the ecosystem and OTHER absorbs rails we have not named yet.
X402, MPP, UCP, VISA_TAP, VISA_INTELLIGENT_COMMERCE, MASTERCARD_AGENT_PAY, GOOGLE_AP2, STRIPE_ACP, OTHER