Riferimento per sviluppatori

Controllo Propagazione DNS Documentazione API

Controllo Propagazione DNS Documentazione API: Verifica la propagazione dei record DNS su 13 server DNS globali in tutto il mondo. Essenziale per verificare i cambiamenti DNS dopo le migrazioni, risolvere problemi DNS o monitorare la scadenza TTL. I server si estendono su Nord America, Europa, Asia-Pacifico e altre regioni per una copertura completa.

Controllo Propagazione DNS

Verifica la propagazione dei record DNS su 13 server DNS globali in tutto il mondo. Essenziale per verificare i cambiamenti DNS dopo le migrazioni, risolvere problemi DNS o monitorare la scadenza TTL. I server si estendono su Nord America, Europa, Asia-Pacifico e altre regioni per una copertura completa.

GET /v1/dns/propagation

Parametri di query

ParametroTipoDescrizione
domain obbligatorio string Dominio da verificare (ad es., "example.com" o "subdomain.example.com")
type facoltativo string Tipo di record: A, AAAA, CNAME, MX, TXT, NS, SOA (default: A)
expected facoltativo string Valore previsto per verificare la propagazione (ad es., nuovo indirizzo IP)

Campi di risposta

CampoTipoDescrizione
propagation_percentagenumberPercentuale di server che restituiscono il valore previsto (0-100)
fully_propagatedbooleanTrue se tutti i server restituiscono valori coerenti
consistentbooleanTrue se tutte le risposte riuscite hanno lo stesso valore
unique_valuesarrayTutti i valori di record univoci visti su tutti i server
resultsarrayRisultati per server con posizione, record, TTL, tempo di risposta

Richiesta di esempio

# 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']}"

Risposta di esempio

{
  "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

Ottieni l'elenco dei server DNS utilizzati per i controlli di propagazione. Restituisce tutti i 13 server globali con le loro posizioni e indirizzi IP.

Risposta di esempio

{
  "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
}

Campi di risposta

Campo Tipo
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

Parametri di query

Parametro Tipo obbligatorio
domain string obbligatorio
type string facoltativo
from string facoltativo
to string facoltativo
limit integer facoltativo

Campi di risposta

Campo Tipo
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

Richiesta di esempio

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"

Risposta di esempio

{
  "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"
  }
}

Utilizzato da persone di aziende straordinarie

VercelLLM PulseOLXCasa ModernaPipeCal.comBeehiivSnykTogglRemoteSprigDeel