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

ParameterTypeDescription
domain required string Full domain name (e.g., github.com)

Response Fields

FieldTypeDescription
age_daysnumberDomain age in days since registration
days_until_expirynumberDays until domain expires
dnssecbooleanWhether DNSSEC is enabled
statusarrayEPP 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"
}