Справочник разработчика

Профиль домена

Изучите документацию API Профиль домена, параметры запросов, поля ответов, примеры кода и обработку ошибок для интеграций DomScan.

Профиль домена

Получите нормализованные данные регистрации RDAP, включающие регистратора, дату создания, дату истечения, серверы имен, статус DNSSEC и сводку контактов. Включает предварительно рассчитанный возраст домена и дни до истечения для удобства.

GET /v1/profile

Параметры запроса

ПараметрТипDescription
domain обязателен string Полное имя домена (например, github.com)

Поля ответа

ПолеТипDescription
age_daysnumberВозраст домена в днях с момента регистрации
days_until_expirynumberДни до истечения домена
dnssecbooleanВключен ли DNSSEC
statusarrayКоды статуса EPP (например, clientDeleteProhibited и другие)

Пример запроса

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

Пример ответа

{
  "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
  }
}
POST /v1/profile/bulk

Параметры тела запроса

Параметр Тип обязателен
domains string[] обязателен

Поля ответа

Поле Тип
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

Пример запроса

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

Пример ответа

{
  "results": [
    null
  ],
  "meta": {
    "total": 1,
    "succeeded": 1,
    "failed": 1,
    "max_items": 10,
    "credits_per_item": 1,
    "duration_ms": 1
  }
}
GET /v1/overview

Параметры запроса

Параметр Тип обязателен
domain string обязателен

Поля ответа

Поле Тип
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

Пример запроса

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/overview?domain=example.com"

Пример ответа

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

Параметры запроса

Параметр Тип обязателен
domain string обязателен
include_history boolean
По умолчанию false
опционально
history_limit integer
По умолчанию 30
опционально

Поля ответа

Поле Тип
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

Пример запроса

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/popularity?domain=example.com&include_history=example.com&history_limit=example.com"

Пример ответа

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

Параметры запроса

Параметр Тип обязателен
domain string обязателен
limit integer
По умолчанию 30
опционально

Поля ответа

Поле Тип
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

Пример запроса

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/popularity/history?domain=example.com&limit=25"

Пример ответа

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

Используется сотрудниками известных компаний

VercelLLM PulseOLXCasa ModernaPipeCal.comBeehiivSnykTogglRemoteSprigDeel