Referência para desenvolvedores

Histórico de DNS

API da DomScan: Consulte valores DNS, com precisão diária, observados em consultas anteriores bem-sucedidas do DomScan.

Histórico de DNS

Consulte valores DNS, com precisão diária, observados em consultas anteriores bem-sucedidas do DomScan. Esta cobertura beta não é um arquivo de DNS passivo de toda a Internet.

GET /v1/dns/history Créditos: 3

Parâmetros de consulta

Parâmetro Tipo obrigatório
domain string obrigatório
type string opcional
from string opcional
to string opcional
limit integer
Padrão 100
opcional
cursor string opcional

Campos da resposta

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

Exemplo de requisição

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))

Exemplo de resposta

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

  • 200 OK
  • 400 Pedido inválido
  • 401 Não autorizado
  • 402 Pagamento necessário
  • 429 Demasiados pedidos