{"openapi":"3.1.0","info":{"title":"ENS Resolver API","version":"1.0.0","description":"Live Ethereum Name Service resolution — the phone book of web3, no key, nothing cached. It turns a human .eth name into the wallet address behind it and back again, and reads the on-chain profile records the owner has set. The resolve endpoint takes a name like vitalik.eth and returns the Ethereum address, the avatar, the primary-name flag, the resolver contract, the content hash (for decentralised websites) and every text record the owner published — Twitter, GitHub, Reddit, Discord, Telegram, email, website and description — plus any multi-chain wallet addresses: vitalik.eth resolves to 0xd8dA…96045 with Twitter @VitalikButerin and GitHub vbuterin. The reverse endpoint does the opposite — give it any Ethereum address and it returns that address's primary ENS name and the same profile, so a bare 0x… becomes a human identity. The records endpoint returns just the profile text records for a name. This is the name-resolution and on-chain-profile layer every wallet, dapp, block explorer, payment and web3 app needs: address to name and name to address, with the owner's verified social links. Live from the Ethereum Name Service, nothing stored. Distinct from raw-RPC and token-metadata APIs — this is ENS naming and profile data. 4 endpoints.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/ens-api","description":"oanor gateway"}],"tags":[{"name":"ENS"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/records":{"get":{"operationId":"get_v1_records","tags":["ENS"],"summary":"Profile text records for a name","description":"","parameters":[{"name":"name","in":"query","required":true,"description":"ENS name","schema":{"type":"string"},"example":"nick.eth"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"nick.eth","avatar":"https://euc.li/nick.eth","address":"0xb8c2C29ee19D8307cb7255e1Cd9CbDE883A267d5","records":{"url":"https://ens.domains/","email":"arachnid@notdot.net","github":"arachnid","reddit":"nickjohnson","discord":"nickjohnson","twitter":"nicksdjohnson","telegram":"nicksdjohnson","description":"Lead developer of ENS & Ethereum Foundation alum. Certified rat tickler. he/him."},"wallets":{"eth":"0xb8c2C29ee19D8307cb7255e1Cd9CbDE883A267d5"},"content_hash":"k51qzi5uqu5dgccx524mfjv7znyfsa6g013o6v4yvis9dxnrjbwojc62pt0430"},"meta":{"timestamp":"2026-06-09T11:39:54.416Z","request_id":"e2633529-eba0-4c2f-a57c-f806a5e69aec"},"status":"ok","message":"Records retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/resolve":{"get":{"operationId":"get_v1_resolve","tags":["ENS"],"summary":"Resolve a .eth name","description":"","parameters":[{"name":"name","in":"query","required":true,"description":"ENS name","schema":{"type":"string"},"example":"vitalik.eth"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"vitalik.eth","avatar":"https://euc.li/vitalik.eth","address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","records":{"pgp":"527E406252E06A11416D7487698FEAC70F922A21","url":"https://vitalik.ca","github":"vbuterin","twitter":"VitalikButerin","description":"mi pinxe lo crino tcati"},"wallets":{"eth":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},"resolver":"0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63","content_hash":"bafybeibbk35rvvgr7y7qynel2lc5s7fihuxvk23ubzzdyv3dpwgma3lahm","primary_name":"vitalik.eth"},"meta":{"timestamp":"2026-06-09T11:39:54.685Z","request_id":"f60a3538-cd4a-4db4-88c7-82910fb291cc"},"status":"ok","message":"Name resolved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/reverse":{"get":{"operationId":"get_v1_reverse","tags":["ENS"],"summary":"Reverse-resolve an address","description":"","parameters":[{"name":"address","in":"query","required":true,"description":"Ethereum address (0x…)","schema":{"type":"string"},"example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"vitalik.eth","avatar":"https://euc.li/vitalik.eth","address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","records":{"pgp":"527E406252E06A11416D7487698FEAC70F922A21","url":"https://vitalik.ca","github":"vbuterin","twitter":"VitalikButerin","description":"mi pinxe lo crino tcati"},"wallets":{"eth":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},"resolver":"0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63","content_hash":"bafybeibbk35rvvgr7y7qynel2lc5s7fihuxvk23ubzzdyv3dpwgma3lahm","primary_name":"vitalik.eth"},"meta":{"timestamp":"2026-06-09T11:39:54.964Z","request_id":"f04739b2-6f32-4d76-be7e-efcb1b438569"},"status":"ok","message":"Address reverse-resolved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"Ethereum Name Service via public resolvers (ensdata.net + ensideas.com, live)","service":"ens-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/records":"Just the profile text records for a name (name=vitalik.eth).","GET /v1/resolve":"An ENS name to its address + full profile (name=vitalik.eth).","GET /v1/reverse":"An address to its primary ENS name + profile (address=0x…)."},"description":"Live Ethereum Name Service resolution: turn a .eth name into its wallet address and back, with the owner's on-chain profile. Resolve returns the address, avatar, content hash, resolver and every text record (Twitter, GitHub, Reddit, Discord, Telegram, email, website, description) plus multi-chain wallets. Reverse returns an address's primary ENS name and profile. Records returns just the profile records. Live, no key, nothing stored. Distinct from raw RPC and token APIs — this is ENS naming and profile data.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-09T11:39:55.224Z","request_id":"d8659e47-866a-4586-ab4c-ba0951cdcf96"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":9500,"rps_limit":3,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":850,"monthly_call_quota":120000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2250,"monthly_call_quota":600000,"rps_limit":15,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":5400,"monthly_call_quota":3000000,"rps_limit":30,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/ens-api"}