Developer Reference
Domain Profile
Explore Domain Profile API documentation, request parameters, response fields, code examples, and error handling for DomScan integrations.
Domain Profile
Get normalized RDAP registration data including registrar, creation date, expiration, nameservers, DNSSEC status, and contact summary. Includes pre-calculated domain age and days until expiry for convenience.
GET
/v1/profile
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| domain required | string | Full domain name (e.g., github.com) |
Response Fields
| Field | Type | Description |
|---|---|---|
age_days | number | Domain age in days since registration |
days_until_expiry | number | Days until domain expires |
dnssec | boolean | Whether DNSSEC is enabled |
status | array | EPP status codes (clientDeleteProhibited, etc.) |
Example Request
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/profile?domain=github.com"
const domscanFetch = (url, options = {}) =>
fetch(url, {
...options,
headers: { ...options.headers, "X-API-Key": "your-api-key" },
});
const response = await domscanFetch(
"https://domscan.net/v1/profile?domain=github.com"
);
const data = await response.json();
console.log(`Domain age: ${data.age_days} days`);
console.log(`Expires in: ${data.days_until_expiry} days`);
console.log(`DNSSEC: ${data.dnssec ? 'Enabled' : 'Disabled'}`);
import requests
domscan = requests.Session()
domscan.headers.update({"X-API-Key": "your-api-key"})
response = domscan.get(
"https://domscan.net/v1/profile",
params={"domain": "github.com"}
)
data = response.json()
print(f"Domain age: {data['age_days']} days ({data['age_days'] // 365} years)")
print(f"Expires in: {data['days_until_expiry']} days")
Example Response
{
"domain": "github.com",
"registered": true,
"registrar": "MarkMonitor Inc.",
"registrar_url": "https://www.markmonitor.com",
"created_date": "2007-10-09T18:20:50Z",
"updated_date": "2024-09-08T09:19:27Z",
"expiry_date": "2026-10-09T07:00:00Z",
"age_days": 6310,
"days_until_expiry": 628,
"nameservers": ["dns1.p08.nsone.net", "dns2.p08.nsone.net"],
"dnssec": true,
"status": ["clientDeleteProhibited", "clientTransferProhibited"],
"contacts": {
"registrant_name": "GitHub, Inc.",
"registrant_org": "GitHub, Inc.",
"registrant_country": "US"
},
"privacy": {
"is_private": false,
"privacy_service": null
}
}
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"
}