GET /metadata
ENS: Metadata
Learn more: ENS API — marketing overview, live demo, pricing tiers, and use cases.
Get full metadata for a registered ENS name including the Ethereum address, avatar, social links, and other text records.
Base URL:
https://ens.robotdomainsearch.com— The ENS API is a separate service from the main RobotDomainSearch API.
Endpoint
GET https://ens.robotdomainsearch.com/metadata
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | ENS name to look up (without .eth suffix) |
Request
curl "https://ens.robotdomainsearch.com/metadata?name=vitalik"
Response
{
"name": "vitalik.eth",
"owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"resolver": "0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"records": {
"avatar": "eip155:1/erc1155:0xb32979486938aa9694bfc898f35dbed459f44424/10063",
"url": "https://vitalik.eth.limo",
"description": "",
"twitter": "VitalikButerin",
"github": "vbuterin",
"email": "",
"contenthash": "ipfs://bafybeiftczwrtyr3k7a2k4vutd3amkwsmqyez..."
},
"responseMs": 1200,
"source": "rpc",
"checkedAt": "2025-02-10T12:00:00Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
name |
string | Full ENS name with .eth suffix |
owner |
string | Ethereum address of the owner |
resolver |
string | Resolver contract address |
address |
string | ETH address the name resolves to |
records |
object | ENS text records |
records.avatar |
string | Avatar (EIP-155 or URL) |
records.url |
string | Website URL |
records.description |
string | Description text |
records.twitter |
string | Twitter/X handle |
records.github |
string | GitHub username |
records.email |
string | Email address |
records.contenthash |
string | Content hash (IPFS/Swarm) |
responseMs |
number | Response time in milliseconds |
source |
string | Data source (rpc or rpc+cache) |
checkedAt |
string | ISO 8601 timestamp |
Errors
| Code | Error | Description |
|---|---|---|
| 400 | missing_parameter |
The name parameter is required |
| 400 | invalid_name |
Invalid ENS name format |
| 404 | not_found |
ENS name is not registered |
| 500 | metadata_failed |
Ethereum RPC error |
Code Examples
curl
curl "https://ens.robotdomainsearch.com/metadata?name=vitalik"
Python
import requests
response = requests.get(
"https://ens.robotdomainsearch.com/metadata",
params={"name": "vitalik"}
)
if response.status_code == 404:
print("ENS name not registered")
else:
data = response.json()
print(f"Name: {data['name']}")
print(f"Owner: {data['owner']}")
print(f"Address: {data['address']}")
records = data.get("records", {})
if records.get("twitter"):
print(f"Twitter: @{records['twitter']}")
if records.get("github"):
print(f"GitHub: {records['github']}")
if records.get("url"):
print(f"URL: {records['url']}")
JavaScript
const response = await fetch(
"https://ens.robotdomainsearch.com/metadata?name=vitalik"
);
if (response.status === 404) {
console.log("ENS name not registered");
} else {
const data = await response.json();
console.log(`Name: ${data.name}`);
console.log(`Owner: ${data.owner}`);
console.log(`Address: ${data.address}`);
if (data.records?.twitter) {
console.log(`Twitter: @${data.records.twitter}`);
}
if (data.records?.github) {
console.log(`GitHub: ${data.records.github}`);
}
}
Notes
- All text records are fetched in parallel for performance
- Address, text records, and contenthash are resolved from the on-chain resolver
- Empty text records are returned as empty strings
- The
.ethsuffix is stripped if provided - Results are cached for improved performance
📄 Raw markdown: /docs/api/ens-metadata.md