Discover/tld-list API
live

tld-list APItld-list.com ↗

Check domain availability, premium status, and cheapest registration, renewal, and transfer prices across hundreds of TLDs via the tld-list.com API.

Endpoint health
verified 3h ago
check_domain_availability
1/1 passing latest checkself-healing
Endpoints
1
Updated
4h ago

What is the tld-list API?

The tld-list.com API exposes a single endpoint, check_domain_availability, that returns availability status, premium-domain flags, and the cheapest registration, renewal, and transfer prices (in USD) for each TLD checked. A single call can cover one specific extension or fan out across dozens of popular extensions simultaneously, with up to 9 response fields per extension row including is_available, is_premium, and all three price tiers.

This call costs10 credits / call— charged only on success
Try it
Comma-separated extensions to check when 'domain' has no extension, e.g. 'com,net,co.uk' (leading dots optional). Ignored when 'domain' already includes an extension. At most 50 are checked.
Number of most-popular extensions to check when neither an extension in 'domain' nor 'tlds' is given. Clamped to 50.
Domain name to check, with or without an extension (e.g. 'examplewidget' or 'examplewidget.com'). Letters, digits and hyphens per label; case-insensitive.
→ api.parse.bot/scraper/39560fdc-e7e5-4722-907b-97cb82e25551/<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/39560fdc-e7e5-4722-907b-97cb82e25551/check_domain_availability?domain=examplewidget' \
  -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 tld-list-com-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.

"""Walkthrough: TLD-List domain availability SDK — check pricing across extensions."""
from parse_apis.tld_list_com_api import TldList, InputNotFound

client = TldList()

# Check a bare name against the top 5 most popular extensions.
result = client.domain_checks.check(domain="examplewidget", limit=5)
print(f"Checked {result.checked_count} extensions for '{result.name}' ({result.currency})")

for ext in result.results:
    reg = ext.cheapest_registration
    promo = f" (promo {reg.promo_code})" if reg.promo_code else ""
    avail = "available" if ext.is_available else ("unknown" if ext.is_available is None else "taken")
    print(f"  {ext.domain}: {avail} — register ${reg.price}{promo}, renew ${ext.cheapest_renewal.price}")

# Check a specific full domain; handle the case where the extension is not tracked.
try:
    single = client.domain_checks.check(domain="examplewidget.com")
    hit = single.results[0]
    bv = hit.best_value
    print(f"\nBest value for {hit.domain}: {bv.registrar} — register ${bv.registration_price}, renew ${bv.renewal_price}")
except InputNotFound:
    print("Extension not tracked on the site")

# Check specific extensions by name.
multi = client.domain_checks.check(domain="myshop", tlds="com,net,org")
for ext in multi.results:
    if ext.cheapest_transfer.promo_code:
        print(f"  {ext.domain} transfer deal: ${ext.cheapest_transfer.price} with {ext.cheapest_transfer.promo_code}")

print("exercised: domain_checks.check (bare name / full domain / tlds filter)")
All endpoints · 1 totalmissing one? ·

Checks domain availability and premium status and returns the cheapest registration, renewal and transfer prices (USD) for each extension checked. Pass a full domain (e.g. one shape: 'example.com') to check that single extension, or a bare name (no dot) to check it against several extensions: either the comma-separated extensions in 'tlds', or, when 'tlds' is omitted, the site's most popular extensions (the first 'limit' by popularity, default 10, max 50). Each result row carries the site's availability status ('available', 'unavailable', 'premium-available', 'premium-unavailable' or 'unknown' when the site could not determine it), derived is_available (null when unknown) and is_premium booleans, plus the extension's cheapest offers with registrar, price, pre-promo original price and promo code when one applies, and the site's best 3-year-value registrar. Prices are the site's compared registrar prices for a standard (non-premium) name; premium names cost more at the registrar. A full domain whose extension is not tracked by the site returns a stale_input error; an invalid name returns input_format_invalid. One call costs a page load plus one request per distinct extension lookup and one availability request.

Input
ParamTypeDescription
tldsstringComma-separated extensions to check when 'domain' has no extension, e.g. 'com,net,co.uk' (leading dots optional). Ignored when 'domain' already includes an extension. At most 50 are checked.
limitintegerNumber of most-popular extensions to check when neither an extension in 'domain' nor 'tlds' is given. Clamped to 50.
domainrequiredstringDomain name to check, with or without an extension (e.g. 'examplewidget' or 'examplewidget.com'). Letters, digits and hyphens per label; case-insensitive.
Response
{
  "type": "object",
  "fields": {
    "name": "the domain label that was checked (without extension)",
    "results": "array of per-extension rows: domain, tld, status, is_available, is_premium, cheapest_registration/cheapest_renewal/cheapest_transfer offers (registrar, registrar_id, price, original_price, promo_code), best_value (registrar, registration_price, renewal_price), popularity_clicks, whois_privacy, dnssec_supported",
    "currency": "currency of all prices (USD)",
    "checked_count": "number of rows in results",
    "total_extensions_on_site": "number of extensions the site tracks that matched the extension selection (all extensions when checking by popularity)"
  },
  "sample": {
    "data": {
      "name": "examplewidget",
      "results": [
        {
          "tld": "com",
          "domain": "examplewidget.com",
          "status": "available",
          "best_value": {
            "registrar": "OVHcloud",
            "registrar_id": "ovh",
            "renewal_price": 13.99,
            "registration_price": 11.75
          },
          "is_premium": false,
          "is_available": true,
          "whois_privacy": true,
          "cheapest_renewal": {
            "price": 10.15,
            "registrar": "Sav",
            "promo_code": null,
            "registrar_id": "sav",
            "original_price": null
          },
          "dnssec_supported": true,
          "cheapest_transfer": {
            "price": 3.94,
            "registrar": "Spaceship",
            "promo_code": "SPSCOMTR",
            "registrar_id": "spaceship",
            "original_price": 9.68
          },
          "popularity_clicks": 1443072,
          "cheapest_registration": {
            "price": 3.8,
            "registrar": "Spaceship",
            "promo_code": "COM67",
            "registrar_id": "spaceship",
            "original_price": 9.08
          }
        },
        {
          "tld": "io",
          "domain": "examplewidget.io",
          "status": "unknown",
          "best_value": {
            "registrar": "Netim",
            "registrar_id": "netim",
            "renewal_price": 44,
            "registration_price": 44
          },
          "is_premium": false,
          "is_available": null,
          "whois_privacy": true,
          "cheapest_renewal": {
            "price": 40.47,
            "registrar": "Porkbun",
            "promo_code": null,
            "registrar_id": "porkbun",
            "original_price": null
          },
          "dnssec_supported": true,
          "cheapest_transfer": {
            "price": 17.45,
            "registrar": "Wix",
            "promo_code": "DOM50",
            "registrar_id": "wix",
            "original_price": 34.9
          },
          "popularity_clicks": 173901,
          "cheapest_registration": {
            "price": 14.98,
            "registrar": "Spaceship",
            "promo_code": "IO85",
            "registrar_id": "spaceship",
            "original_price": 31.98
          }
        }
      ],
      "currency": "USD",
      "checked_count": 2,
      "total_extensions_on_site": 3536
    },
    "status": "success"
  }
}

About the tld-list API

What the API Returns

The check_domain_availability endpoint accepts a domain parameter — either a fully qualified name like examplewidget.com or a bare label like examplewidget — and returns a results array where each row covers one TLD. Each row includes the full domain string, the tld component, a status field, boolean flags is_available and is_premium, and three price fields: cheapest_registration, cheapest_renewal, and cheapest_transfer, all denominated in the currency field (USD). The response also includes checked_count and total_extensions_on_site so you can see how many TLDs were evaluated.

Controlling Which Extensions Are Checked

When you pass a bare label (no dot, no TLD), you have two ways to scope the check. Supply a tlds parameter as a comma-separated list — for example com,net,co.uk — to target specific extensions. Leading dots are optional. Alternatively, set the limit parameter to an integer to check against that many of the most-popular extensions tracked by tld-list.com. If you pass a full domain name with an extension already included, both tlds and limit are ignored and only that single extension is checked.

Coverage and Price Data

The site tracks a large number of extensions; total_extensions_on_site in each response tells you the current count. Price data reflects the cheapest registrar price found on tld-list.com for registration, renewal, and transfer at the time of the request. Premium domain detection is surfaced as a boolean is_premium flag — useful for filtering out names that carry above-market pricing before quoting a user.

Reliability & maintenanceVerified

The tld-list API is a managed, monitored endpoint for tld-list.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tld-list.com 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 tld-list.com 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
3h ago
Latest check
1/1 endpoint 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
  • Bulk domain availability check across popular TLDs for a name generator tool
  • Identify the cheapest registrar price for a specific domain before purchase using cheapest_registration
  • Flag premium domains in a search UI using the is_premium boolean to warn users of elevated costs
  • Compare renewal costs across extensions to advise users on long-term holding costs via cheapest_renewal
  • Power a domain suggestion widget that fans out a bare keyword against a custom tlds list
  • Automate domain portfolio audits by checking transfer pricing with cheapest_transfer across extensions
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does tld-list.com have an official developer API?+
tld-list.com does not publish an official developer API. This Parse API provides structured access to the availability and pricing data the site tracks.
What does the is_premium flag mean in the results?+
Each row in the results array includes an is_premium boolean. When true, the domain name carries a premium price set by the registry or registrar, which typically means registration and renewal costs are significantly above standard rates. The cheapest_registration and cheapest_renewal fields will still reflect the lowest available price found for that extension.
Can I retrieve historical price trends or price change alerts for a TLD?+
Not currently. The API returns current snapshot prices — cheapest_registration, cheapest_renewal, and cheapest_transfer — at the time of the request. Historical pricing data is not exposed. You can fork this API on Parse and revise it to store responses over time to build your own price history.
Does the API return which specific registrar offers the cheapest price?+
The current response fields surface only the lowest price found per extension across registrars, not the registrar name or a direct purchase URL. The API covers availability, premium status, and cheapest prices per TLD. You can fork it on Parse and revise to add registrar-level detail if that data is available on the source pages.
What happens if I pass both a full domain with an extension and a tlds parameter?+
When the domain parameter already contains an extension (e.g. examplewidget.com), the tlds and limit parameters are ignored. The API checks only that single extension. To check multiple extensions, pass a bare label as domain and use the tlds parameter or the limit parameter.
Page content last updated . Spec covers 1 endpoint from tld-list.com.
Related APIs in Developer ToolsSee all →
instantdomainsearch.com API
Check domain name availability instantly across over 800 TLD extensions and verify whether specific domains are registered. Search and monitor domain registration status to find your perfect web address or track competitor domains in real-time.
domains.cloudflare.com API
Search for available domain names and check their pricing to find the perfect domain for your project. Discover all supported top-level domains (TLDs) available through Cloudflare Registrar to expand your domain registration options.
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.
domains.squarespace.com API
Access data from domains.squarespace.com.
domains-monitor.com API
Search and monitor domain information across multiple zones, access free domain lists, and retrieve detailed zone metadata and account information. Aggregate domain data and track availability across supported TLDs.
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.
godaddy.com API
Find similar and alternative domain names instantly with real-time pricing information based on any domain you provide. Discover available variations to help you expand your web presence or find the perfect backup domain names.
dotdb.com API
Search domains and uncover keyword insights to research competitor strategies and domain market intelligence. Get detailed domain metadata, keyword reports, and pricing information to inform your SEO and business decisions.