Référence Développeur

Chercheur de Sous-domaines Documentation de l'API

Chercheur de Sous-domaines Documentation de l'API: Découvrez des sous-domaines avec les journaux Certificate Transparency (CT). Utilisez prefer_cache=1 pour interroger les résultats en cache: les échecs à froid renvoient HTTP 202, lancent une actualisation en arrière-plan et ne consomment aucun crédit.

Chercheur de Sous-domaines

Découvrez des sous-domaines avec les journaux Certificate Transparency (CT). Utilisez prefer_cache=1 pour interroger les résultats en cache: les échecs à froid renvoient HTTP 202, lancent une actualisation en arrière-plan et ne consomment aucun crédit.

GET /v1/subdomains

Paramètres de Requête

ParamètreTypeDescription
domain requis string Domaine racine pour lequel trouver les sous-domaines (par exemple, "github.com")
prefer_cache optionnel boolean Servir uniquement les résultats en cache. Si aucun cache frais ou périmé n’existe, l’API renvoie 202, lance une actualisation en arrière-plan et facture 0 crédit.
sources optionnel string Sources de données séparées par des virgules. Seul ct (Certificate Transparency) est actuellement accepté.
verify optionnel boolean Vérifier que chaque sous-domaine se résout via DNS (plus lent mais plus précis). Par défaut : false
limit optionnel number Nombre maximum de sous-domaines à retourner. Par défaut : 500, Max : 2000

Cas d'utilisation

  • Mappage de la surface d'attaque et audits de sécurité
  • Découvrir les sous-domaines IT oubliés ou ombragés
  • Diligence raisonnable technique pré-acquisition
  • Analyse concurrentielle de l'infrastructure
  • Reconnaissance de programme de bounty sur les bugs

Champs de Réponse

ChampDescription
subdomains[].nameLe nom d'hôte du sous-domaine découvert
subdomains[].sourceSource de données (par exemple, "ct")
subdomains[].first_seenQuand ce sous-domaine a été observé pour la première fois
subdomains[].verifiedSi la résolution DNS a été confirmée (si verify=true)
subdomains[].dns_recordsEnregistrements DNS trouvés (si verify=true)
summary.total_foundTotal des sous-domaines découverts avant la limite
summary.verified_countNombre de sous-domaines vérifiés (actifs)

Codes de Statut HTTP

Codes de Statut HTTPDescription
200 OKRequête réussie
202 AcceptéAbsence de cache de sous-domaines en mode cache uniquement acceptée pour une actualisation en arrière-plan. Aucun crédit n’est facturé; réessayez après le délai Retry-After.
400 Requête incorrecteParamètres invalides
402 Paiement requisCrédits insuffisants pour exécuter cette requête.
503 Service indisponibleLe service amont est indisponible ou limite temporairement les requêtes.
504 Délai d’attente de la passerelle dépasséLa requête amont a expiré.

Exemple de Requête

# 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}`));

Exemple de Réponse

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

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

Utilisé par les gens des meilleures entreprises

VercelLLM PulseOLXCasa ModernaPipeCal.comBeehiivSnykTogglRemoteSprigDeel