Referencia para desarrolladores

Comprobación de Dominio en Lotes

API de DomScan: Comprueba disponibilidad para múltiples nombres de dominio de una vez. Soporta hasta 50 dominios por solicitud.

Comprobación de Dominio en Lotes

Comprueba disponibilidad para múltiples nombres de dominio de una vez. Soporta hasta 50 dominios por solicitud.

POST /v1/status/bulk

Cuerpo de la solicitud

CampoTipoDescripción
domains obligatorio string[] Array de nombres de dominio completos a comprobar
options.prefer_cache opcional boolean Utiliza resultados en caché cuando estén disponibles

Solicitud de ejemplo

curl -H "X-API-Key: your-api-key" -X POST "https://domscan.net/v1/status/bulk" \
-H "Content-Type: application/json" \
-d '{"domains": ["mybrand.com", "mybrand.io"], "options": {"prefer_cache": true}}'
const domscanFetch = (url, options = {}) =>
  fetch(url, {
    ...options,
    headers: { ...options.headers, "X-API-Key": "your-api-key" },
  });

const response = await domscanFetch("https://domscan.net/v1/status/bulk", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
domains: ["mybrand.com", "mybrand.io"],
options: { prefer_cache: true }
})
});
const data = await response.json();
console.log(data.results);
import requests

domscan = requests.Session()
domscan.headers.update({"X-API-Key": "your-api-key"})

payload = {
"domains": ["mybrand.com", "mybrand.io"],
"options": {"prefer_cache": True}
}
response = domscan.post(
"https://domscan.net/v1/status/bulk",
json=payload,
timeout=10
)
print(response.json()["results"])
package main

import (
  "bytes"
  "encoding/json"
  "fmt"
  "net/http"
  "io"
  "os"
)

func domscanPost(url, contentType string, body io.Reader) (*http.Response, error) {
  request, err := http.NewRequest(http.MethodPost, url, body)
  if err != nil {
    return nil, err
  }
  request.Header.Set("Content-Type", contentType)
  request.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
  return http.DefaultClient.Do(request)
}

func main() {
  payload := map[string]any{
    "domains": []string{"mybrand.com", "mybrand.io"},
    "options": map[string]bool{"prefer_cache": true},
  }
  body, _ := json.Marshal(payload)
  resp, err := domscanPost("https://domscan.net/v1/status/bulk", "application/json", bytes.NewReader(body))
  if err != nil {
    panic(err)
  }
  defer resp.Body.Close()
  fmt.Println(resp.Status)
}
require 'net/http'
require 'json'

uri = URI("https://domscan.net/v1/status/bulk")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
request["Content-Type"] = "application/json"
request.body = {
domains: ["mybrand.com", "mybrand.io"],
options: { prefer_cache: true }
}.to_json

response = http.request(request)
data = JSON.parse(response.body)
puts data["results"]

Campos de respuesta

Campo Tipo
results[] object[]
results[] object
results[].domain string
results[].tld string
results[].available boolean | null
results[].source string
results[].confidence string
results[].checked_at string
results[].latency_ms integer
results[].error string
confidence_summary object
confidence_summary.scope string
confidence_summary.requested_count integer
confidence_summary.result_count integer
confidence_summary.invalid_count integer
confidence_summary.available_count integer
confidence_summary.registered_count integer
confidence_summary.authoritative_count integer
confidence_summary.heuristic_count integer
confidence_summary.cached_count integer
confidence_summary.error_count integer
confidence_summary.ambiguous_count integer
confidence_summary.source_counts object
confidence_summary.primary_source string | null
confidence_summary.cache_status string
confidence_summary.rdap_calls integer
confidence_summary.refreshes integer
confidence_summary.cache_preference_misses integer
confidence_summary.fallback_chain[] string[]
confidence_summary.confidence_level string
confidence_summary.determinacy_rate number
confidence_summary.ambiguity_reason string | null
meta object
meta.total_checked integer
meta.available_count integer
meta.duration_ms integer

Respuesta de ejemplo

{
  "results": [
    {
      "domain": "example.com",
      "tld": "com",
      "available": false,
      "source": "rdap",
      "latency_ms": 45
    },
    {
      "domain": "startup.io",
      "tld": "io",
      "available": true,
      "source": "rdap",
      "latency_ms": 67
    },
    {
      "domain": "brand.ai",
      "tld": "ai",
      "available": true,
      "source": "cache",
      "latency_ms": 2
    }
  ],
  "meta": {
    "total_checked": 3,
    "available_count": 2,
    "duration_ms": 120
  }
}