Sécurité et confiance · Produit DomScan

API Analyseur de vulnérabilités de sites web

Détectez les logiciels exposés, les configurations risquées et les versions connues comme affectées sur un site web public. Chaque résultat précise les contrôles effectués, la raison de la correspondance et la solidité des preuves.

Ce que vous obtenez

Détectez les logiciels exposés, les configurations risquées et les versions connues comme affectées sur un site web public. Chaque résultat précise les contrôles effectués, la raison de la correspondance et la solidité des preuves.

SynchroneRESTMCPSDKOutil interactif

Choisissez ce produit lorsque

À qui s’adresse ce produit

Utilisez des contrôles passifs encadrés pour enrichir le triage et l’étude, et non pour remplacer les tests autorisés ou l’examen humain.

Choisissez ce produit lorsque

À choisir pour obtenir des éléments passifs sur les versions exposées et les configurations. Le produit n’exploite pas la cible et ne prouve pas qu’un site est exempt de vulnérabilités.

Ce que vous obtenez

Détectez les logiciels exposés, les configurations risquées et les versions connues comme affectées sur un site web public. Chaque résultat précise les contrôles effectués, la raison de la correspondance et la solidité des preuves.

Endpoints

Examinez les opérations, entrées, sorties, modes d’exécution et limites de réponse pris en charge avant l’intégration.

GET /v1/vulnerabilities Voir la référence API

Crédits et authentification

8-12 Authentification requise. Consultez la référence de l’opération pour connaître le coût exact et les éventuels tarifs par élément.

Opération exemple

Utilisez des opérations documentées pour collecter, évaluer, enrichir, vérifier, comparer, protéger ou surveiller des preuves publiques.

GET /v1/vulnerabilities Crédits: 8-12

Paramètres de requête

Paramètre Type requis
url string optionnel
domain string optionnel
mode string
Valeurs autorisées standarddeep
Défaut standard
optionnel

Champs de réponse

Champ Type
target object
target.requested_url string
target.final_url string
target.hostname string
scan object
scan.mode string
scan.status string
scan.checked_at string
scan.duration_ms integer
scan.disclaimer string
summary object
summary.posture string
summary.risk_level string
summary.finding_count integer
summary.version_affected_count integer
summary.misconfiguration_count integer
summary.urgent_count integer
summary.severity_counts object
findings[] object[]
findings[] object
findings[].fingerprint string
findings[].classification string
findings[].severity string
findings[].priority string
findings[].title string
findings[].summary string
findings[].component object
findings[].component.technology_id string
findings[].component.name string
findings[].component.detected_version string
findings[].component.version_kind string
findings[].component.confidence string
findings[].component.confidence_score integer
findings[].component.ecosystem string
findings[].component.package string
findings[].component.purl string
findings[].advisory object
findings[].advisory.id string
findings[].advisory.aliases[] string[]
findings[].advisory.cves[] string[]
findings[].advisory.published_at string | null
findings[].advisory.modified_at string | null
findings[].advisory.cvss[] object[]
findings[].advisory.cvss[] object
findings[].advisory.cvss[].type string
findings[].advisory.cvss[].vector string
findings[].advisory.fixed_versions[] string[]
findings[].advisory.affected_ranges[] object[]
findings[].advisory.affected_ranges[] object
findings[].advisory.references[] string[]
findings[].exploitation object
findings[].exploitation.cisa_kev boolean | null
findings[].exploitation.kev_added_at string | null
findings[].exploitation.kev_required_action string | null
findings[].exploitation.known_ransomware_use string | null
findings[].exploitation.epss_probability number | null
findings[].exploitation.epss_percentile number | null
findings[].exploitation.epss_date string | null
findings[].evidence object
findings[].evidence.confidence string
findings[].evidence.observed[] string[]
findings[].evidence.limitations[] string[]
findings[].remediation object
findings[].remediation.summary string
findings[].remediation.fixed_versions[] string[]
findings[].sources[] string[]
components[] object[]
components[] object
components[].technology_id string
components[].name string
components[].detected_version string | null
components[].version_kind string | null
components[].confidence string
components[].advisory_status string
components[].matched_advisories integer
coverage object
coverage.target_response string
coverage.technology_detection string
coverage.package_advisories string
coverage.known_exploitation string
coverage.exploitation_probability string
coverage.detected_components integer
coverage.versioned_components integer
coverage.advisory_eligible_components integer
coverage.advisory_checked_components integer
coverage.advisory_deferred_components integer
coverage.advisory_query_limit integer
coverage.relay_used boolean
coverage.limitations[] string[]
sources[] object[]
sources[] object
sources[].id string
sources[].name string
sources[].owner string
sources[].url string
sources[].status string
sources[].retrieved_at string | null
sources[].cache_hit boolean
sources[].expected_freshness string
sources[].fallback_behavior string
sources[].cost string
_meta object

Exemple de requête

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard"
const response = await fetch("https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
import os
import requests

response = requests.get(
    "https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/vulnerabilities?url=https%3A%2F%2Fexample.com&domain=example.com&mode=standard")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))

Exemple de réponse

{
  "target": {
    "requested_url": "https://www.example.com/",
    "final_url": "https://www.example.com/",
    "hostname": "www.example.com"
  },
  "scan": {
    "mode": "standard",
    "status": "complete",
    "checked_at": "2026-10-09T10:15:30.000Z",
    "duration_ms": 3120,
    "disclaimer": "A clean result means DomScan did not detect an issue within the documented scan coverage. Automated scanning cannot prove that an application is vulnerability-free or replace an authorized penetration test."
  },
  "summary": {
    "posture": "review",
    "risk_level": "medium",
    "finding_count": 2,
    "version_affected_count": 0,
    "misconfiguration_count": 2,
    "urgent_count": 0,
    "severity_counts": {
      "critical": 0,
      "high": 0,
      "medium": 1,
      "low": 1,
      "info": 0,
      "unknown": 0
    }
  },
  "findings": [
    {
      "fingerprint": "configuration:content-security-policy:www.example.com",
      "classification": "security_misconfiguration",
      "severity": "medium",
      "priority": "elevated",
      "title": "Content Security Policy is not advertised",
      "summary": "The observed response did not include a Content-Security-Policy header.",
      "evidence": {
        "confidence": "high",
        "observed": [
          "Public response did not include the expected content-security-policy protection."
        ],
        "limitations": [
          "header_policy_can_vary_by_path_or_response_status"
        ]
      },
      "remediation": {
        "summary": "Deploy a restrictive Content Security Policy in report-only mode first, then enforce it.",
        "fixed_versions": []
      },
      "sources": [
        "target_response"
      ]
    },
    {
      "fingerprint": "configuration:referrer-policy:www.example.com",
      "classification": "security_misconfiguration",
      "severity": "low",
      "priority": "normal",
      "title": "Referrer Policy is not advertised",
      "summary": "The response did not include an explicit Referrer-Policy header.",
      "evidence": {
        "confidence": "high",
        "observed": [
          "Public response did not include the expected referrer-policy protection."
        ],
        "limitations": [
          "header_policy_can_vary_by_path_or_response_status"
        ]
      },
      "remediation": {
        "summary": "Choose and deploy a Referrer-Policy that matches the application privacy and analytics requirements.",
        "fixed_versions": []
      },
      "sources": [
        "target_response"
      ]
    }
  ],
  "components": [
    {
      "technology_id": "jquery",
      "name": "jQuery",
      "detected_version": "3.7.1",
      "version_kind": "asset",
      "confidence": "high",
      "advisory_status": "checked",
      "matched_advisories": 0
    },
    {
      "technology_id": "cloudflare",
      "name": "Cloudflare",
      "detected_version": null,
      "version_kind": null,
      "confidence": "high",
      "advisory_status": "mapping_unavailable",
      "matched_advisories": 0
    }
  ],
  "coverage": {
    "target_response": "checked",
    "technology_detection": "checked",
    "package_advisories": "checked",
    "known_exploitation": "not_requested",
    "exploitation_probability": "not_requested",
    "detected_components": 2,
    "versioned_components": 1,
    "advisory_eligible_components": 1,
    "advisory_checked_components": 1,
    "advisory_deferred_components": 0,
    "advisory_query_limit": 20,
    "relay_used": true,
    "limitations": [
      "Only exact reviewed technology-to-package mappings are checked against OSV.",
      "Versionless or semantically incompatible detections are not reported as vulnerable.",
      "This passive scan does not send exploit payloads or prove exploitability.",
      "Response headers and exposed versions can vary by path, edge location, or authentication state."
    ]
  },
  "sources": [
    {
      "id": "target_response",
      "name": "Observed public response",
      "owner": "Target website",
      "url": "https://domscan.net/tech-stack-api",
      "status": "checked",
      "retrieved_at": "2026-10-09T10:15:30.000Z",
      "cache_hit": false,
      "expected_freshness": "Live at scan time",
      "fallback_behavior": "Unavailable signals remain unknown and never imply that the target is unaffected",
      "cost": "none"
    },
    {
      "id": "osv",
      "name": "OSV",
      "owner": "Google Open Source Security Team",
      "url": "https://google.github.io/osv.dev/",
      "status": "checked",
      "retrieved_at": "2026-10-09T10:15:29.000Z",
      "cache_hit": false,
      "expected_freshness": "OSV targets advisory freshness within 15 minutes",
      "fallback_behavior": "Use a fresh cached result when available; otherwise mark the component advisory check unknown",
      "cost": "none"
    },
    {
      "id": "cisa_kev",
      "name": "CISA Known Exploited Vulnerabilities Catalog",
      "owner": "Cybersecurity and Infrastructure Security Agency",
      "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
      "status": "not_requested",
      "retrieved_at": null,
      "cache_hit": false,
      "expected_freshness": "Catalog changes are checked hourly",
      "fallback_behavior": "Use a fresh cached catalog when available; otherwise leave exploitation status unknown",
      "cost": "none"
    },
    {
      "id": "first_epss",
      "name": "Exploit Prediction Scoring System",
      "owner": "FIRST",
      "url": "https://www.first.org/epss/",
      "status": "not_requested",
      "retrieved_at": null,
      "cache_hit": false,
      "expected_freshness": "Scores are generated daily",
      "fallback_behavior": "Return the advisory without an EPSS value and mark exploitation probability unknown",
      "cost": "none"
    }
  ],
  "_meta": {
    "served_by": "pop=MAD country=ES",
    "analysis_status": "complete"
  }
}

Codes de statut HTTP

  • 200 OK
  • 400 Requête incorrecte
  • 401 Non autorisé
  • 402 Paiement requis
  • 429 Trop de requêtes
  • 503 Service indisponible

Questions fréquentes

Où trouver la référence des requêtes et réponses de Analyseur de vulnérabilités de sites web ?

Utilisez la référence API de Analyseur de vulnérabilités de sites web pour consulter les paramètres, les champs de réponse, les exemples, les codes d’état et les modes d’opération pris en charge.

Comment interpréter les résultats inconnus ou incomplets de Analyseur de vulnérabilités de sites web ?

Les résultats inconnus ou partiels signifient que les preuves demandées n’ont pas pu être déterminées entièrement. Conservez l’état du résultat, le niveau de confiance, la fraîcheur et les limites dans vos décisions en aval.

Comment Analyseur de vulnérabilités de sites web est-il tarifé ?

Le tarif dépend de l’opération et du mode d’exécution. Consultez la référence de l’endpoint pour connaître le coût actuel en crédits, l’exigence d’authentification et les règles par élément.

Utilisé par des équipes de ces entreprises

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse