curl --request GET \
--url https://api.baselayer.com/directory/businesses/{profile_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/directory/businesses/{profile_id}"
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/{profile_id}', 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/{profile_id}",
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/{profile_id}"
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/{profile_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/directory/businesses/{profile_id}")
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"
],
"registry_record": {
"legal_name": "<string>",
"incorporation_state": "AL",
"incorporation_filing_number": "<string>",
"incorporation_date": "2023-12-25"
},
"contacts": [
{
"name": "<string>",
"role": "<string>",
"email": "jsmith@example.com"
}
],
"kya_profile": {
"profile_id": "<string>",
"domain": "<string>",
"publisher": {},
"class_attestation": {},
"scopes": [
{
"name": "<string>",
"tier": "<string>",
"purpose": "<string>",
"legal_basis": "<string>",
"fields": [
"<string>"
],
"retention_days": 123
}
]
},
"counterparty_credential": {
"status": "SERVING",
"expires_at": "2023-11-07T05:31:56Z"
}
}{
"code": 1,
"message": "Could not locate the resource for the given URI.",
"metadata": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Look up one directory entry
Returns the full directory entry: the business’s profile, the public-record identity of the business it links to, the agentic payment rails it advertises, its published kya-profile.json disclosure scopes, points of contact, and the serving state of its counterparty credential. Unlisted and unknown ids are indistinguishable 404s.
curl --request GET \
--url https://api.baselayer.com/directory/businesses/{profile_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.baselayer.com/directory/businesses/{profile_id}"
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/{profile_id}', 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/{profile_id}",
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/{profile_id}"
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/{profile_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/directory/businesses/{profile_id}")
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"
],
"registry_record": {
"legal_name": "<string>",
"incorporation_state": "AL",
"incorporation_filing_number": "<string>",
"incorporation_date": "2023-12-25"
},
"contacts": [
{
"name": "<string>",
"role": "<string>",
"email": "jsmith@example.com"
}
],
"kya_profile": {
"profile_id": "<string>",
"domain": "<string>",
"publisher": {},
"class_attestation": {},
"scopes": [
{
"name": "<string>",
"tier": "<string>",
"purpose": "<string>",
"legal_basis": "<string>",
"fields": [
"<string>"
],
"retention_days": 123
}
]
},
"counterparty_credential": {
"status": "SERVING",
"expires_at": "2023-11-07T05:31:56Z"
}
}{
"code": 1,
"message": "Could not locate the resource for the given URI.",
"metadata": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Path Parameters
Response
Response
Body for GET /directory/businesses/{id}: the full entry.
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 The public-record identity of the linked business — legal name and incorporation facts; null for an entry with no linked business, which is also always unverified.
Show child attributes
Show child attributes
Points of contact the business publishes for questions — self-declared business-role details, never verification data.
Show child attributes
Show child attributes
The business's published kya-profile.json: the disclosure scopes it requests, each naming the fields, purpose, legal basis, and retention behind one use case.
Show child attributes
Show child attributes
The serving state of the counterparty credential this entry's domain hosts; null when the entry has no linked business, or that business never minted one for this domain.
Show child attributes
Show child attributes