This is the same API that powers our ENS Profile search tool, What’s my name again, and is backed by our real-time indexing engine. You can access it via GraphQL at https://query.indexing.co/graphql
with the following schema:
type ENSProfileAddresses {
address: String
coinType: Int
}
type ENSProfileAttributes {
textKey: String
textValue: String
}
type ENSProfile {
addresses: [ENSProfileAddresses!]
attributes: [ENSProfileAttributes!]
contenthash: String
name: String
node: String
owner: String
tokenId: String
}
input ENSProfileFilter {
name: String
node: String
owner: String
textValue: String
tokenId: String
}
type Query {
ensProfiles(filters: ENSProfileFilter): [ENSProfile!]!
}
For example, to grab the current profile for vitalik.eth
you could simply do:
query {
ensProfiles(
filters: {
name: "vitalik.eth"
}
) {
addresses {
address
coinType
}
attributes {
textKey
textValue
}
contenthash
name
owner
}
}
Which would return:
{
"data": {
"ensProfiles": [
{
"addresses": [
{
"address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"coinType": 60
}
],
"attributes": [
{
"textKey": "avatar",
"textValue": "eip155:1/erc1155:0xb32979486938aa9694bfc898f35dbed459f44424/10063"
},
{
"textKey": "url",
"textValue": "https://vitalik.ca"
}
],
"contenthash": "0xe3010170122081e99109634060bae2c1e3f359cda33b2232152b0e010baf6f592a39ca228850",
"name": "vitalik.eth",
"owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
]
}
}
Give it a try and let us know how it goes!