curl --request GET \
--url https://public-api.birdeye.so/identity/v1/domains \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/identity/v1/domains"
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://public-api.birdeye.so/identity/v1/domains', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"address": "DaP44wF8mKmYki1M5zguvXYAW5XF6sLQEzvdmvcizRqD",
"total": 2192,
"offset": 0,
"limit": 100,
"domains": [
"dap4.sol",
"uapx.sol",
"ufox.sol",
"blxme.sol",
"bruca.sol",
"draes.sol",
"jjust.sol",
"mufon.sol",
"tpusa.sol",
"uapac.sol"
]
}
}{
"success": false,
"message": "Bad request"
}{
"success": false,
"message": "Unauthorized"
}{
"success": false,
"message": "Access Denied"
}{
"success": false,
"message": "Too many requests"
}{
"success": false,
"message": "Internal Server Error"
}Wallet Identity - Domains
The full, paginated .sol domain list for one wallet (a wallet can own 100k+). Domains are ordered shortest-first then alphabetical, so page 1 matches the domains preview from the single/multiple endpoints. Only wallets return domains.
curl --request GET \
--url https://public-api.birdeye.so/identity/v1/domains \
--header 'X-API-KEY: <api-key>'import requests
url = "https://public-api.birdeye.so/identity/v1/domains"
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://public-api.birdeye.so/identity/v1/domains', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"address": "DaP44wF8mKmYki1M5zguvXYAW5XF6sLQEzvdmvcizRqD",
"total": 2192,
"offset": 0,
"limit": 100,
"domains": [
"dap4.sol",
"uapx.sol",
"ufox.sol",
"blxme.sol",
"bruca.sol",
"draes.sol",
"jjust.sol",
"mufon.sol",
"tpusa.sol",
"uapac.sol"
]
}
}{
"success": false,
"message": "Bad request"
}{
"success": false,
"message": "Unauthorized"
}{
"success": false,
"message": "Access Denied"
}{
"success": false,
"message": "Too many requests"
}{
"success": false,
"message": "Internal Server Error"
}- Usage Note
- Accessibility
- Chain Supported
The full, paginated .sol domain list for one wallet.
Where single/multiple return only a 20-domain preview, this endpoint returns every domain a wallet owns — a single wallet can hold 100k+ — so it is single-address and paginated. The response is { address, total, offset, limit, domains }, where domains is the requested page and total is the full count.
Domains are ordered shortest-first then alphabetical, so page 1 (offset=0) equals the domains preview returned by the single/multiple endpoints. Domains are returned only for wallets — a CEX / protocol / token “owning” a .sol domain is SNS spam (anyone can point a domain’s owner at any address), so those addresses return an empty list.
- Lite
- Starter
- Premium
- Business
- Enterprise
Solana
Response Field Definitions 🏷️
Response Field Definitions 🏷️
- address — the wallet the domains belong to.
- total — the true number of
.soldomains the wallet owns (across all pages). - offset / limit — the pagination window echoed back from the request.
- domains — the requested page of domain names, ordered shortest-first then alphabetical.
Use Cases 💡
Use Cases 💡
- Enumerate every
.soldomain a wallet holds for a profile, audit, or portfolio view. - Build a domain-explorer or reverse-lookup that lists all names behind one owner.
- Verify a specific domain is (or isn’t) among a wallet’s holdings by paging the full set.
How to Use 🛠️
How to Use 🛠️
address(required) — the wallet address to list domains for.offset(optional, default0) — number of domains to skip.limit(optional, default50, max100) — page size.- Read
total, then page forward withoffset += limituntil you’ve readtotalitems.
Best Practices ✅
Best Practices ✅
- Drive pagination from
total, not from the length of a single page. - Only need a preview? The
singleendpoint’sdomainsarray already gives the first 20 — no need to call this. - Keep
limitat or below 100; larger pages are rejected.
Limitations ⚠️
Limitations ⚠️
- Single wallet per request — this endpoint is not batched.
limitis capped at 100 per page.- Non-wallet identities (exchange / protocol / token) return an empty
domainslist (SNS-spam guard). - Solana only.
Authorizations
API key for authentication
Query Parameters
The wallet address to list .sol domains for.
"DaP44wF8mKmYki1M5zguvXYAW5XF6sLQEzvdmvcizRqD"
Number of domains to skip. Defaults to 0.
x >= 00
Page size. Defaults to 50, maximum 100.
1 <= x <= 100100
Was this page helpful?

