Developer Reference
Bulk Domain Check
DomScan API: Check availability for multiple domain names at once. Supports up to 50 domains per request.
Bulk Domain Check
Check availability for multiple domain names at once. Supports up to 50 domains per request.
POST
/v1/status/bulk
Request Body
| Field | Type | Description |
|---|---|---|
| domains required | string[] | Array of full domain names to check |
| options.prefer_cache optional | boolean | Use cached results when available |
Example Request
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"]
Response Fields
| Field | Type |
|---|---|
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 |
Example Response
{
"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
}
}

