Référence Développeur

Réputation du Domaine

Consultez la documentation de l'API Réputation du Domaine, ses paramètres de requête, les champs de réponse, les exemples de code et la gestion des erreurs pour les intégrations DomScan.

Réputation du Domaine

Obtenez un score de réputation global (0-100) pour n'importe quel domaine basé sur plusieurs signaux de sécurité et de confiance. L'API vérifie la configuration de sécurité DNS, les certificats SSL, les listes noires (Spamhaus, SURBL), le renseignement sur les menaces (URLhaus), l'authentification de courrier électronique et la présence Web pour calculer un score pondéré avec des recommandations exploitables.

GET /v1/reputation

Paramètres de Requête

Paramètre Type requis
domain string requis

Champs de Réponse

Champ Type
domain string
reputation_score integer
grade string
risk_level string
reputation_score_confidence string
grade_capped_by_parking boolean
factors object
factors.age object
factors.dns_security object
factors.ssl_certificate object
factors.hosting object
factors.web_presence object
factors.blacklists object
factors.email_config object
recommendations[] object[]
recommendations[] object
recommendations[].priority string
recommendations[].category string
recommendations[].action string
recommendations[].impact string
evidence_summary object
evidence_summary.checks_performed integer
evidence_summary.cache_status string
evidence_summary.confidence string
evidence_summary.risk_level string
evidence_summary.factor_count integer
evidence_summary.scored_factor_count integer
evidence_summary.passing_factor_count integer
evidence_summary.warning_factor_count integer
evidence_summary.failing_factor_count integer
evidence_summary.lowest_scoring_factors[] object[]
evidence_summary.lowest_scoring_factors[] object
evidence_summary.lowest_scoring_factors[].name string
evidence_summary.lowest_scoring_factors[].score number | null
evidence_summary.lowest_scoring_factors[].weight number | null
evidence_summary.blacklist_listed_count integer
evidence_summary.recommendation_count integer
evidence_summary.high_priority_recommendation_count integer
evidence_summary.grade_capped_by_parking boolean
meta object
meta.query_time_ms integer
meta.checks_performed integer
meta.cached boolean
meta.served_by string
meta.worker_version string

Exemple de Requête

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

Exemple de Réponse

{
  "domain": "example.com",
  "reputation_score": 76,
  "grade": "C",
  "risk_level": "medium",
  "reputation_score_confidence": "high",
  "grade_capped_by_parking": true,
  "factors": {
    "age": {
      "score": 84,
      "weight": 0.1,
      "details": {
        "age_days": 5840
      }
    },
    "dns_security": {
      "score": 80,
      "weight": 0.2,
      "details": {
        "dnssec": false,
        "spf": true,
        "dmarc": true,
        "dmarc_policy": "reject"
      }
    },
    "ssl_certificate": {
      "score": 92,
      "weight": 0.2,
      "details": {
        "valid": true,
        "error": null,
        "grade": "A",
        "chain_valid": true,
        "min_tls_version": "TLSv1.3"
      }
    },
    "hosting": {
      "score": 35,
      "weight": 0.1,
      "details": {
        "has_a_records": true,
        "a_record_count": 2,
        "parked": true
      }
    },
    "web_presence": {
      "score": 20,
      "weight": 0.15,
      "details": {
        "has_website": true,
        "redirects_to_https": true,
        "response_time_ms": 87,
        "parked": true,
        "for_sale": false,
        "parking_provider": "Example Parking"
      }
    },
    "blacklists": {
      "score": 100,
      "weight": 0.1,
      "details": {
        "listed": false,
        "threat_level": "none",
        "domain_sources": [],
        "ip_sources": []
      }
    },
    "email_config": {
      "score": 100,
      "weight": 0.15,
      "details": {
        "has_mx": true,
        "has_spf": true,
        "has_dmarc": true,
        "mx_count": 2
      }
    }
  },
  "recommendations": [
    {
      "priority": "high",
      "category": "web_presence",
      "action": "Move the domain off parking if it is intended for customer traffic.",
      "impact": "+10 points"
    }
  ],
  "meta": {
    "query_time_ms": 187,
    "checks_performed": 7,
    "cached": false,
    "served_by": "pop=MAD country=ES",
    "worker_version": "2.14.0"
  }
}
POST /v1/reputation/bulk

Corps de la requête

ChampTypeDescription
domains requis string[] Tableau de noms de domaines complets à vérifier

Utilisez POST /v1/reputation/bulk pour noter plusieurs domaines en une seule requête. Envoyez un corps JSON avec un tableau domains. Prend en charge jusqu'à 3 domaines par requête car chaque analyse déclenche plusieurs contrôles de sécurité.

Exemple de Requête

curl -H "X-API-Key: your-api-key" -X POST "https://domscan.net/v1/reputation/bulk"   -H "Content-Type: application/json"   -d '{
    "domains": ["stripe.com", "cloudflare.com", "example.com"]
  }'

Exemple de Réponse

{
  "results": [
    {
      "domain": "stripe.com",
      "reputation_score": 92,
      "grade": "A+",
      "risk_level": "low",
      "factors": {
        "dns_security": { "score": 100, "weight": 0.2 },
        "ssl_certificate": { "score": 100, "weight": 0.2 }
      },
      "recommendations": [],
      "meta": {
        "query_time_ms": 1250,
        "checks_performed": 7,
        "cached": false
      }
    },
    {
      "domain": "not a domain",
      "error": {
        "code": "INVALID_DOMAIN",
        "message": "Invalid domain format"
      }
    }
  ],
  "summary": {
    "total": 2,
    "successful": 1,
    "failed": 1,
    "cached": 0,
    "query_time_ms": 1310
  },
  "meta": {
    "served_by": "pop=MAD country=ES",
    "worker_version": "2.14.0"
  }
}

Champs de Réponse

Champ Type
results[] object[]
results[] object
results[].domain string
results[].reputation_score integer
results[].grade string
results[].risk_level string
results[].reputation_score_confidence string
results[].grade_capped_by_parking boolean
results[].factors object
results[].evidence_summary object
results[].evidence_summary.checks_performed integer
results[].evidence_summary.cache_status string
results[].evidence_summary.confidence string
results[].evidence_summary.risk_level string
results[].evidence_summary.factor_count integer
results[].evidence_summary.scored_factor_count integer
results[].evidence_summary.passing_factor_count integer
results[].evidence_summary.warning_factor_count integer
results[].evidence_summary.failing_factor_count integer
results[].evidence_summary.lowest_scoring_factors[] object[]
results[].evidence_summary.lowest_scoring_factors[] object
results[].evidence_summary.lowest_scoring_factors[].name string
results[].evidence_summary.lowest_scoring_factors[].score number | null
results[].evidence_summary.lowest_scoring_factors[].weight number | null
results[].evidence_summary.blacklist_listed_count integer
results[].evidence_summary.recommendation_count integer
results[].evidence_summary.high_priority_recommendation_count integer
results[].evidence_summary.grade_capped_by_parking boolean
results[].recommendations[] object[]
results[].recommendations[] object
results[].meta object
results[].error object
results[].error.code string
results[].error.message string
summary object
summary.total integer
summary.successful integer
summary.failed integer
summary.cached integer
summary.query_time_ms integer
meta object
meta.served_by string
meta.worker_version string