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 .eth suffix is stripped if provided
  • Results are cached for improved performance