FreeRegistrar Prices API

List TLD prices

GET/prices/tlds/{tld}No key

Every registrar's list price for one ending, with the cheapest and trap marks.

Registrar catalog order, then other registrars alphabetically. Free on a public-set ending; outside it the free tier reads one ending a UTC day.

AccessNo key. Limited per address; a key adds the paid fields.
BillingOne call.
FormatsJSON, CSV (.csv)

Connect on RapidAPIAlso inDomain Price Comparison API

Request

tldstringRequiredPath

The ending without the dot (ai); lowercased, a leading dot stripped.

fieldsstringOptionalQuery

Comma-separated top-level keys to keep; an unknown key answers 400 unsupported_field.

curl -X GET "https://api.unique.domains/v1/prices/tlds/io"

Response

registrarstring
namestring
homepageUrlstring
purchasePricenumber
renewalPricenumber
transferPricenumber
currencystring
isPromoboolean

First year is a promotion.

regularPurchasePricenumber
renewalTrapboolean

Renewal at least twice the first year and $10 more.

cheapestboolean

Lowest first year.

cheapestRenewalboolean

Lowest renewal.

cheapestTransferboolean

Lowest transfer-in.

Errors

not_found404

Not found

rate_limited429

Too many requests

internal500

Unexpected error

200 · application/jsonExample
{
  "data": [
    {
      "registrar": "cloudflare",
      "name": "Cloudflare",
      "homepageUrl": "https://www.cloudflare.com/products/registrar/",
      "purchasePrice": 38.5,
      "renewalPrice": 38.5,
      "transferPrice": 38.5,
      "currency": "USD",
      "isPromo": false,
      "renewalTrap": false,
      "cheapest": true,
      "cheapestRenewal": true,
      "cheapestTransfer": true
    }
  ],
  "meta": {
    "asOf": "2026-11-05T08:00:00Z",
    "cursor": null,
    "limit": null
  },
  "links": {
    "self": "https://api.unique.domains/v1/prices/tlds/io",
    "next": null,
    "register": null,
    "product": null,
    "dataset": null
  }
}

API status

Ask AI about Unique Domains