Entwickler-Referenz
Subdomain-Finder API-Dokumentation
Subdomain-Finder API-Dokumentation: Entdecke Subdomains über Certificate-Transparency-(CT)-Logs. Nutze prefer_cache=1, um gecachte Ergebnisse abzufragen: kalte Fehltreffer geben HTTP 202 zurück, starten eine Hintergrundaktualisierung und verbrauchen keine Credits.
Subdomain-Finder
Entdecke Subdomains über Certificate-Transparency-(CT)-Logs. Nutze prefer_cache=1, um gecachte Ergebnisse abzufragen: kalte Fehltreffer geben HTTP 202 zurück, starten eine Hintergrundaktualisierung und verbrauchen keine Credits.
GET
/v1/subdomains
Abfrageparameter
| Parameter | Typ | Beschreibung |
|---|---|---|
| domain erforderlich | string | Root-Domain zur Suche nach Subdomains (z. B. "github.com") |
| prefer_cache optional | boolean | Nur gecachte Ergebnisse ausliefern. Wenn kein frischer oder veralteter Cache vorhanden ist, gibt die API 202 zurück, startet eine Hintergrundaktualisierung und berechnet 0 Credits. |
| sources optional | string | Kommagetrennte Datenquellen. Derzeit wird nur ct (Certificate Transparency) akzeptiert. |
| verify optional | boolean | Überprüfen Sie, ob jede Subdomain sich über DNS auflöst (langsamer aber genauer). Standard: false |
| limit optional | number | Maximale Subdomains zum Zurückgeben. Standard: 500, Max: 2000 |
Anwendungsfälle
- Angriffsflächen-Mapping und Sicherheitsprüfungen
- Entdecken Sie vergessene oder Shadow-IT-Subdomains
- Technische Due-Diligence vor Übernahme
- Wettbewerbsanalyse der Infrastruktur
- Bug-Bounty-Aufklärung
Antwort-Felder
| Feld | Beschreibung |
|---|---|
subdomains[].name | Der entdeckte Subdomain-Hostname |
subdomains[].source | Datenquelle (z. B. "ct") |
subdomains[].first_seen | Wann diese Subdomain zuerst beobachtet wurde |
subdomains[].verified | Ob DNS-Auflösung bestätigt wurde (wenn verify=true) |
subdomains[].dns_records | Gefundene DNS-Einträge (wenn verify=true) |
summary.total_found | Insgesamt entdeckte Subdomains vor Limit |
summary.verified_count | Anzahl der überprüften (aktiven) Subdomains |
HTTP-Statuscodes
| HTTP-Statuscodes | Beschreibung |
|---|---|
200 OK | Anfrage erfolgreich |
202 Akzeptiert | Cache-only-Subdomain-Fehltreffer für eine Hintergrundaktualisierung akzeptiert. Es werden keine Credits berechnet; versuche es nach der Retry-After-Wartezeit erneut. |
400 Bad Request | Ungültige Parameter |
402 Zahlung erforderlich | Nicht genügend Credits für diese Anfrage. |
503 Dienst nicht verfügbar | Der Upstream-Dienst ist nicht verfügbar oder drosselt vorübergehend. |
504 Gateway-Zeitüberschreitung | Die Upstream-Abfrage hat das Zeitlimit überschritten. |
Beispielanfrage
# Find subdomains (fast, from CT logs)
curl "https://domscan.net/v1/subdomains?domain=github.com&limit=100"
# Find and verify subdomains (slower, confirms DNS resolution)
curl "https://domscan.net/v1/subdomains?domain=github.com&verify=true&limit=50"
curl "https://domscan.net/v1/subdomains?domain=github.com&prefer_cache=1"
import requests
# Enumerate subdomains with verification
response = requests.get(
"https://domscan.net/v1/subdomains",
params={
"domain": "github.com",
"verify": "true",
"limit": 100
}
)
data = response.json()
print(f"Found {data['summary']['total_found']} subdomains")
print(f"Verified: {data['summary']['verified_count']}")
# Filter to only live subdomains
live_subs = [s for s in data['subdomains'] if s['verified']]
for sub in live_subs[:10]:
print(f" {sub['name']}")
const response = await fetch(
'https://domscan.net/v1/subdomains?' + new URLSearchParams({
domain: 'github.com',
verify: 'true',
limit: '100'
})
);
const data = await response.json();
console.log(`Found ${data.summary.total_found} subdomains`);
console.log(`Verified: ${data.summary.verified_count}`);
// List verified subdomains
data.subdomains
.filter(s => s.verified)
.forEach(s => console.log(` ${s.name}`));
Beispielantwort
{
"domain": "github.com",
"subdomains": [
{
"name": "api.github.com",
"source": "ct",
"first_seen": "2024-01-15T00:00:00Z",
"verified": true,
"dns_records": ["A 140.82.112.5"]
},
{
"name": "gist.github.com",
"source": "ct",
"first_seen": "2024-02-01T00:00:00Z",
"verified": true,
"dns_records": ["CNAME github.github.io"]
},
{
"name": "education.github.com",
"source": "ct",
"first_seen": "2023-06-10T00:00:00Z",
"verified": true,
"dns_records": ["A 185.199.108.153"]
}
],
"summary": {
"total_found": 847,
"returned": 3,
"verified_count": 3,
"unverified_count": 0,
"sources_used": ["ct"]
},
"meta": {
"query_time_ms": 1250,
"cached": false
}
}
202 Akzeptiert
{
"status": "pending",
"code": "CACHE_MISS_REFRESH_QUEUED",
"message": "Try again in a moment",
"domain": "github.com",
"retry_after": 30,
"credits_charged": 0,
"billing_status": "not_charged",
"request_id": "m8abc12-x9y8"
}