Discover/ENS API
live

ENS APIens.vision

Access ENS domain details, marketplace listings, offers, activity feeds, name resolution, and portfolio lookups via the ens.vision API.

Endpoint health
verified 4d ago
get_activity
get_address_portfolio
get_recommendations
get_domain_details
search_domains
10/10 passing latest checkself-healing
Endpoints
10
Updated
26d ago

What is the ENS API?

The ens.vision API provides 10 endpoints covering ENS domain search, marketplace listings, activity feeds, name and address resolution, and portfolio lookups. Use get_domain_details to retrieve ownership, expiry, avatar URL, and NFT token info for any .eth name, or call resolve_name to map an ENS name to its Ethereum address alongside text records like avatar, email, and Twitter handle.

Try it
ENS domain name (e.g., 'vitalik.eth')
api.parse.bot/scraper/89ed6eba-2968-4f53-8af0-1d5d4a77ff27/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/89ed6eba-2968-4f53-8af0-1d5d4a77ff27/get_domain_details?name=vitalik.eth' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace ens-vision-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.ens_vision_api import ENSVision, SortField, Sort, EventType

ens = ENSVision()

# Search for domains by keyword, sorted by registration date descending
for domain in ens.domains.search(query="app", sort_by=SortField.REGISTRATION_DATE, sort_order=Sort.DESC, limit=5):
    print(domain.name, domain.owner, domain.tags)

# Get full details for a specific domain
vitalik = ens.domains.get(name="vitalik.eth")
print(vitalik.name, vitalik.expires, vitalik.avatar_url)

# Browse categories and list their marketplace offerings
for category in ens.categories.list(limit=3):
    print(category.name, category.count, category.floor_price)

# Get recommendations for a domain
for rec in vitalik.recommendations(limit=3):
    print(rec.name, rec.reason, rec.score)

# List activity on a specific domain filtered by event type
for event in vitalik.activity.list(event_types=EventType.SALE, limit=5):
    print(event.id, event.type, event.block_timestamp)

# Resolve an ENS name to an Ethereum address
for resolution in ens.resolutions.by_name(name="vitalik.eth"):
    print(resolution.query, resolution.success, resolution.result)

# Look up a wallet's portfolio
wallet = ens.wallet(address="0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045")
for owned in wallet.portfolio(limit=5):
    print(owned.name, owned.expires, owned.floor_price)
All endpoints · 10 totalmissing one? ·

Retrieve full details for a specific ENS domain, including ownership, registration dates, token info, categories, and avatar URL. Returns a single Domain resource keyed by its hash id.

Input
ParamTypeDescription
namerequiredstringENS domain name (e.g., 'vitalik.eth')
Response
{
  "type": "object",
  "fields": {
    "id": "string, domain identifier hash",
    "tld": "string, top-level domain",
    "name": "string, full domain name",
    "tags": "array of string tags",
    "label": "string, domain label without TLD",
    "owner": "string, Ethereum address of the owner",
    "token": "object with NFT token details",
    "expires": "string, ISO datetime of expiry",
    "avatarUrl": "string or null, URL of the domain avatar",
    "categories": "array of category objects",
    "floorPrice": "object or null, listing floor price",
    "highestOffer": "object or null, highest offer",
    "registrationDate": "string, ISO datetime of registration"
  },
  "sample": {
    "data": {
      "id": "0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835",
      "tld": "eth",
      "name": "vitalik.eth",
      "tags": [
        "LETTER",
        "LETTERS_ONLY"
      ],
      "label": "vitalik",
      "owner": "0x220866b1a2219f40e72f5c628b65d54268ca3a9d",
      "token": {
        "id": "1-0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85-79233663829379634837589865448569342784712482819484549289560981379859480642508",
        "chainId": 1,
        "tokenId": "79233663829379634837589865448569342784712482819484549289560981379859480642508",
        "contract": "0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85"
      },
      "expires": "2047-12-28T13:25:30.000Z",
      "avatarUrl": "https://pub-07c3064f42454133ad6bc90e6ab64f36.r2.dev/ens-images/avatar/vitalik.eth_e02de4c53ff191b9",
      "categories": [
        {
          "id": 18,
          "name": "Pre-Punk Club",
          "slug": "pre-punk-club"
        }
      ],
      "floorPrice": null,
      "highestOffer": null,
      "registrationDate": "2020-02-06T18:23:40.000Z"
    },
    "status": "success"
  }
}

About the ENS API

Domain Data and Search

The search_domains endpoint accepts a query string, optional owner address filter, category_ids, is_subdomain flag, and pagination via limit and offset. Results include a total count and an array of domain objects. get_domain_details returns richer per-domain data: the owner Ethereum address, ISO expiry datetime, a token object containing chainId, contract, and tokenId, an avatarUrl, and an array of categories. browse_categories lists all ENS clubs with floorPrice, count, slug, and description fields — useful for building category-filtered search UIs.

Marketplace Listings, Offers, and Activity

get_marketplace_listings returns only domains with expiry status TAKEN (i.e., registered names actively listed for sale), each with a floorPrice and listingId. You can sort by price and filter by category_ids or a keyword query. get_domain_offers returns active per-domain offers with price, maker address, expiry, and currency — note that offer availability is transient and many domains carry no active offers at a given moment. The get_activity endpoint surfaces a platform-wide or domain-scoped event feed filtered by event_types (LISTING_CREATED, OFFER_CREATED, SALE, MINT), paginated with a hasMore cursor field.

Name and Address Resolution

resolve_name maps an ENS name to its Ethereum address plus any requested records (comma-separated fields such as avatar, email, twitter, url). The response includes totalQueries and successfulQueries counts alongside a timestamp. resolve_address performs the reverse lookup: given a wallet address it returns the primary ENS name and the same configurable text records. Default records differ between the two endpoints, so check the records parameter documentation for each.

Recommendations and Portfolios

get_recommendations returns related domain names for a given ENS name with a reason string and numeric score per result. The strategy parameter (e.g., hybrid) controls how recommendations are ranked. get_address_portfolio paginates all domains owned by a wallet, returning a total count and the same domain object shape used across other endpoints.

Reliability & maintenanceVerified

The ENS API is a managed, monitored endpoint for ens.vision — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ens.vision changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official ens.vision API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
10/10 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor ENS marketplace listings by category to track floor price movements using get_marketplace_listings with category_ids.
  • Build a wallet profile page that resolves an address to its primary ENS name, avatar, and social links via resolve_address.
  • Alert users when a specific ENS domain receives a new offer by polling get_domain_offers for changes in the offers array.
  • Display a full ownership history and recent sales for a domain using get_activity filtered to SALE and LISTING_CREATED event types.
  • Populate an ENS club directory with counts, floor prices, and descriptions pulled from browse_categories.
  • Suggest related ENS names to buyers by calling get_recommendations with a hybrid strategy and surfacing the reason and score fields.
  • Show a wallet's complete ENS portfolio with expiry dates and avatar URLs by paginating get_address_portfolio.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does ens.vision have an official developer API?+
ens.vision does not publish a documented public developer API. This Parse API exposes structured access to the same domain data, marketplace, and resolution features available on the ens.vision platform.
What does get_activity return and how can I filter it?+
get_activity returns a paginated array of event objects covering LISTING_CREATED, OFFER_CREATED, SALE, and MINT events. Pass a comma-separated list of those values to the event_types parameter to narrow results. Optionally supply a name parameter to scope the feed to a single ENS domain. The pagination object includes limit, offset, and hasMore fields.
Does the API return historical price or sales data over time for a domain?+
The API does not expose a dedicated historical price chart or time-series sales data endpoint. get_activity can surface past SALE events for a specific domain, providing a record of sales and listings in reverse chronological order. You can fork this API on Parse and revise it to add a dedicated price-history endpoint if your use case requires aggregated historical pricing.
Are expired or available (unregistered) ENS domains included in marketplace listings?+
get_marketplace_listings only returns domains with expiry status TAKEN — meaning currently registered names listed for sale. Expired or unregistered domains are not included. If you need to surface available names, search_domains covers a broader set of domains and includes expiry information in the response. You can fork this API on Parse and revise it to filter specifically for expired or soon-to-expire domains.
Can I resolve multiple ENS names in a single request?+
resolve_name and resolve_address each return a results array and report totalQueries and successfulQueries, so both endpoints are designed to handle batch inputs in one call. The exact multi-name input format is controlled by the name and address parameters respectively.
Page content last updated . Spec covers 10 endpoints from ens.vision.
Related APIs in Crypto Web3See all →
elements.envato.com API
Search and browse millions of creative assets from Envato Elements, including stock photos, videos, music, fonts, and templates across all categories. Get detailed information about specific items, pricing plans, and discover new content through keyword search and category browsing.
etherscan.io API
etherscan.io API
opensea.io API
Search NFT collections and discover detailed stats, browse individual items, and track collection activity all in one place. Get real-time insights into collection performance and find the NFTs you're looking for on OpenSea.
domain.com.au API
Search and compare property listings for sale, rent, or sold properties across Australia, view detailed property information and agent profiles, and explore suburb insights to make informed real estate decisions. Access comprehensive data on agents, neighborhoods, and properties all in one place.
etsy.com API
Discover what shoppers are searching for on Etsy by accessing real-time trending keywords and popular search terms that can help you identify market demand and optimize your product listings. Get instant access to autocomplete suggestions and "Popular right now" trends to stay ahead of customer interests and improve your shop's visibility.
eneba.com API
Access data from eneba.com.
namecheap.com API
Search for available domain names, check their registration status, and browse TLD pricing across different extensions. Discover discounted domains on the marketplace and explore hosting bundles to find the perfect combination for your website needs.
sedo.com API
Browse Sedo featured and auction domain listings, search domains by keyword, retrieve the full TLD list, and get current currency exchange rates used for domain pricing.