Referencia de la API
Propiedades
Una propiedad agrupa los sitios y repositorios de un producto. Estos endpoints devuelven su puntuación combinada, la de cada herramienta, los hallazgos de todas las herramientas en una lista y qué hacer después.
Listar propiedades
/api/v1/propertiesTodas las propiedades del equipo (o del dueño) de la clave, con puntuaciones por herramienta.
Respuesta
{
"properties": [
{
"id": "cm9prop...",
"name": "Acme Store",
"category": "ecommerce",
"client": null,
"score": 76,
"lastScannedAt": "2026-11-12T09:30:00.000Z",
"openTasks": 4,
"targets": [
{ "target": "shop.acme.com", "kind": "site" },
{ "target": "acme/storefront", "kind": "repo" }
],
"tools": [
{ "tool": "audit", "score": 86, "change": 3, "scanned": 1, "of": 1, "at": "2026-11-12T09:30:00.000Z" },
{ "tool": "security", "score": 54, "change": -12, "scanned": 1, "of": 1, "at": "2026-11-10T08:00:00.000Z" }
]
}
]
}Obtener una propiedad
/api/v1/properties/{id}Una propiedad con su evolución de 30 días, sus problemas unificados y sus próximos pasos.
Parámetros de ruta
| Campo | Descripción |
|---|---|
idstringObligatorio | El id de la propiedad de la lista. |
Respuesta
{
"id": "cm9prop...",
"name": "Acme Store",
"score": 76,
"trend": [{ "day": "2026-11-12", "score": 76 }],
"issues": [
{
"title": "Missing Content-Security-Policy",
"severity": "high",
"tools": ["security", "audit"],
"targets": ["shop.acme.com"],
"places": 1,
"task": { "id": "cm9task...", "status": "open", "assignee": "Sam Lee" },
"url": "https://www.scanverra.com/security-scan/cm9scan...?finding=..."
}
],
"nextSteps": [
{ "kind": "secretsLive", "tool": "security", "target": "shop.acme.com", "url": "https://www.scanverra.com/security-scan?url=..." }
],
"packs": [
{
"ref": "checkout-security",
"name": "Checkout security",
"official": true,
"pass": false,
"passed": 5,
"total": 7,
"rules": [
{ "kind": "minScore", "tool": "security", "expected": 85, "actual": 50, "pass": false }
]
}
]
}Campos
| Campo | Descripción |
|---|---|
scorenumber | nullOpcional | La salud combinada: la media de cada herramienta en los objetivos de la propiedad y luego las herramientas con el mismo peso. null si aún no se ha escaneado nada. |
tools[]object[]Opcional | Una entrada por herramienta que escaneó la propiedad: puntuación, cambio desde el escaneo anterior, cuántos objetivos escaneó (scanned de of) y cuándo. |
issues[]object[]Opcional | Los hallazgos de los últimos escaneos de todas las herramientas, unificados: el mismo problema de dos herramientas es una entrada, con ambas en tools y cuántas veces apareció en places. |
issues[].taskobject | nullOpcional | La tarea de remediación abierta para el problema, si se asignó a alguien. |
nextSteps[]object[]Opcional | Qué escanear o corregir después, lo más urgente primero (tipos abajo). url abre la página adecuada con el objetivo ya puesto. |
packs[]object[]Opcional | Paquetes de políticas instalados en la propiedad (del marketplace), cada uno comprobado con sus últimos análisis: pass, cuántas reglas aprueban (passed de total) y cada regla con su umbral (expected) y su valor actual (actual). Los nombres de los paquetes oficiales están en inglés. |
trend[]object[]Opcional | La puntuación combinada por día de los últimos 30 días. |
Tipos de próximo paso
nextSteps cruza todas las herramientas, así que un hallazgo de una apunta al escaneo o la corrección que otra hace posible.
secretsLiveEl repo filtra un secreto: comprueba qué expone el sitio en vivo.
regressionLa puntuación de una herramienta bajó 10 puntos o más desde su escaneo anterior.
run360La mayoría de herramientas aún no ha revisado un sitio.
headersInCodeAl sitio en vivo le faltan cabeceras de seguridad y su repo está en la propiedad.
neverScannedUna herramienta nunca se ejecutó en un objetivo.
staleEl último escaneo de un objetivo tiene más de 30 días.
linkRepoLa propiedad tiene sitios pero ningún repositorio.
addSiteLa propiedad tiene repositorios pero ningún sitio.
Ejemplos
curl https://www.scanverra.com/api/v1/properties \ -H "X-API-Key: $SCANVERRA_API_KEY"