TLD Coverage API
Lists TLDs with RDAP mappings and representative endpoint health. This is not a complete list of TLDs that can be checked; some lookups use traditional WHOIS fallback. Use this reference to choose an operation and integrate its documented response contract.
Operations
GET /v1/coverage
GET
/v1/coverage
Credits: 0
Query parameters
| Parameter | Type | required |
|---|---|---|
| live |
string
Allowed values
1
|
optional |
Response fields
| Field | Type |
|---|---|
gtlds[] |
string[] |
cctlds[] |
string[] |
total_tlds |
integer |
all_tlds[] |
string[] |
rdap_health[] |
object[] |
rdap_health[] |
object |
rdap_health[].tld |
string |
rdap_health[].endpoint |
string |
rdap_health[].measurement_status |
string |
rdap_health[].ok |
boolean | null |
rdap_health[].p50_ms |
number | null |
rdap_health[].error_rate |
number | null |
bootstrap_source |
string |
bootstrap_last_updated |
string |
meta |
object |
meta.served_by |
string |
meta.bootstrap_ttl_s |
integer |
meta.live |
boolean |
Example request
curl "https://domscan.net/v1/coverage?live=1"const response = await fetch("https://domscan.net/v1/coverage?live=1");
const data = await response.json();
console.log(data);import requests
response = requests.get(
"https://domscan.net/v1/coverage?live=1",
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/coverage?live=1", nil)
if err != nil {
panic(err)
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status, string(data))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/coverage?live=1")
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))Example response
{
"gtlds": [
"example"
],
"cctlds": [
"example"
],
"total_tlds": 1,
"all_tlds": [
"com"
],
"rdap_health": [
{
"tld": "com",
"endpoint": "https://example.com",
"measurement_status": "single_probe",
"ok": true,
"p50_ms": 1.5,
"error_rate": 0
}
],
"bootstrap_source": "iana",
"bootstrap_last_updated": "2026-08-27T12:00:00Z",
"meta": {
"served_by": "example",
"bootstrap_ttl_s": 1,
"live": false
}
}
HTTP status codes
200OK429Too Many Requests