apyhub
Back
▣ DEVELOPER TOOLS · E-COMMERCE QUICK TOOLS

Domain Pricing, TLD & Registrar Information

What it does

This domain availability API checks whether a domain is free to register and what it costs across registrars. Send one name as a domain query parameter, or post up to 100 names in a domains array for a bulk check. Each result returns available, the current registrar and the expires date, from a live RDAP lookup with WHOIS fallback.

The pricing endpoints compare TLD prices in USD per year. List TLDs with the cheapest register, renew, transfer and three-year prices, compare up to 20 TLDs in one call, pull price history per registrar, or fetch active promo codes with the price after each code.

For registered domains, the WHOIS and DNS endpoints return registration dates, nameservers, DNSSEC status and records grouped by type. Other calls check the SSL certificate and whether the website is online, or return all four in one domain info request.

Use the domain availability API to power domain search in a signup or website builder flow, suggest cheaper extensions when a .com is taken, monitor expiry and certificate renewal across a domain portfolio, or build a registrar price comparison tool.

Before buying an existing domain, check its search history with the Domain Analysis API. Use the Similar Sites API to see who already operates in the same space, and the Tech Stack Detection API to see what a live site runs on.

▣ 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)

AttributeTypeDescription
qStringSearch query string.
sortENUMSort order.
- popularity
- price_asc
- price_desc
- tld
Default: popularity
typeStringTLD type filter.
limitIntegerNumber of results to return. Minimum: 1, maximum: 500.
offsetIntegerNumber of results to skip. Minimum: 0. Default: 0.
categoryStringCategory 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.

ParameterTypeDescription
dataObject ArrayList 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.
metaObjectPagination 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)

AttributeTypeDescription
tldStringThe 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.

AttributeTypeDescription
dataObjectThe TLD result object.
data.tldStringThe TLD identifier.
data.typeStringThe TLD type.
data.categoryString ArrayCategories associated with the TLD.
data.launchDateStringThe launch date and time, or null. Format: date-time.
data.priceStatsObjectSummary pricing statistics, or null.
data.priceStats.medianObjectMedian prices.
data.priceStats.median.renewNumberMedian renew price, or null.
data.priceStats.median.registerNumberMedian register price, or null.
data.priceStats.median.transferNumberMedian transfer price, or null.
data.priceStats.averageObjectAverage prices.
data.priceStats.average.renewNumberAverage renew price, or null.
data.priceStats.average.registerNumberAverage register price, or null.
data.priceStats.average.transferNumberAverage transfer price, or null.
data.idnSupportedBooleanWhether the TLD supports IDN.
data.isRestrictedBooleanWhether the TLD is restricted.
data.currentPricesObject ArrayCurrent registrar price entries for the TLD.
data.currentPrices[].currencyStringCurrency code for the listed prices.
data.currentPrices[].fetchedAtStringWhen the price entry was fetched. Format: date-time.
data.currentPrices[].promoCodeStringPromo code, if present.
data.currentPrices[].registrarObjectRegistrar details for the price entry.
data.currentPrices[].registrar.nameStringRegistrar name.
data.currentPrices[].registrar.slugStringRegistrar slug.
data.currentPrices[].registrar.logoUrlStringRegistrar logo URL.
data.currentPrices[].registrar.whoisPrivacyIncludedBooleanWhether WHOIS privacy is included, or null.
data.currentPrices[].priceRenewNumberRenewal price. 0 means unknown.
data.currentPrices[].priceRegisterNumberRegistration price. 0 means unknown.
data.currentPrices[].priceTransferNumberTransfer price. 0 means unknown.
data.dnssecSupportedBooleanWhether DNSSEC is supported.
data.registryOperatorStringThe 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)

AttributeTypeDescription
tldStringThe 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.

ParameterTypeDescription
dataObject ArrayArray of registrar history objects. Each item includes registrar and points.
data[].registrarObjectRegistrar details for the history series.
data[].registrar.nameStringRegistrar name.
data[].registrar.slugStringRegistrar slug.
data[].pointsObject ArrayArray of price history points for the registrar.
data[].points[].fetchedAtStringTimestamp when the price data was fetched, in date-time format.
data[].points[].priceRenewNumberRenewal price at the time of the fetched point.
data[].points[].priceRegisterNumberRegistration 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)

AttributeTypeDescription
tldsStringComma-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.

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

data[] item fields

AttributeTypeDescription
tldStringThe TLD being compared.
typeStringThe TLD type.
pricesObject ArrayArray of registrar price objects for this TLD.
categoryString ArrayCategories associated with the TLD.
isRestrictedBooleanIndicates whether the TLD is restricted.

data[].prices[] item fields

AttributeTypeDescription
currencyStringCurrency code for the listed prices, for example USD.
fetchedAtStringTimestamp when the price data was fetched, in date-time format.
promoCodeStringPromotional code associated with the price, when present.
registrarObjectRegistrar details for the price entry.
priceRenewNumberRenewal price. 0 indicates unknown.
priceRegisterNumberRegistration price. 0 indicates unknown.
priceTransferNumberTransfer price. 0 indicates unknown.

data[].prices[].registrar fields

AttributeTypeDescription
nameStringRegistrar name.
slugStringRegistrar slug.
logoUrlStringRegistrar logo URL.
whoisPrivacyIncludedBooleanIndicates 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.

ParameterTypeDescription
dataObject ArrayArray of tracked registrar objects.
data[].idStringRegistrar identifier.
data[].nameStringRegistrar name.
data[].slugStringRegistrar slug.
data[].logoUrlStringRegistrar logo URL.
data[].trackedTldsIntegerNumber of tracked TLDs.
data[].affiliateNetworkStringAffiliate network associated with the registrar.
data[].whoisPrivacyIncludedBooleanWhether 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)

AttributeTypeDescription
slugStringRegistrar slug identifier.

Response

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

ParameterTypeDescription
dataObjectRegistrar details object.
data.nameStringRegistrar name.
data.slugStringRegistrar slug.
data.logoUrlStringRegistrar logo URL.
data.pageUrlStringRegistrar page URL.
data.reviewsObjectReview summary object.
data.reviews.countIntegerNumber of reviews.
data.reviews.averageRatingNumberAverage rating, or null if unavailable.
data.lastUpdatedStringLast update timestamp in date-time format, or null if unavailable.
data.trackedTldsIntegerNumber of tracked TLDs.
data.activePromosObject ArrayActive promo entries.
data.activePromos[].tldStringPromo TLD, or null if not tied to a specific TLD.
data.activePromos[].codeStringPromo code.
data.activePromos[].discountStringDiscount description.
data.activePromos[].verifiedBooleanWhether the promo is verified.
data.activePromos[].appliesToStringWhat the promo applies to.
data.activePromos[].expiresAtStringExpiration timestamp in date-time format, or null if unavailable.
data.activePromos[].priceAfterCodeNumberPrice after applying the code, or null if unavailable.
data.affiliateNetworkStringAffiliate network name.
data.whoisPrivacyIncludedBooleanWhether WHOIS privacy is included, or null if unavailable.
data.cheapestRegistrationsObject ArrayCheapest registration price entries.
data.cheapestRegistrations[].tldStringTLD.
data.cheapestRegistrations[].renewNumberRenewal price.
data.cheapestRegistrations[].registerNumberRegistration price.
data.cheapestRegistrations[].transferNumberTransfer 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)

AttributeTypeDescription
registrarsStringComma-separated registrar slugs, for example porkbun,dynadot.
tldsStringComma-separated TLDs without dots, for example com,io,ai.
formatENUMOutput 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)

AttributeTypeDescription
registrarsStringComma-separated registrar slugs, for example namecheap,spaceship.
tldsStringComma-separated TLDs, for example com,io. Registrar-wide codes (tld = null) always match.
typeENUMFilter by price type: register, renew or transfer.
verifiedBooleanFilter by verification status.
limitIntegerMaximum number of results. Default: 50. Minimum: 1. Maximum: 200.
offsetIntegerNumber 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.

ParameterTypeDescription
dataObject ArrayArray of promo-code objects. Each object includes the fields below.
data[].tldStringThe TLD the promo applies to. null means registrar-wide.
data[].codeStringPromo code string.
data[].priceTldStringThe TLD the prices are for. null when not set.
data[].startsAtStringPromo start date-time in ISO 8601 format. null when not set.
data[].appliesToENUMScope of the promo. Allowed values: register, renew, transfer, all.
data[].expiresAtStringPromo expiration date-time in ISO 8601 format. null when not set.
data[].priceTypeENUMPrice type the promo applies to. Allowed values: register, renew, transfer.
data[].registrarObjectRegistrar details object containing name, slug, and logoUrl.
data[].isVerifiedBooleanWhether the promo has been verified.
data[].usageLimitIntegerUses per customer; null means unlimited.
data[].discountTypeENUMDiscount type. Allowed values: percentage, fixed, price.
data[].regularPriceNumberRegular price before the promo. null when not set.
data[].discountLabelStringHuman-readable discount label.
data[].discountValueNumberDiscount value.
data[].savingPercentIntegerSavings percentage. null when not set.
data[].lastVerifiedAtStringLast verification date-time in ISO 8601 format. null when not set.
data[].priceAfterCodeNumberPrice 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)

AttributeTypeDescription
domainStringThe 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.

ParameterTypeDescription
dataObjectContainer for the aggregated domain information.
data.dnsObjectDNS 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.sslObjectSSL certificate information, including error, valid, domain, issuer, subject, validTo, altNames, protocol, validFrom, and daysRemaining. Fields may be null where the schema allows it.
data.whoisObjectWHOIS/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.domainStringThe domain associated with the returned data.
data.statusObjectWebsite 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)

AttributeTypeDescription
domainStringThe 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.

ParameterTypeDescription
dataObjectLookup result object.
data.domainStringThe domain name returned by the lookup.
data.expiresStringExpiration timestamp in date-time format, or null.
data.availableBooleanWhether the domain is available, or null when the registry could not be reached.
data.registrarStringRegistrar 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

ParameterTypeDescription
domainsString ArrayDomain 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)

AttributeTypeDescription
domainStringThe 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.

ParameterTypeDescription
dataObjectDomain registration data object.
data.rawStringRaw port-43 WHOIS reply when WHOIS answered; may be null.
data.dnssecBooleanDNSSEC status; may be null.
data.domainStringThe domain name returned by the lookup.
data.sourceENUMLookup source. Allowed values: rdap, whois, null.
data.statusString ArrayDomain status values returned by the lookup.
data.createdAtStringCreation date; may be null.
data.expiresAtStringExpiration date; may be null.
data.registrarStringRegistrar name; may be null.
data.updatedAtStringLast updated date; may be null.
data.registeredBooleanWhether the domain is registered; may be null.
data.nameserversString ArrayNameservers returned by the lookup.
data.daysUntilExpiryIntegerNumber 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)

AttributeTypeDescription
domainStringThe domain name to look up.

Query Parameter(s)

AttributeTypeDescription
typesStringComma-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.

ParameterTypeDescription
dataObjectContains the resolved domain and records for the lookup.
data.domainStringThe domain that was queried.
data.recordsObjectRecord 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)

AttributeTypeDescription
domainStringThe 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.

ParameterTypeDescription
dataObjectCertificate details returned for the requested domain.
data.errorStringError message, if present.
data.validBooleanWhether the certificate is valid, if present.
data.domainStringThe domain associated with the certificate.
data.issuerStringCertificate issuer, if present.
data.subjectStringCertificate subject, if present.
data.validToStringCertificate expiration date/time, if present.
data.altNamesString ArrayAlternative names covered by the certificate.
data.protocolStringProtocol associated with the certificate, if present.
data.validFromStringCertificate start date/time, if present.
data.daysRemainingIntegerRemaining 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)

AttributeTypeDescription
domainStringThe 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.

AttributeTypeDescription
dataObjectResult object for the domain check.
data.errorStringError message, or null.
data.domainStringThe domain that was checked.
data.onlineBooleanIndicates whether the website is online.
data.serverStringServer value, or null.
data.finalUrlStringFinal URL after redirects, or null.
data.redirectsString ArrayRedirect URLs followed during the check.
data.statusCodeIntegerHTTP status code, or null.
data.responseTimeMsIntegerResponse 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.

ParameterTypeDescription
dataObjectThe response wrapper containing the key information.
data.planStringThe plan name for the current key. Can be null.
data.usageObjectUsage information for today.
data.usage.usedIntegerNumber of units used today.
data.usage.limitIntegerUsage limit for the current plan.
data.usage.resetsAtStringDate-time when the usage counter resets.
data.usage.remainingIntegerNumber of units remaining today.
data.statusStringThe key’s status. Can be null.
data.expiresAtStringDate-time when the key expires. Can be null.
data.keyPrefixStringThe 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).

ParameterTypeDescription
dataObjectWrapper object containing the endpoint response fields.
data.statusStringStatus value for the response.
data.trackedObjectObject containing tracked coverage counts.
data.tracked.tldsIntegerNumber of tracked TLDs.
data.tracked.pricesIntegerNumber of tracked prices.
data.tracked.registrarsIntegerNumber of tracked registrars.
data.tracked.activePromosIntegerNumber of tracked active promotions.
data.lastUpdatedStringLast update timestamp in date-time format, or null.
data.updateScheduleStringUpdate 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.

FieldTypeDescription
dataObjectAn object whose values are objects. The schema does not define the nested keys, so their shape is not documented here.
metaObjectAn 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.