API Documentation
Public API for querying ENS domain data from the distributed ENSIndexer network. All endpoints return JSON. No authentication required.
/api endpoints. You can call these from any origin.List all domains associated with an address, with pagination and address type filtering.
| Name | Type | Description |
|---|---|---|
| address | string | Ethereum address (42-char hex) |
| Name | Type | Description |
|---|---|---|
| page | integer | Page number (default 1) |
| sort_by | string | full_name or expiry_timestamp |
| sort_dir | string | asc or desc |
| include_expired | boolean | Include expired domains (default false) |
| address_type | string | effective_owner (default), registry_owner, registrar_owner, wrapper_owner, resolver |
{
"address": "0xd8da6bf2...",
"address_type": "effective_owner",
"results": [
{
"full_name": "vitalik.eth",
"label": "vitalik",
"expiry_timestamp": "1754000000",
"effective_owner_address": "0xd8dA6BF2...",
"registry_owner_address": "0xd8dA6BF2...",
"resolver_address": "0x231b0Ee1...",
"is_wrapped": false
}
],
"total": 42,
"page": 1,
"pageSize": 50
}
Lightweight count-only endpoint. Returns domain counts (total, active, expired) for an address by type.
| Name | Type | Description |
|---|---|---|
| address | string | Ethereum address (42-char hex) |
| Name | Type | Description |
|---|---|---|
| address_type | string | effective_owner (default), registry_owner, registrar_owner, wrapper_owner, resolver |
{
"address": "0xd8da6bf2...",
"address_type": "effective_owner",
"count": 42,
"active_count": 40,
"expired_count": 2
}
Reverse resolve an address to its primary ENS name. Optionally returns full history of reverse name changes.
| Name | Type | Description |
|---|---|---|
| address | string | Ethereum address (42-char hex) |
| Name | Type | Description |
|---|---|---|
| history | boolean | Include full reverse name history (default false) |
{
"address": "0xd8da6bf2...",
"primary_name": "vitalik.eth",
"registrar": "addr.reverse"
}
{
"address": "0xd8da6bf2...",
"current": {
"primary_name": "vitalik.eth",
"registrar": "addr.reverse"
},
"history": [
{
"name": "vitalik.eth",
"registrar": "addr.reverse",
"block_number": 9412610,
"transaction_hash": "0xabc..."
}
]
}
Bulk reverse resolution for multiple addresses. Maximum 200 per request.
{
"addresses": ["0xd8da6bf2...", "0x225f137..."]
}
{
"results": {
"0xd8da6bf2...": {
"primary_name": "vitalik.eth",
"registrar": "addr.reverse"
},
"0x225f137...": {
"primary_name": null,
"registrar": null
}
}
}
Combined address summary: domain count (by effective owner), primary name, and domains expiring soon.
| Name | Type | Description |
|---|---|---|
| address | string | Ethereum address (42-char hex) |
{
"address": "0xd8da6bf2...",
"domain_count": 42,
"primary_name": "vitalik.eth",
"primary_name_source": "addr.reverse",
"domains_expiring_30d": 1
}