Referencia para desarrolladores
Historial de DNS
API de DomScan: Consulta valores DNS, con precisión de día, observados en consultas anteriores de DomScan que se completaron correctamente.
Historial de DNS
Consulta valores DNS, con precisión de día, observados en consultas anteriores de DomScan que se completaron correctamente. Esta cobertura beta no es un archivo de DNS pasivo de todo Internet.
GET
/v1/dns/history
Créditos: 3
Parámetros de consulta
| Parámetro | Tipo | obligatorio |
|---|---|---|
| domain | string | obligatorio |
| type | string | opcional |
| from | string | opcional |
| to | string | opcional |
| limit |
integer
Predeterminado
100
|
opcional |
| cursor | string | opcional |
Campos de respuesta
| Campo | Tipo |
|---|---|
has_more |
boolean |
next_cursor |
string | null |
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 |
history[].changes[].ttl |
integer | null |
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 |
meta.history_limit |
integer |
meta.history_rows_evaluated |
integer |
meta.history_rows_truncated |
boolean |
meta.removal_confirmation_days |
integer |
meta.current_records_scope |
string |
Solicitud de ejemplo
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"const response = await fetch("https://domscan.net/v1/dns/history?domain=example.com&type=A&from=2026-01-01&to=2026-04-15&limit=10", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/dns/history?domain=example.com&type=A&from=2026-01-01&to=2026-04-15&limit=10",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/dns/history?domain=example.com&type=A&from=2026-01-01&to=2026-04-15&limit=10", nil)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
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/dns/history?domain=example.com&type=A&from=2026-01-01&to=2026-04-15&limit=10")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
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))Respuesta de ejemplo
{
"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": "Beta observation log. Coverage comes only from successful DomScan DNS lookups. Dates are day-level, changes between lookups can be missed, and no external passive DNS sources are included.",
"meta": {
"note": "Lookup-driven DomScan observations only. Dates are day-level, gaps can miss changes, and no external passive DNS sources are included.",
"data_source": "internal",
"history_limit": 100,
"history_rows_evaluated": 3,
"history_rows_truncated": false,
"removal_confirmation_days": 2,
"current_records_scope": "all_stored_current_records"
}
}
Códigos de estado HTTP
200OK400Solicitud incorrecta401No autorizado402Pago requerido429Demasiadas solicitudes