Dokumentacja dla deweloperów
Profil domeny
Poznaj dokumentację API Profil domeny, parametry żądań, pola odpowiedzi, przykłady kodu i obsługę błędów w integracjach DomScan.
Profil domeny
Uzyskaj znormalizowane dane rejestracji RDAP, w tym rejestratora, datę utworzenia, wygaśnięcia, serwery nazw, status DNSSEC i podsumowanie kontaktów. Wygodnie zawiera także obliczony wiek domeny i dni do wygaśnięcia.
GET
/v1/profile
Parametry zapytania
| Parametr | Typ | Opis |
|---|---|---|
| domain wymagane | string | Pełna nazwa domeny, np. github.com |
Odpowiedź Fields
| Pole | Typ | Opis |
|---|---|---|
age_days | number | Wiek domeny w dniach od rejestracji |
days_until_expiry | number | Liczba dni do wygaśnięcia domeny |
dnssec | boolean | Czy DNSSEC jest włączony |
status | array | Kody statusu EPP, np. clientDeleteProhibited |
Przykład 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 Odpowiedź
{
"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
Parametry treści
| Parametr | Typ | wymagane |
|---|---|---|
| domains | string[] | wymagane |
Odpowiedź Fields
| Pole | Typ |
|---|---|
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 |
Przykład 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 Odpowiedź
{
"results": [
null
],
"meta": {
"total": 1,
"succeeded": 1,
"failed": 1,
"max_items": 10,
"credits_per_item": 1,
"duration_ms": 1
}
}
GET
/v1/overview
Parametry zapytania
| Parametr | Typ | wymagane |
|---|---|---|
| domain | string | wymagane |
Odpowiedź Fields
| Pole | Typ |
|---|---|
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 |
Przykład Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/overview?domain=example.com"
Example Odpowiedź
{
"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
Parametry zapytania
| Parametr | Typ | wymagane |
|---|---|---|
| domain | string | wymagane |
| include_history |
boolean
Domyślnie
false
|
opcjonalne |
| history_limit |
integer
Domyślnie
30
|
opcjonalne |
Odpowiedź Fields
| Pole | Typ |
|---|---|
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 |
Przykład 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 Odpowiedź
{
"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
Parametry zapytania
| Parametr | Typ | wymagane |
|---|---|---|
| domain | string | wymagane |
| limit |
integer
Domyślnie
30
|
opcjonalne |
Odpowiedź Fields
| Pole | Typ |
|---|---|
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 |
Przykład Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/popularity/history?domain=example.com&limit=25"
Example Odpowiedź
{
"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"
}
]
}