Domain Research
The Domain Research API lets you programmatically retrieve algorithmic domain search results, and check domains for detailed availability.
Methods
The Domain Research API has two methods:
- Suggest, for retrieving domain search results
- Status, for checking domain availability, with two variants:
- Precise: for domain registry-level availability (e.g. for new registrations)
- Estimated: for DNS & aftermarket-level availability (which is not registry-level)
Request parameters must be URL-encoded UTF-8 strings in the query string.
API responses are in JSON (application/json). On success or failure, the server will respond with an appropriate HTTP response code (2XX, 4XX, 5XX).
Suggest method
The Suggest method performs a real-time query of the search terms against the known zone database, making recommendations, stemming, and applying Unicode folding, IDN normalization, registrar supported-zone restrictions, and other refinements.
The server responds with a JSON object containing search result(s), or an error.
IMPORTANT: Suggest method responses do not include domain availability status.
Status method
The Status method checks the availability status of a single domain name. It accepts one argument: domain
The response will contain an object with keys: domain, offers, scope, status, tags, and zone.
IMPORTANT: The scope and offers keys may not be present in all responses, i.e. if they aren't relevant for a given domain's status.
The status value is a space-delimited list of status types for the given domain, in increasing order of precedence.
To prevent resource exhaustion, our platform limits API requests to a total runtime of 30 seconds. If an upstream provider fails to respond within this limit, requests to the status method will return a best-effort value, typically unknown or undelegated.
The Status method contains two variants: Precise and Estimated, with Precise being the default. However, some use-cases don’t require full, domain registry-level "precise" availability checks, but rather only need information from the DNS or domain aftermarkets. An "estimated" status check will return this information, at a less-expensive per-request cost than a "precise" check.
Precise use case: aftermarket availability
If an offers key is present in the status response, it will contain an array of "offers" from domain aftermarket vendors like Afternic from GoDaddy, Atom, and Sedo. This data is provided by these aftermarket services, and is not guaranteed to be 100% accurate. It may contain currency, price, and vendor values, if these values are present in the data we receive from these aftermarket services.
Estimate use case: Availability for registration
The most common use-case of the Status method is to determine if a domain is immediately registrable via registrars or resellers (e.g. not via an aftermarket purchase and transfer).
For this use-case, the inactive status means a domain is available for registration.
If you see the unknown status, this means the Domain Research service was unable to determine an authoritative status from its upstream sources. This is commonly due to a domain registry backend operator being offline due to scheduled maintenance. The third-party OpenSRS service maintains an up-to-date log of scheduled registry maintenance.
Status response values
status values are returned in a space-delimited list, in increasing order of priority.
The right-most value can be considered the most important value. E.g. the status for acmecoffee.shop is undelegated inactive.
undelegatedmeans this domain isn't present in the DNSinactivemeans it’s available for registration
IMPORTANT: Some of the new top-level domain registries sell a subset of their domains as “premium,” with special "tiered" pricing (as opposed to a flat wholesale price). The Status method will return the premium value for these domains.
These are the status values that the method can return. Note that items marked with an asterisk (*) are only returned with Precise checks.
| Status | Example | Description |
|---|---|---|
unknown | foobar.llp | Unknown status, usually resulting from an error or misconfiguration. |
undelegated | hello.edu | The domain is not present in the DNS. |
inactive* | nonexistent.xyz | Available for new registration. |
pending* | heartb.eat | TLD not yet in the root zone file. |
disallowed | a.mobi | Disallowed by the registry, ICANN, or other (wrong script, etc.). |
claimed* | fedex.name | Claimed or reserved by some party (not available for new registration). |
reserved* | s.work | Explicitly reserved by ICANN, the registry, or another party. |
dpml* | Brand domains | Domains Protected Marks List, reserved for trademark holders. |
invalid | A domain longer than 64 characters | Technically invalid, e.g. too long or too short. |
active | vertical.coffee | Registered, but possibly available via the aftermarket. |
parked | wi.io | Active and parked, possibly available via the aftermarket. |
marketed | wi.io | Explicitly marketed as for sale via the aftermarket. |
expiring | An expiring domain | e.g. in the Redemption Grace Period, and possibly available via a backorder service. Not guaranteed to be present for all expiring domains. |
deleting | A expired domain pending removal from the registry | e.g. in the Pending Delete phase, and possibly available via a backorder service. Not guaranteed to be present for all deleting domains. |
priced | An aftermarket domain with an explicit price | e.g. via the BuyDomains service. |
transferable | An aftermarket domain available for fast-transfer | e.g. in the Afternic inventory. |
premium* | ace.pizza | Premium domain name for sale by the registry. |
suffix | blogspot.com | A public suffix according to publicsuffix.org. |
zone | co.uk | A zone (domain extension) in the Domainr database. |
tld | com | A top-level domain. |
Data objects
Offer object
An offer from a domain aftermarket vendor.
currency | string | The currency for the aftermarket offer. | |
price | string | The price for the domain from the aftermarket vendor. | |
vendor | string | The aftermarket vendor. |
Domain status object
All attributes for a domain status.
domain | string | The domain provided in the status request. | |
offers | array | ||
scope | string | The scope provided in the status request. | |
status | string | A space-delimited string of the varying statuses associated with the domain provided. | |
tags | string | A space-delimited string of the varying tags associated with the domain provided. | |
zone | string | The zone of the domain provided of the status request. |
Domain suggestion object
All attributes for a suggested domain.
domain | string | The suggested domain, consisting of a subdomain and zone. | |
path | string | If present, the path is to be appended to the domain to complete the suggestion. | |
subdomain | string | The subdomain of the suggested domain. | |
zone | string | The zone of the suggested domain. |