開発者向けリファレンス
DNS伝播 チェッカー APIドキュメント
DNS伝播 チェッカー APIドキュメント: 世界中の13のグローバルDNSサーバーにわたるDNSレコード伝播を確認します。DNS移行後のDNS変更の確認、DNSの問題のトラブルシューティング、またはTTLの有効期限の監視に不可欠です。サーバーは北米、ヨーロッパ、アジア太平洋、およびその他の地域にまたがり、包括的なカバレッジを提供します。
DNS伝播 チェッカー
世界中の13のグローバルDNSサーバーにわたるDNSレコード伝播を確認します。DNS移行後のDNS変更の確認、DNSの問題のトラブルシューティング、またはTTLの有効期限の監視に不可欠です。サーバーは北米、ヨーロッパ、アジア太平洋、およびその他の地域にまたがり、包括的なカバレッジを提供します。
GET
/v1/dns/propagation
クエリパラメータ
| パラメータ | タイプ | 説明 |
|---|---|---|
| domain 必須 | string | チェックするドメイン(例:"example.com" または "subdomain.example.com") |
| type オプション | string | レコード タイプ:A、AAAA、CNAME、MX、TXT、NS、SOA(デフォルト:A) |
| expected オプション | string | 伝播を検証する予想値(例:新しいIP アドレス) |
レスポンスフィールド
| フィールド | タイプ | 説明 |
|---|---|---|
propagation_percentage | number | 期待値を返すサーバーのパーセンテージ(0~100) |
fully_propagated | boolean | すべてのサーバーが一貫性のある値を返す場合は True |
consistent | boolean | すべての成功した応答が同じ値を持つ場合は True |
unique_values | array | サーバー全体で見られるすべての一意のレコード値 |
results | array | 位置、レコード、TTL、応答時間を含むサーバーごとの結果 |
リクエスト例
# Check A record propagation
curl "https://domscan.net/v1/dns/propagation?domain=example.com&type=A"
# Check MX record with expected value
curl "https://domscan.net/v1/dns/propagation?domain=example.com&type=MX&expected=mail.example.com"
const url = new URL("https://domscan.net/v1/dns/propagation");
url.searchParams.set("domain", "example.com");
url.searchParams.set("type", "A");
const response = await fetch(url);
const data = await response.json();
console.log(`Propagation: ${data.propagation_percentage}%`);
console.log(`Fully propagated: ${data.fully_propagated}`);
// Check which servers are still showing old values
data.results
.filter(r => !r.success || r.records[0] !== data.expected)
.forEach(r => console.log(`${r.server.name}: ${r.records}`));
import requests
response = requests.get(
"https://domscan.net/v1/dns/propagation",
params={"domain": "example.com", "type": "A"}
)
data = response.json()
print(f"Propagation: {data['propagation_percentage']}%")
print(f"Fully propagated: {data['fully_propagated']}")
# Show servers with different values
for result in data['results']:
print(f"{result['server']['name']}: {result['records']}")
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, _ := http.Get("https://domscan.net/v1/dns/propagation?domain=example.com&type=A")
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Printf("Propagation: %.0f%%\n", data["propagation_percentage"])
fmt.Printf("Fully propagated: %v\n", data["fully_propagated"])
}
require 'net/http'
require 'json'
uri = URI("https://domscan.net/v1/dns/propagation?domain=example.com&type=A")
response = Net::HTTP.get_response(uri)
data = JSON.parse(response.body)
puts "Propagation: #{data['propagation_percentage']}%"
puts "Fully propagated: #{data['fully_propagated']}"
レスポンス例
{
"domain": "example.com",
"record_type": "A",
"propagation_percentage": 100,
"fully_propagated": true,
"consistent": true,
"unique_values": ["93.184.216.34"],
"results": [
{
"server": {
"name": "Cloudflare",
"ip": "1.1.1.1",
"location": "Global Anycast"
},
"success": true,
"records": ["93.184.216.34"],
"ttl": 86400,
"response_time_ms": 12
},
{
"server": {
"name": "Google",
"ip": "8.8.8.8",
"location": "Global Anycast"
},
"success": true,
"records": ["93.184.216.34"],
"ttl": 86400,
"response_time_ms": 15
}
],
"summary": {
"total_servers": 13,
"successful": 13,
"failed": 0
}
}
GET
/v1/dns/servers
伝播チェックに使用される DNS サーバーのリストを取得します。すべての13のグローバル サーバーを位置情報とIP アドレス付きで返します。
レスポンス例
{
"servers": [
{"name": "Cloudflare", "ip": "1.1.1.1", "location": "Global Anycast"},
{"name": "Google", "ip": "8.8.8.8", "location": "Global Anycast"},
{"name": "Quad9", "ip": "9.9.9.9", "location": "Global Anycast"},
{"name": "OpenDNS", "ip": "208.67.222.222", "location": "US"},
{"name": "Comodo", "ip": "8.26.56.26", "location": "US"}
],
"total": 13
}
レスポンスフィールド
| フィールド | タイプ |
|---|---|
servers[] |
object[] |
servers[] |
object |
servers[].name |
string |
servers[].location |
string |
servers[].country |
string |
servers[].ip |
string |
servers[].provider |
string |
total |
integer |
GET
/v1/dns/history
クエリパラメータ
| パラメータ | タイプ | 必須 |
|---|---|---|
| domain | string | 必須 |
| type | string | オプション |
| from | string | オプション |
| to | string | オプション |
| limit | integer | オプション |
レスポンスフィールド
| フィールド | タイプ |
|---|---|
domain |
string |
history[] |
object[] |
history[] |
object |
history[].date |
string |
history[].record_type |
string |
history[].changes[] |
object[] |
history[].changes[] |
object |
history[].changes[].action |
string |
history[].changes[].value |
string |
current_records |
object |
first_seen |
string | null |
last_seen |
string | null |
total_changes |
integer |
record_types_tracked[] |
string[] |
beta_notice |
string |
meta |
object |
meta.note |
string |
meta.data_source |
string |
リクエスト例
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/dns/history?domain=example.com&type=A&from=2026-01-01&to=2026-04-15&limit=10"
レスポンス例
{
"domain": "example.com",
"history": [
{
"date": "2026-04-13",
"record_type": "A",
"changes": [
{
"action": "added",
"value": "104.20.23.154"
},
{
"action": "added",
"value": "172.66.147.243"
},
{
"action": "removed",
"value": "104.18.26.120"
}
]
}
],
"current_records": {
"A": [
"104.20.23.154",
"172.66.147.243"
]
},
"first_seen": "2026-01-01",
"last_seen": "2026-04-13",
"total_changes": 3,
"record_types_tracked": [
"A"
],
"beta_notice": "This endpoint is in beta. History data accumulates from API usage over time and does not include external historical sources.",
"meta": {
"note": "History data recorded from prior API lookups.",
"data_source": "internal"
}
}