apyhub
Back
▣ DEVELOPER TOOLS · E-COMMERCE QUICK TOOLS

Domain Pricing, TLD & Registrar Information

What it does

TLD Directory lets you list top-level domains and compare their cheapest prices across registrars. Send optional query parameters like q, sort, type, category, limit, and offset, and get back a paginated data array plus meta totals.

Each item in data includes the TLD itself, its type, category, whether it is isRestricted, and a popularityRank and registrarCount. Price fields are exposed where available: cheapestRegister, cheapestRenew, cheapestTransfer, and cheapestThreeYear. Each of those can include a price and registrar details with name and slug.

Use TLD Directory when you need to power domain search, compare registrar pricing, or build a catalog of available extensions for a signup flow or domain marketplace. Sorting by popularity, price ascending, price descending, or TLD makes it easy to present the right list for browsing or filtering.

▣ ENDPOINT 01 / 18
GET
List TLDs & Cheapest Prices
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/tlds/list

QUICKSTART

GUIDE

Quickstart

List TLDs, filtered and sorted with optional query parameters.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/tlds/list?q=com&sort=popularity&limit=1&offset=0" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

A JSON object with a data array of TLDs and a meta object with pagination info. Each TLD includes type, category, isRestricted, popularityRank, registrarCount and the cheapest register, renew, transfer and three-year prices (each null when no registrar publishes one). Prices are USD per year.

{
  "data": [
    {
      "id": "com",
      "tld": "com",
      "type": "gtld",
      "category": [],
      "isRestricted": false,
      "popularityRank": 1,
      "registrarCount": 120,
      "cheapestRegister": { "price": 9.98, "registrar": { "name": "Porkbun", "slug": "porkbun" } },
      "cheapestRenew": { "price": 9.98, "registrar": { "name": "Porkbun", "slug": "porkbun" } },
      "cheapestTransfer": { "price": 9.98, "registrar": { "name": "Porkbun", "slug": "porkbun" } },
      "cheapestThreeYear": { "price": 29.94, "registrar": { "name": "Porkbun", "slug": "porkbun" } }
    }
  ],
  "meta": { "limit": 1, "total": 12, "offset": 0 }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns a filtered, sorted list of TLDs together with pricing and registrar information for the cheapest available register, renew, transfer, and three-year options. You can narrow the result set with query parameters such as search text, type, category, limit, and offset.

Query Parameter(s)

AttributeTypeMandatoryDescription
qStringNoSearch query string.
sortENUMNoSort order.
- popularity
- price_asc
- price_desc
- tld
Default: popularity
typeStringNoTLD type filter.
limitIntegerNoNumber of results to return. Minimum: 1, maximum: 500.
offsetIntegerNoNumber of results to skip. Minimum: 0. Default: 0.
categoryStringNoCategory filter.

Response

Returns a JSON object with a data array of TLD objects and a meta object with pagination fields. Each item in data includes TLD metadata, popularity and registrar counts, and nullable cheapest-price objects; meta includes limit, total, and offset.

ParameterTypeMandatoryDescription
dataObject ArrayYesList of TLD records. Each record contains:
- id (String)
- tld (String)
- type (String)
- category (String Array)
- isRestricted (Boolean)
- cheapestRenew (Object or null)
- popularityRank (Integer)
- registrarCount (Integer)
- cheapestRegister (Object or null)
- cheapestTransfer (Object or null)
- cheapestThreeYear (Object or null)
For the nested price objects, the schema defines price and registrar; registrar contains name and slug.
metaObjectYesPagination metadata containing limit (Integer), total (Integer), and offset (Integer).
▣ ENDPOINT 02 / 18
GET
Get TLD Prices by Registrar
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/tlds/:tld

QUICKSTART

GUIDE

Quickstart

Get every registrar's current price for one TLD. Set the tld path value (for example com) without a leading dot.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/tlds/:tld" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

A JSON object with a data object containing the TLD's metadata, summary priceStats, and a currentPrices array with one entry per registrar. A price of 0 means unknown. Returns 404 if the TLD is not tracked.

{
  "data": {
    "tld": "com",
    "type": "gtld",
    "category": [],
    "registryOperator": "Verisign",
    "launchDate": null,
    "isRestricted": false,
    "idnSupported": true,
    "dnssecSupported": true,
    "currentPrices": [
      {
        "registrar": { "name": "Porkbun", "slug": "porkbun", "logoUrl": "https://example.com/porkbun.png", "whoisPrivacyIncluded": true },
        "priceRegister": 11.08,
        "priceRenew": 11.08,
        "priceTransfer": 11.08,
        "currency": "USD",
        "fetchedAt": "2026-09-30T02:00:00Z"
      }
    ],
    "priceStats": {
      "average": { "register": 12.4, "renew": 14.1, "transfer": 12.9 },
      "median": { "register": 11.5, "renew": 13.2, "transfer": 11.9 }
    }
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the current pricing information for a single TLD, identified by the tld path parameter. The response includes the TLD metadata plus a list of registrar price entries and summary price statistics when available.

Path Parameter(s)

AttributeTypeMandatoryDescription
tldStringYesThe TLD identifier, such as com.

Response

Returns a JSON object with a data object containing the TLD details, summary pricing, and an array of registrar price records.

AttributeTypeMandatoryDescription
dataObjectYesThe TLD result object.
data.tldStringYesThe TLD identifier.
data.typeStringYesThe TLD type.
data.categoryString ArrayYesCategories associated with the TLD.
data.launchDateStringNoThe launch date and time, or null. Format: date-time.
data.priceStatsObjectNoSummary pricing statistics, or null.
data.priceStats.medianObjectNoMedian prices.
data.priceStats.median.renewNumberNoMedian renew price, or null.
data.priceStats.median.registerNumberNoMedian register price, or null.
data.priceStats.median.transferNumberNoMedian transfer price, or null.
data.priceStats.averageObjectNoAverage prices.
data.priceStats.average.renewNumberNoAverage renew price, or null.
data.priceStats.average.registerNumberNoAverage register price, or null.
data.priceStats.average.transferNumberNoAverage transfer price, or null.
data.idnSupportedBooleanYesWhether the TLD supports IDN.
data.isRestrictedBooleanYesWhether the TLD is restricted.
data.currentPricesObject ArrayYesCurrent registrar price entries for the TLD.
data.currentPrices[].currencyStringYesCurrency code for the listed prices.
data.currentPrices[].fetchedAtStringYesWhen the price entry was fetched. Format: date-time.
data.currentPrices[].promoCodeStringNoPromo code, if present.
data.currentPrices[].registrarObjectYesRegistrar details for the price entry.
data.currentPrices[].registrar.nameStringYesRegistrar name.
data.currentPrices[].registrar.slugStringYesRegistrar slug.
data.currentPrices[].registrar.logoUrlStringYesRegistrar logo URL.
data.currentPrices[].registrar.whoisPrivacyIncludedBooleanNoWhether WHOIS privacy is included, or null.
data.currentPrices[].priceRenewNumberYesRenewal price. 0 means unknown.
data.currentPrices[].priceRegisterNumberYesRegistration price. 0 means unknown.
data.currentPrices[].priceTransferNumberYesTransfer price. 0 means unknown.
data.dnssecSupportedBooleanYesWhether DNSSEC is supported.
data.registryOperatorStringYesThe registry operator name.
▣ ENDPOINT 03 / 18
GET
Get TLD Price History
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/tlds/:tld/history

QUICKSTART

GUIDE

Quickstart

Fetch the TLD price history for a domain extension like com.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/tlds/:tld/history" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a top-level data array. Each item contains a registrar object with name and slug, and a points array of price records with fetchedAt, priceRegister, and priceRenew.

{
  "data": [
    {
      "registrar": {
        "name": "Porkbun",
        "slug": "porkbun"
      },
      "points": [
        {
          "fetchedAt": "2024-01-01T00:00:00Z",
          "priceRegister": 9.99,
          "priceRenew": 11.99
        }
      ]
    }
  ]
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the price history for a single TLD, grouped per registrar. The request identifies the TLD in the path, and the response returns a JSON object containing a data array of registrar history objects.

Path Parameter(s)

AttributeTypeMandatoryDescription
tldStringYesThe TLD to look up, as a string such as com.

Response

Returns a JSON object with a data array field. Each element in data is an object containing a registrar object and a points array of price history entries.

ParameterTypeMandatoryDescription
dataObject ArrayNoArray of registrar history objects. Each item includes registrar and points.
data[].registrarObjectNoRegistrar details for the history series.
data[].registrar.nameStringNoRegistrar name.
data[].registrar.slugStringNoRegistrar slug.
data[].pointsObject ArrayNoArray of price history points for the registrar.
data[].points[].fetchedAtStringNoTimestamp when the price data was fetched, in date-time format.
data[].points[].priceRenewNumberNoRenewal price at the time of the fetched point.
data[].points[].priceRegisterNumberNoRegistration price at the time of the fetched point.
▣ ENDPOINT 04 / 18
GET
Compare TLD Prices
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/compare/prices

QUICKSTART

GUIDE

Quickstart

Compare registrar prices across several TLDs (up to 20) in one request.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/compare/prices?tlds=com,io,net" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

A JSON object with a data array, one item per TLD, each with a prices array of registrar prices (USD per year; 0 = unknown). Abbreviated example:

{
  "data": [
    {
      "tld": "com",
      "type": "gtld",
      "category": [],
      "isRestricted": false,
      "prices": [
        {
          "registrar": { "name": "Porkbun", "slug": "porkbun", "logoUrl": "https://example.com/porkbun.png", "whoisPrivacyIncluded": true },
          "priceRegister": 11.08,
          "priceRenew": 11.08,
          "priceTransfer": 11.08,
          "currency": "USD",
          "fetchedAt": "2026-09-30T02:00:00Z"
        }
      ]
    }
  ]
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Comma-separated, up to 20.

About this endpoint

What it does

Compares registrar prices across the TLDs you provide in the tlds query parameter and returns a JSON object containing a data array of TLD price records.

Query Parameter(s)

AttributeTypeMandatoryDescription
tldsStringYesComma-separated TLDs without leading dots, up to 20, for example com,io,net.

Response

Returns a JSON object with a data array field. Each item in data is an object describing one TLD comparison result, including the TLD itself, its type, available categories, whether it is restricted, and an array of registrar price entries. Success status code is 200.

AttributeTypeMandatoryDescription
dataObject ArrayNoArray of TLD comparison objects. Each object includes tld, type, prices, category, and isRestricted.

data[] item fields

AttributeTypeMandatoryDescription
tldStringNoThe TLD being compared.
typeStringNoThe TLD type.
pricesObject ArrayNoArray of registrar price objects for this TLD.
categoryString ArrayNoCategories associated with the TLD.
isRestrictedBooleanNoIndicates whether the TLD is restricted.

data[].prices[] item fields

AttributeTypeMandatoryDescription
currencyStringNoCurrency code for the listed prices, for example USD.
fetchedAtStringNoTimestamp when the price data was fetched, in date-time format.
promoCodeStringNoPromotional code associated with the price, when present.
registrarObjectNoRegistrar details for the price entry.
priceRenewNumberNoRenewal price. 0 indicates unknown.
priceRegisterNumberNoRegistration price. 0 indicates unknown.
priceTransferNumberNoTransfer price. 0 indicates unknown.

data[].prices[].registrar fields

AttributeTypeMandatoryDescription
nameStringNoRegistrar name.
slugStringNoRegistrar slug.
logoUrlStringNoRegistrar logo URL.
whoisPrivacyIncludedBooleanNoIndicates whether WHOIS privacy is included. The schema also allows null.
▣ ENDPOINT 05 / 18
GET
List Registrars
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/registrars/list

QUICKSTART

GUIDE

Quickstart

Fetch the list of tracked registrars.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/registrars/list" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

A JSON object with a data array. Each item has the registrar's id, name, slug, logoUrl, trackedTlds (number of TLDs tracked), affiliateNetwork and whoisPrivacyIncluded (true, false or null if unknown). Use a slug with the other registrar endpoints.

{
  "data": [
    {
      "id": "1",
      "name": "Porkbun",
      "slug": "porkbun",
      "logoUrl": "https://example.com/porkbun.png",
      "trackedTlds": 150,
      "affiliateNetwork": "cj",
      "whoisPrivacyIncluded": true
    }
  ]
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the list of tracked registrars as a JSON object containing a data array. Each array item represents one registrar and includes its identifier, name, slug, logo URL, tracked TLD count, affiliate network, and whether WHOIS privacy is included.

Response

Returns a JSON object with a data array field. Each element in data is an object describing a tracked registrar with the fields defined below.

ParameterTypeMandatoryDescription
dataObject ArrayYesArray of tracked registrar objects.
data[].idStringYesRegistrar identifier.
data[].nameStringYesRegistrar name.
data[].slugStringYesRegistrar slug.
data[].logoUrlStringYesRegistrar logo URL.
data[].trackedTldsIntegerYesNumber of tracked TLDs.
data[].affiliateNetworkStringYesAffiliate network associated with the registrar.
data[].whoisPrivacyIncludedBooleanYesWhether WHOIS privacy is included. The schema also allows null.
▣ ENDPOINT 06 / 18
GET
Get Registrar Details
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/registrars/:slug

QUICKSTART

GUIDE

Quickstart

Get details for a registrar by its slug.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/registrars/:slug" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a data object. The data object includes registrar details such as name, slug, logoUrl, pageUrl, reviews, lastUpdated, trackedTlds, activePromos, affiliateNetwork, whoisPrivacyIncluded, and cheapestRegistrations.

{
  "data": {
    "name": "Porkbun",
    "slug": "porkbun",
    "logoUrl": "https://example.com/logo.png",
    "pageUrl": "https://example.com/registrars/porkbun",
    "reviews": {
      "count": 120,
      "averageRating": 4.8
    },
    "lastUpdated": "2026-01-01T12:00:00Z",
    "trackedTlds": 500,
    "activePromos": [],
    "affiliateNetwork": "none",
    "whoisPrivacyIncluded": true,
    "cheapestRegistrations": []
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns detailed information for a single registrar identified by its slug, including review metrics, WHOIS privacy availability, active promo codes, and cheapest registration-related prices for tracked TLDs.

Path Parameter(s)

AttributeTypeMandatoryDescription
slugStringYesRegistrar slug identifier.

Response

Returns a JSON object with a data object field. The data object contains the registrar profile and related pricing information.

ParameterTypeMandatoryDescription
dataObjectYesRegistrar details object.
data.nameStringNoRegistrar name.
data.slugStringNoRegistrar slug.
data.logoUrlStringNoRegistrar logo URL.
data.pageUrlStringNoRegistrar page URL.
data.reviewsObjectNoReview summary object.
data.reviews.countIntegerNoNumber of reviews.
data.reviews.averageRatingNumberNoAverage rating, or null if unavailable.
data.lastUpdatedStringNoLast update timestamp in date-time format, or null if unavailable.
data.trackedTldsIntegerNoNumber of tracked TLDs.
data.activePromosObject ArrayNoActive promo entries.
data.activePromos[].tldStringNoPromo TLD, or null if not tied to a specific TLD.
data.activePromos[].codeStringNoPromo code.
data.activePromos[].discountStringNoDiscount description.
data.activePromos[].verifiedBooleanNoWhether the promo is verified.
data.activePromos[].appliesToStringNoWhat the promo applies to.
data.activePromos[].expiresAtStringNoExpiration timestamp in date-time format, or null if unavailable.
data.activePromos[].priceAfterCodeNumberNoPrice after applying the code, or null if unavailable.
data.affiliateNetworkStringNoAffiliate network name.
data.whoisPrivacyIncludedBooleanNoWhether WHOIS privacy is included, or null if unavailable.
data.cheapestRegistrationsObject ArrayNoCheapest registration price entries.
data.cheapestRegistrations[].tldStringNoTLD.
data.cheapestRegistrations[].renewNumberNoRenewal price.
data.cheapestRegistrations[].registerNumberNoRegistration price.
data.cheapestRegistrations[].transferNumberNoTransfer price.
▣ ENDPOINT 07 / 18
GET
Get All Registrar & TLD Prices
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/all/prices

QUICKSTART

GUIDE

Quickstart

Fetch current prices for selected registrars and TLDs, in the default compact format.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/all/prices?registrars=porkbun&tlds=com" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

A JSON object with a data object (registrar slug → TLD → [register, renew, transfer] in USD per year) and a meta object with counts. A 0 means the price is not published.

{
  "data": {
    "porkbun": {
      "com": [11.08, 11.08, 11.08]
    }
  },
  "meta": {
    "format": "compact",
    "currency": "USD",
    "registrars": 1,
    "tlds": 1,
    "prices": 1
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Comma-separated TLDs without dots
Comma-separated registrar slugs

About this endpoint

What it does

Returns every current price in one call, keyed by registrar slug and then by TLD. Use registrars and tlds to narrow the matrix; unknown registrar or TLD names are ignored.

Query Parameter(s)

AttributeTypeMandatoryDescription
registrarsStringNoComma-separated registrar slugs, for example porkbun,dynadot.
tldsStringNoComma-separated TLDs without dots, for example com,io,ai.
formatENUMNoOutput format: compact or full. Default: compact.

Price format

  • compact (default): each TLD maps to an array [register, renew, transfer], in USD per year.
  • full: each TLD maps to a full price object instead of the array.
  • A value of 0 means the registrar does not publish that price.

This endpoint requires a paid plan; free keys receive 402.

Response

Returns a JSON object with a data object and a meta object.

FieldTypeDescription
dataObjectRegistrar slug → TLD → prices.
metaObjectSummary of the response.
meta.formatStringThe format returned: compact or full.
meta.currencyStringCurrency of all prices, USD.
meta.registrarsIntegerNumber of registrars in the response.
meta.tldsIntegerNumber of TLDs in the response.
meta.pricesIntegerNumber of registrar/TLD price entries returned.
▣ ENDPOINT 08 / 18
GET
Get Active Promo Codes
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/get/promos

QUICKSTART

GUIDE

Quickstart

List active promo codes, optionally filtered by registrar, TLD and price type.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/get/promos?registrars=namecheap&tlds=com&limit=1" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

A JSON object with a data array of promo codes. Each item shows the code, what it applies to, the registrar, and the price before and after the code (USD).

{
  "data": [
    {
      "code": "COM67",
      "tld": "com",
      "priceTld": "com",
      "appliesTo": "register",
      "priceType": "register",
      "discountType": "price",
      "discountValue": 3.6,
      "discountLabel": "$3.60 with code",
      "regularPrice": 10.28,
      "priceAfterCode": 3.6,
      "savingPercent": 65,
      "isVerified": true,
      "lastVerifiedAt": "2026-09-29T08:00:00Z",
      "startsAt": null,
      "expiresAt": null,
      "usageLimit": null,
      "registrar": { "name": "Namecheap", "slug": "namecheap", "logoUrl": "https://example.com/namecheap.png" }
    }
  ]
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the active promo codes and the price after applying each code. The response is a JSON object containing a data array of promo-code objects.

Query Parameter(s)

AttributeTypeMandatoryDescription
registrarsStringNoComma-separated registrar slugs, for example namecheap,spaceship.
tldsStringNoComma-separated TLDs, for example com,io. Registrar-wide codes (tld = null) always match.
typeENUMNoFilter by price type: register, renew or transfer.
verifiedBooleanNoFilter by verification status.
limitIntegerNoMaximum number of results. Default: 50. Minimum: 1. Maximum: 200.
offsetIntegerNoNumber of results to skip. Default: 0. Minimum: 0.

Registrar-wide codes: when tld is null the code applies to the whole registrar. Its regularPrice and priceAfterCode are calculated on .com as an example; priceTld tells you which TLD the prices are for.

Response

Returns a JSON object with a data array field. Each item in data is an object containing promo-code details, including the promo code itself, pricing fields, registrar information, and verification metadata. Success response: 200.

ParameterTypeMandatoryDescription
dataObject ArrayYesArray of promo-code objects. Each object includes the fields below.
data[].tldStringNoThe TLD the promo applies to. null means registrar-wide.
data[].codeStringYesPromo code string.
data[].priceTldStringNoThe TLD the prices are for. null when not set.
data[].startsAtStringNoPromo start date-time in ISO 8601 format. null when not set.
data[].appliesToENUMYesScope of the promo. Allowed values: register, renew, transfer, all.
data[].expiresAtStringNoPromo expiration date-time in ISO 8601 format. null when not set.
data[].priceTypeENUMYesPrice type the promo applies to. Allowed values: register, renew, transfer.
data[].registrarObjectYesRegistrar details object containing name, slug, and logoUrl.
data[].isVerifiedBooleanYesWhether the promo has been verified.
data[].usageLimitIntegerNoUses per customer; null means unlimited.
data[].discountTypeENUMYesDiscount type. Allowed values: percentage, fixed, price.
data[].regularPriceNumberNoRegular price before the promo. null when not set.
data[].discountLabelStringYesHuman-readable discount label.
data[].discountValueNumberYesDiscount value.
data[].savingPercentIntegerNoSavings percentage. null when not set.
data[].lastVerifiedAtStringNoLast verification date-time in ISO 8601 format. null when not set.
data[].priceAfterCodeNumberNoPrice after applying the promo code. null when not set.
▣ ENDPOINT 09 / 18
GET
Get Complete Domain Information
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/info/:domain

QUICKSTART

GUIDE

Quickstart

Get WHOIS, DNS, SSL and website status for a domain in one call. Set the domain path value, for example example.com.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/info/:domain" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

A JSON object with a data object containing domain, whois, dns, ssl and status. Abbreviated example:

{
  "data": {
    "domain": "example.com",
    "whois": {
      "domain": "example.com",
      "registered": true,
      "source": "rdap",
      "registrar": "Example Registrar, Inc.",
      "expiresAt": "2027-08-13T04:00:00Z",
      "daysUntilExpiry": 317,
      "nameservers": ["ns1.example.com", "ns2.example.com"]
    },
    "dns": {
      "A": [{ "name": "example.com", "type": "A", "ttl": 3600, "data": "93.184.216.34" }]
    },
    "ssl": { "domain": "example.com", "valid": true, "daysRemaining": 61 },
    "status": { "domain": "example.com", "online": true, "statusCode": 200 }
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Domain name, e.g. example.com (Unicode domains are accepted)

About this endpoint

What it does

Checks a domain in one call and returns WHOIS, DNS, SSL, and website status information for that domain. The request takes the domain as a path parameter and the response groups the collected data under a data object.

Path Parameter(s)

AttributeTypeMandatoryDescription
domainStringYesThe domain to inspect, such as example.com. Unicode (IDN) domains are accepted.

DNS records appear under data.dns in this response. The dedicated DNS endpoint returns the same records under data.records.

Response

Returns a JSON object with a data object field. The data object contains dns, ssl, whois, domain, and status fields.

ParameterTypeMandatoryDescription
dataObjectYesContainer for the aggregated domain information.
data.dnsObjectNoDNS records grouped by record type. The object keys represent record types, and each value is an array of DNS record objects with ttl, data, name, and type fields.
data.sslObjectNoSSL certificate information, including error, valid, domain, issuer, subject, validTo, altNames, protocol, validFrom, and daysRemaining. Fields may be null where the schema allows it.
data.whoisObjectNoWHOIS/RDAP information for the domain, including raw, dnssec, domain, source, status, createdAt, expiresAt, registrar, updatedAt, registered, nameservers, and daysUntilExpiry. Fields may be null where the schema allows it.
data.domainStringNoThe domain associated with the returned data.
data.statusObjectNoWebsite status information, including error, domain, online, server, finalUrl, redirects, statusCode, and responseTimeMs. Fields may be null where the schema allows it.
▣ ENDPOINT 10 / 18
GET
Check Domain Availability
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/check/domain

QUICKSTART

GUIDE

Quickstart

Check whether a domain is available by passing the domain name as a query parameter.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/check/domain?domain=apyhub.com" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a data object containing domain (string), expires (string or null), available (boolean or null), and registrar (string or null).

{
  "data": {
    "domain": "apyhub.com",
    "available": false,
    "registrar": "Porkbun LLC",
    "expires": "2028-11-17T15:51:44Z"
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Checks whether a domain is available by looking it up live using RDAP, with WHOIS fallback when needed. The request takes a domain query parameter and returns a JSON object containing a data object with the lookup result.

Query Parameter(s)

AttributeTypeMandatoryDescription
domainStringYesThe domain name to check.

Response

Returns a JSON object with a data object field. The data object contains domain as a string, expires as a string in date-time format or null, available as a boolean or null, and registrar as a string or null.

ParameterTypeMandatoryDescription
dataObjectNoLookup result object.
data.domainStringNoThe domain name returned by the lookup.
data.expiresStringNoExpiration timestamp in date-time format, or null.
data.availableBooleanNoWhether the domain is available, or null when the registry could not be reached.
data.registrarStringNoRegistrar name, or null.
▣ ENDPOINT 11 / 18
POST
Check Multiple Domains
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/check/domains/availability

QUICKSTART

GUIDE

Quickstart

Check up to 100 domains at once by sending them as a JSON array.

curl -X POST "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/check/domains/availability" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domains":["apyhub.com","mybrand.io"]}'

What you'll get back

A JSON object with a data array (one result per input) and a meta object with total, available, taken and unknown counts.

{
  "data": [
    {
      "input": "apyhub.com",
      "domain": "apyhub.com",
      "available": false,
      "registrar": "Porkbun LLC",
      "expires": "2028-11-17T15:51:44Z"
    },
    {
      "input": "mybrand.com",
      "domain": "mybrand.com",
      "available": false,
      "registrar": "Register.com - Network Solutions, LLC",
      "expires": "2026-11-29T15:37:30Z"
    }
  ],
  "meta": {
    "total": 2,
    "available": 0,
    "taken": 2,
    "unknown": 0
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
domains*

About this endpoint

What it does

Checks the availability of up to 100 domains in one request. Returns a result for each input plus summary counts.

Request Body

ParameterTypeMandatoryDescription
domainsString ArrayYesDomain names to check. Maximum: 100.

Response

Returns a JSON object with a data array (one result per input) and a meta object with counts.

FieldTypeDescription
dataObject ArrayOne result per input domain.
data[].inputStringThe value you sent.
data[].domainString or nullThe normalised domain name.
data[].availableBoolean or nulltrue if available, false if taken, null if the registry could not be reached.
data[].registrarString or nullCurrent registrar, when the domain is registered.
data[].expiresString or nullExpiry date, when the domain is registered.
data[].errorStringPresent only when the input could not be checked (for example, invalid input).
metaObjectSummary counts for the batch.
meta.totalIntegerNumber of domains submitted.
meta.availableIntegerNumber available.
meta.takenIntegerNumber taken.
meta.unknownIntegerNumber that could not be determined.
▣ ENDPOINT 12 / 18
GET
Get Domain Registration Details
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/:domain/whois

QUICKSTART

GUIDE

Quickstart

Look up registration data for a domain. Set the domain path value, for example example.com.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/:domain/whois" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

A JSON object with a data object containing the registrar, dates, status codes and nameservers. source is rdap or whois depending on which answered; raw is only set when WHOIS answered.

{
  "data": {
    "domain": "example.com",
    "registered": true,
    "source": "rdap",
    "registrar": "Example Registrar, Inc.",
    "createdAt": "1995-08-14T04:00:00Z",
    "updatedAt": "2026-08-14T07:01:31Z",
    "expiresAt": "2027-08-13T04:00:00Z",
    "daysUntilExpiry": 317,
    "status": ["client delete prohibited", "client transfer prohibited"],
    "nameservers": ["ns1.example.com", "ns2.example.com"],
    "dnssec": true,
    "raw": null
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Retrieves registration data for a domain using RDAP, with WHOIS fallback when applicable. The response returns a data object containing the domain’s registration details, status, nameservers, expiry timing, and related lookup metadata.

Path Parameter(s)

AttributeTypeMandatoryDescription
domainStringYesThe domain name to look up, in string form.

Response

Returns a JSON object with a data object field. The data object includes the domain lookup results and metadata such as source, status, dates, registrar, nameservers, and expiry information.

ParameterTypeMandatoryDescription
dataObjectNoDomain registration data object.
data.rawStringNoRaw port-43 WHOIS reply when WHOIS answered; may be null.
data.dnssecBooleanNoDNSSEC status; may be null.
data.domainStringNoThe domain name returned by the lookup.
data.sourceENUMNoLookup source. Allowed values: rdap, whois, null.
data.statusString ArrayNoDomain status values returned by the lookup.
data.createdAtStringNoCreation date; may be null.
data.expiresAtStringNoExpiration date; may be null.
data.registrarStringNoRegistrar name; may be null.
data.updatedAtStringNoLast updated date; may be null.
data.registeredBooleanNoWhether the domain is registered; may be null.
data.nameserversString ArrayNoNameservers returned by the lookup.
data.daysUntilExpiryIntegerNoNumber of days until expiry; may be null.
▣ ENDPOINT 13 / 18
GET
Get DNS Records
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/:domain/dns

QUICKSTART

GUIDE

Quickstart

Look up DNS records for a domain, optionally filtering by record types.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/:domain/dns?types=A,MX,TXT" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a data object. data.domain is the domain you queried, and data.records is an object mapping each record type to an array of DNS record objects.

{
  "data": {
    "domain": "example.com",
    "records": {
      "A": [
        {
          "ttl": 3600,
          "data": "93.184.216.34",
          "name": "example.com",
          "type": "A"
        }
      ]
    }
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Retrieves DNS records for the specified domain and returns them grouped by record type. You can optionally limit the response to specific record types using the types query parameter.

Path Parameter(s)

AttributeTypeMandatoryDescription
domainStringYesThe domain name to look up.

Query Parameter(s)

AttributeTypeMandatoryDescription
typesStringNoComma-separated DNS record types to return.

Response

Returns a JSON object with a data object field. The data object contains the queried domain as a string and a records object mapping record type names to arrays of record objects.

ParameterTypeMandatoryDescription
dataObjectNoContains the resolved domain and records for the lookup.
data.domainStringNoThe domain that was queried.
data.recordsObjectNoRecord type → records. Each property name is a DNS record type, and each value is an array of record objects.
▣ ENDPOINT 14 / 18
GET
Get SSL Certificate Details
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/:domain/ssl

QUICKSTART

GUIDE

Quickstart

Check the SSL status for a domain by passing it in the URL path.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/:domain/ssl" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a data object. Inside data, the response includes the domain check result fields such as domain and may include valid, error, certificate details, and expiry information.

{
  "data": {
    "domain": "apyhub.com",
    "valid": true,
    "error": null,
    "issuer": "Google Trust Services",
    "subject": "apyhub.com",
    "validFrom": "2026-08-30T12:40:27.000Z",
    "validTo": "2026-11-28T13:40:25.000Z",
    "daysRemaining": 59,
    "altNames": [
      "apyhub.com",
      "*.apyhub.com"
    ],
    "protocol": "TLSv1.3"
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Retrieves SSL certificate details for a domain, including issuer, validity period, remaining days, and covered names. The response is returned inside a data object.

Path Parameter(s)

AttributeTypeMandatoryDescription
domainStringYesThe domain name to inspect.

Response

Returns a JSON object with a data object field. The data object contains certificate-related fields such as domain, issuer, subject, validFrom, validTo, daysRemaining, altNames, protocol, valid, and error.

ParameterTypeMandatoryDescription
dataObjectYesCertificate details returned for the requested domain.
data.errorStringNoError message, if present.
data.validBooleanNoWhether the certificate is valid, if present.
data.domainStringYesThe domain associated with the certificate.
data.issuerStringNoCertificate issuer, if present.
data.subjectStringNoCertificate subject, if present.
data.validToStringNoCertificate expiration date/time, if present.
data.altNamesString ArrayNoAlternative names covered by the certificate.
data.protocolStringNoProtocol associated with the certificate, if present.
data.validFromStringNoCertificate start date/time, if present.
data.daysRemainingIntegerNoRemaining validity days, if present.
▣ ENDPOINT 15 / 18
GET
Check Website Status
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/:domain/status

QUICKSTART

GUIDE

Quickstart

Check whether a domain is online by passing the domain in the path.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/domain/:domain/status" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a data object. That data object includes domain as a string, online as a boolean, and other response details such as error, server, finalUrl, redirects, statusCode, and responseTimeMs.

{
  "data": {
    "domain": "apyhub.com",
    "online": true,
    "statusCode": 200,
    "finalUrl": "https://apyhub.com/",
    "redirects": [],
    "responseTimeMs": 149,
    "server": "cloudflare",
    "error": null
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Checks whether a website is online for the given domain and returns a JSON object describing the result, including the final URL, redirects, HTTP status code, server, and response time when available.

Path Parameter(s)

AttributeTypeMandatoryDescription
domainStringYesThe domain to check, such as example.com.

Response

Returns a JSON object with a data object field. The data object contains the checked domain, an online boolean, and optional fields for error, server, finalUrl, redirects, statusCode, and responseTimeMs.

AttributeTypeMandatoryDescription
dataObjectYesResult object for the domain check.
data.errorStringNoError message, or null.
data.domainStringYesThe domain that was checked.
data.onlineBooleanYesIndicates whether the website is online.
data.serverStringNoServer value, or null.
data.finalUrlStringNoFinal URL after redirects, or null.
data.redirectsString ArrayNoRedirect URLs followed during the check.
data.statusCodeIntegerNoHTTP status code, or null.
data.responseTimeMsIntegerNoResponse time in milliseconds, or null.
▣ ENDPOINT 16 / 18
GET
Get API Key & Usage Details
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/key/details

QUICKSTART

GUIDE

Quickstart

Fetch your API key information.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/key/details" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a data object containing your key details. The data object includes plan, usage, status, expiresAt, and keyPrefix.

{
  "data": {
    "plan": "yearly",
    "usage": {
      "used": 120,
      "limit": 1000,
      "resetsAt": "2026-01-01T00:00:00Z",
      "remaining": 880
    },
    "status": "active",
    "expiresAt": "2026-12-31T23:59:59Z",
    "keyPrefix": "apy_abc"
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the current API key’s plan, status, expiry, and today’s usage information as a JSON object.

Response

Returns a JSON object with a data object field. The data object contains the key’s plan, usage, status, expiresAt, and keyPrefix fields.

ParameterTypeMandatoryDescription
dataObjectYesThe response wrapper containing the key information.
data.planStringNoThe plan name for the current key. Can be null.
data.usageObjectNoUsage information for today.
data.usage.usedIntegerNoNumber of units used today.
data.usage.limitIntegerNoUsage limit for the current plan.
data.usage.resetsAtStringNoDate-time when the usage counter resets.
data.usage.remainingIntegerNoNumber of units remaining today.
data.statusStringNoThe key’s status. Can be null.
data.expiresAtStringNoDate-time when the key expires. Can be null.
data.keyPrefixStringNoThe key prefix.
▣ ENDPOINT 17 / 18
GET
Get Pricing Status & Coverage
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/pricing/status

QUICKSTART

GUIDE

Quickstart

Check the service status with a simple GET request.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/pricing/status" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a data object. Inside data, status is a string, tracked is an object with integer counts for tlds, prices, registrars, and activePromos, lastUpdated is a string or null in date-time format, and updateSchedule is a string.

{
  "data": {
    "status": "ok",
    "tracked": {
      "tlds": 1234,
      "prices": 567,
      "registrars": 89,
      "activePromos": 12
    },
    "lastUpdated": "2026-09-28T12:00:00Z",
    "updateSchedule": "daily"
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the current pricing coverage status as a JSON object wrapped in data. The response includes a status string, tracked coverage counts, the last update timestamp, and the update schedule.

Response

Returns a JSON object with a data object field. Inside data, the response includes status (String), tracked (Object), lastUpdated (String or null), and updateSchedule (String).

ParameterTypeMandatoryDescription
dataObjectYesWrapper object containing the endpoint response fields.
data.statusStringYesStatus value for the response.
data.trackedObjectYesObject containing tracked coverage counts.
data.tracked.tldsIntegerYesNumber of tracked TLDs.
data.tracked.pricesIntegerYesNumber of tracked prices.
data.tracked.registrarsIntegerYesNumber of tracked registrars.
data.tracked.activePromosIntegerYesNumber of tracked active promotions.
data.lastUpdatedStringYesLast update timestamp in date-time format, or null.
data.updateScheduleStringYesUpdate schedule description.
▣ ENDPOINT 18 / 18
GET
Get Free Pricing Sample
https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/demo/sample

QUICKSTART

GUIDE

Quickstart

Fetch the demo endpoint with your API token.

curl -X GET "https://api.eu.apyhub.com/tlderscom/domain-pricing-tld-registrar-information/demo/sample" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with:

  • data — an object whose keys map to objects with arbitrary nested properties
  • meta — an object that may include:
    • note — a string
    • format — a string
{
  "data": {},
  "meta": {
    "note": "Example response",
    "format": "json"
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns a JSON object containing pricing data in data and additional information in meta. The data field is an object keyed by the response’s own top-level structure, with each value being an object; meta is an object that may include note and format.

Response

Returns a JSON object with a data object field and a meta object field.

FieldTypeMandatoryDescription
dataObjectYesAn object whose values are objects. The schema does not define the nested keys, so their shape is not documented here.
metaObjectYesAn object that may contain note and format string fields.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.