Domain Profile API
Get a comprehensive profile of a domain including WHOIS, DNS, and hosting information. Use this reference to choose an operation and integrate its documented response contract.
Operations
GET /v1/profile
GET
/v1/profile
Query Parameters
| Parameter | Type | required |
|---|---|---|
| domain | string | required |
Response Fields
| Field | Type |
|---|---|
domain |
string |
registered |
boolean | null |
registrar |
string | null |
registrar_url |
string | null |
registrar_iana_id |
string | null |
created_date |
string | null |
updated_date |
string | null |
expiry_date |
string | null |
age_days |
integer |
days_until_expiry |
integer |
nameservers[] |
string[] |
status[] |
string[] |
dnssec |
boolean |
events[] |
object[] |
events[] |
object |
events[].action |
string |
events[].date |
string |
contacts |
object |
contacts.registrant_name |
string | null |
contacts.registrant_org |
string | null |
contacts.registrant_country |
string | null |
contacts.admin_email |
string | null |
contacts.tech_email |
string | null |
privacy |
object |
privacy.is_private |
boolean |
privacy.privacy_service |
string | null |
raw_rdap_link |
string | null |
source_summary |
object |
source_summary.source |
string |
source_summary.authoritative_source |
string |
source_summary.cache_status |
string |
source_summary.fallback_used |
boolean |
source_summary.relay_configured |
boolean |
source_summary.registered |
boolean | null |
source_summary.status_count |
integer |
source_summary.nameserver_count |
integer |
source_summary.event_count |
integer |
source_summary.date_fields_present[] |
string[] |
source_summary.contact_field_count |
integer |
source_summary.privacy_detected |
boolean |
checked_at |
string |
query_time_ms |
integer |
meta |
object |
Example Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/profile?domain=example.com"
Example Response
{
"domain": "example.com",
"registered": true,
"registrar": "string",
"registrar_url": "https://example.com",
"registrar_iana_id": "string",
"created_date": "2026-04-15T12:00:00Z",
"updated_date": "2026-04-15T12:00:00Z",
"expiry_date": "2026-04-15T12:00:00Z",
"age_days": 1,
"days_until_expiry": 1,
"nameservers": [
"string"
],
"status": [
"string"
],
"dnssec": true,
"events": [
{
"action": "string",
"date": "2026-04-15T12:00:00Z"
}
],
"contacts": {
"registrant_name": "string",
"registrant_org": "string",
"registrant_country": "string",
"admin_email": "[email protected]",
"tech_email": "[email protected]"
},
"privacy": {
"is_private": true,
"privacy_service": "string"
},
"raw_rdap_link": "string",
"source_summary": {
"source": "rdap",
"authoritative_source": "rdap",
"cache_status": "hit",
"fallback_used": true,
"relay_configured": true,
"registered": true,
"status_count": 1,
"nameserver_count": 1,
"event_count": 1,
"date_fields_present": [
"2026-04-15"
],
"contact_field_count": 1,
"privacy_detected": true
},
"checked_at": "2026-04-15T12:00:00Z",
"query_time_ms": "2026-04-15T12:00:00Z",
"meta": {}
}
POST /v1/profile/bulk
POST
/v1/profile/bulk
Body Parameters
| Parameter | Type | required |
|---|---|---|
| domains | string[] | required |
Response Fields
| Field | Type |
|---|---|
results[] |
unknown[] |
meta |
object |
meta.total |
integer |
meta.succeeded |
integer |
meta.failed |
integer |
meta.max_items |
integer |
meta.credits_per_item |
integer |
meta.duration_ms |
integer |
Example Request
curl -X POST "https://domscan.net/v1/profile/bulk" \
-H "Content-Type: application/json" \
-H "X-API-Key: $DOMSCAN_API_KEY" \
-d '{
"domains": [
"example.com",
"cloudflare.com"
]
}'
Example Response
{
"results": [
null
],
"meta": {
"total": 1,
"succeeded": 1,
"failed": 1,
"max_items": 10,
"credits_per_item": 1,
"duration_ms": 1
}
}
GET /v1/overview
GET
/v1/overview
Query Parameters
| Parameter | Type | required |
|---|---|---|
| domain | string | required |
Response Fields
| Field | Type |
|---|---|
domain |
string |
health |
object |
health.dns_ok |
boolean | null |
health.https_ok |
boolean | null |
dns |
object |
dns.has_a |
boolean | null |
dns.has_aaaa |
boolean | null |
dns.has_mx |
boolean | null |
dns.nameservers[] |
string[] |
registration |
object |
registration.registered |
boolean | null |
registration.registrar |
string | null |
registration.created_date |
string | null |
registration.expiry_date |
string | null |
registration.age_days |
integer | null |
registration.days_until_expiry |
integer | null |
registration.dnssec |
boolean | null |
reputation |
object |
reputation.score |
number | null |
reputation.grade |
string | null |
popularity |
object |
popularity.rank |
integer | null |
popularity.bucket |
string | null |
component_freshness |
object |
component_freshness.cache_status |
string |
component_freshness.checked_at |
string |
component_freshness.component_count |
integer |
component_freshness.fresh_component_count |
integer |
component_freshness.degraded_component_count |
integer |
component_freshness.components |
object |
component_freshness.components.health |
object |
component_freshness.components.health.source |
string |
component_freshness.components.health.state |
string |
component_freshness.components.health.checked_at |
string |
component_freshness.components.health.evidence_count |
integer |
component_freshness.components.health.reason |
string | null |
component_freshness.components.dns |
object |
component_freshness.components.dns.source |
string |
component_freshness.components.dns.state |
string |
component_freshness.components.dns.checked_at |
string |
component_freshness.components.dns.evidence_count |
integer |
component_freshness.components.dns.reason |
string | null |
component_freshness.components.registration |
object |
component_freshness.components.registration.source |
string |
component_freshness.components.registration.state |
string |
component_freshness.components.registration.checked_at |
string |
component_freshness.components.registration.evidence_count |
integer |
component_freshness.components.registration.reason |
string | null |
component_freshness.components.reputation |
object |
component_freshness.components.reputation.source |
string |
component_freshness.components.reputation.state |
string |
component_freshness.components.reputation.checked_at |
string |
component_freshness.components.reputation.evidence_count |
integer |
component_freshness.components.reputation.reason |
string | null |
component_freshness.components.popularity |
object |
component_freshness.components.popularity.source |
string |
component_freshness.components.popularity.state |
string |
component_freshness.components.popularity.checked_at |
string |
component_freshness.components.popularity.evidence_count |
integer |
component_freshness.components.popularity.reason |
string | null |
query_time_ms |
integer |
checked_at |
string |
Example Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/overview?domain=example.com"
Example Response
{
"domain": "example.com",
"health": {
"dns_ok": true,
"https_ok": true
},
"dns": {
"has_a": true,
"has_aaaa": true,
"has_mx": true,
"nameservers": [
"string"
]
},
"registration": {
"registered": true,
"registrar": "string",
"created_date": "2026-04-15",
"expiry_date": "2026-04-15",
"age_days": 1,
"days_until_expiry": 1,
"dnssec": true
},
"reputation": {
"score": 1,
"grade": "string"
},
"popularity": {
"rank": 1,
"bucket": "string"
},
"component_freshness": {
"cache_status": "hit",
"checked_at": "2026-04-15T12:00:00Z",
"component_count": 1,
"fresh_component_count": 1,
"degraded_component_count": 1,
"components": {
"health": {
"source": "string",
"state": "fresh",
"checked_at": "2026-04-15T12:00:00Z",
"evidence_count": 1,
"reason": "upstream_unavailable"
},
"dns": {
"source": "string",
"state": "fresh",
"checked_at": "2026-04-15T12:00:00Z",
"evidence_count": 1,
"reason": "upstream_unavailable"
},
"registration": {
"source": "string",
"state": "fresh",
"checked_at": "2026-04-15T12:00:00Z",
"evidence_count": 1,
"reason": "upstream_unavailable"
},
"reputation": {
"source": "string",
"state": "fresh",
"checked_at": "2026-04-15T12:00:00Z",
"evidence_count": 1,
"reason": "upstream_unavailable"
},
"popularity": {
"source": "string",
"state": "fresh",
"checked_at": "2026-04-15T12:00:00Z",
"evidence_count": 1,
"reason": "upstream_unavailable"
}
}
},
"query_time_ms": "2026-04-15T12:00:00Z",
"checked_at": "2026-04-15T12:00:00Z"
}
GET /v1/popularity
GET
/v1/popularity
Query Parameters
| Parameter | Type | required |
|---|---|---|
| domain | string | required |
| include_history |
boolean
Default
false
|
optional |
| history_limit |
integer
Default
30
|
optional |
Response Fields
| Field | Type |
|---|---|
domain |
string |
status |
string |
rank |
integer | null |
bucket |
string |
source |
object |
source.id |
string |
source.url |
string |
source.list_date |
string | null |
source.provenance |
object |
source.provenance.owner |
string |
source.provenance.source_url |
string |
source.provenance.methodology_url |
string |
source.provenance.access_method |
string |
source.provenance.cost |
string |
source.provenance.runtime_rate_limits |
string |
source.provenance.terms_status |
string |
source.provenance.expected_freshness |
string |
source.provenance.maintenance_risk |
string |
source.provenance.fallback_behavior |
string |
source.provenance.last_verified |
string |
freshness |
object |
freshness.cache_status |
string |
freshness.ttl_seconds |
integer |
checked_at |
string |
result_count |
integer | null |
empty_result |
boolean |
history |
object |
history.collection |
string |
history.complete_daily_series |
boolean |
history.available |
boolean |
history.observations[] |
object[] |
history.observations[] |
object |
history.observations[].domain |
string |
history.observations[].rank |
integer | null |
history.observations[].bucket |
string |
history.observations[].status |
string |
history.observations[].source |
string |
history.observations[].list_date |
string | null |
history.observations[].observed_on |
string |
history.observations[].checked_at |
string |
Example Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/popularity?domain=example.com&include_history=example.com&history_limit=example.com"
Example Response
{
"domain": "example.com",
"status": "ranked",
"rank": 1,
"bucket": "top-100",
"source": {
"id": "tranco",
"url": "https://example.com",
"list_date": "2026-04-15",
"provenance": {
"owner": "string",
"source_url": "https://example.com",
"methodology_url": "https://example.com",
"access_method": "public_domain_rank_api",
"cost": "none",
"runtime_rate_limits": "2026-04-15T12:00:00Z",
"terms_status": "string",
"expected_freshness": "daily",
"maintenance_risk": "medium",
"fallback_behavior": "string",
"last_verified": "2026-04-15"
}
},
"freshness": {
"cache_status": "hit",
"ttl_seconds": 300
},
"checked_at": "2026-04-15T12:00:00Z",
"result_count": 0,
"empty_result": true,
"history": {
"collection": "lookup_driven",
"complete_daily_series": false,
"available": true,
"observations": [
{
"domain": "example.com",
"rank": 1,
"bucket": "top-100",
"status": "ranked",
"source": "tranco",
"list_date": "2026-04-15",
"observed_on": "2026-04-15",
"checked_at": "2026-04-15T12:00:00Z"
}
]
}
}
GET /v1/popularity/history
GET
/v1/popularity/history
Query Parameters
| Parameter | Type | required |
|---|---|---|
| domain | string | required |
| limit |
integer
Default
30
|
optional |
Response Fields
| Field | Type |
|---|---|
domain |
string |
collection |
string |
complete_daily_series |
boolean |
result_count |
integer |
empty_result |
boolean |
observations[] |
object[] |
observations[] |
object |
observations[].domain |
string |
observations[].rank |
integer | null |
observations[].bucket |
string |
observations[].status |
string |
observations[].source |
string |
observations[].list_date |
string | null |
observations[].observed_on |
string |
observations[].checked_at |
string |
Example Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/popularity/history?domain=example.com&limit=25"
Example Response
{
"domain": "example.com",
"collection": "lookup_driven",
"complete_daily_series": false,
"result_count": 1,
"empty_result": true,
"observations": [
{
"domain": "example.com",
"rank": 1,
"bucket": "top-100",
"status": "ranked",
"source": "tranco",
"list_date": "2026-04-15",
"observed_on": "2026-04-15",
"checked_at": "2026-04-15T12:00:00Z"
}
]
}