开发者参考

批量域名检查

通过 DomScan API,一次检查多个域名的可用性。每个请求最多支持 50 个域名。

批量域名检查

一次检查多个域名的可用性。每个请求最多支持 50 个域名。

POST /v1/status/bulk

请求体

字段类型说明
domains 必需 string[] 要检查的完整域名数组
options.prefer_cache 可选 boolean 在可用时使用缓存结果

请求示例

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

响应字段

字段 类型
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

响应示例

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