Para quién es
Usa comprobaciones pasivas acotadas para enriquecer la clasificación y la investigación, no para sustituir pruebas autorizadas ni la revisión humana.
Prueba con un producto, resultado, ruta de endpoint o tema de API.
Detecta software expuesto, configuraciones de riesgo y versiones afectadas conocidas en un sitio web público. Cada resultado explica qué se comprobó, por qué hubo una coincidencia y la solidez de las pruebas.
Detecta software expuesto, configuraciones de riesgo y versiones afectadas conocidas en un sitio web público. Cada resultado explica qué se comprobó, por qué hubo una coincidencia y la solidez de las pruebas.
Usa comprobaciones pasivas acotadas para enriquecer la clasificación y la investigación, no para sustituir pruebas autorizadas ni la revisión humana.
Elige esto para evidencias pasivas de versiones y configuraciones expuestas. No explota el objetivo ni demuestra que el sitio esté libre de vulnerabilidades.
Detecta software expuesto, configuraciones de riesgo y versiones afectadas conocidas en un sitio web público. Cada resultado explica qué se comprobó, por qué hubo una coincidencia y la solidez de las pruebas.
Revisa las operaciones, entradas, salidas, modos de ejecución y límites de respuesta compatibles antes de integrar.
8-12 Autenticación obligatoria. Consulta la referencia de la operación para conocer el coste exacto y cualquier precio por elemento.
Usa operaciones documentadas para recopilar, evaluar, enriquecer, verificar, comparar, proteger o monitorizar evidencias públicas.
| Parámetro | Tipo | obligatorio |
|---|---|---|
| url | string | opcional |
| domain | string | opcional |
| mode |
string
Valores permitidos
standarddeep
Predeterminado
standard
|
opcional |
| Campo | Tipo |
|---|---|
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 |
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)){
"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"
}
}
200 OK400 Solicitud incorrecta401 No autorizado402 Pago requerido429 Demasiadas solicitudes503 Servicio no disponibleUsa la referencia de API de Escáner de vulnerabilidades de sitios web para revisar parámetros, campos de respuesta, ejemplos, códigos de estado y modos de operación compatibles.
Los resultados desconocidos o parciales indican que la evidencia solicitada no pudo determinarse por completo. Conserva el estado del resultado, la confianza, la vigencia y las limitaciones en las decisiones posteriores.
El precio depende de la operación y del modo de ejecución. Consulta la referencia del endpoint para conocer el coste actual en créditos, el requisito de autenticación y las reglas por elemento.
Utilizado por personas en estas empresas