Référence développeur
Historique DNS
API DomScan : Consultez les valeurs DNS observées, au jour près, lors de précédentes requêtes DomScan réussies.
Historique DNS
Consultez les valeurs DNS observées, au jour près, lors de précédentes requêtes DomScan réussies. Cette couverture bêta n’est pas une archive DNS passive à l’échelle d’Internet.
GET
/v1/dns/history
Crédits: 3
Paramètres de requête
| Paramètre | Type | requis |
|---|---|---|
| domain | string | requis |
| type | string | optionnel |
| from | string | optionnel |
| to | string | optionnel |
| limit |
integer
Défaut
100
|
optionnel |
| cursor | string | optionnel |
Champs de réponse
| Champ | Type |
|---|---|
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 |
Exemple de requête
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))Exemple de réponse
{
"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"
}
}
Codes de statut HTTP
200OK400Requête incorrecte401Non autorisé402Paiement requis429Trop de requêtes