API-Referenz
Properties
Eine Property fasst die Websites und Repositorys eines Produkts zusammen. Diese Endpunkte liefern ihren Gesamt-Score, den Score jedes Tools, die Befunde aller Tools in einer Liste und die nächsten Schritte.
Properties auflisten
/api/v1/propertiesAlle Properties des Teams (oder Besitzers) des Schlüssels mit Scores pro Tool.
Antwort
{
"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" }
]
}
]
}Eine Property abrufen
/api/v1/properties/{id}Eine Property mit 30-Tage-Verlauf, zusammengeführten Problemen und nächsten Schritten.
Pfad-Parameter
| Feld | Beschreibung |
|---|---|
idstringPflicht | Die ID der Property aus der Liste. |
Antwort
{
"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 }
]
}
]
}Felder
| Feld | Beschreibung |
|---|---|
scorenumber | nullOptional | Die Gesamt-Health: der Durchschnitt jedes Tools über die Ziele der Property, dann die Tools gleich gewichtet. null, solange nichts gescannt wurde. |
tools[]object[]Optional | Ein Eintrag pro Tool, das die Property gescannt hat: Score, Änderung seit dem vorherigen Scan, wie viele Ziele es gescannt hat (scanned von of) und wann. |
issues[]object[]Optional | Die Befunde der neuesten Scans aller Tools, zusammengeführt: Dasselbe Problem aus zwei Tools ist ein Eintrag, mit beiden in tools und der Häufigkeit in places. |
issues[].taskobject | nullOptional | Die offene Remediation-Aufgabe zum Problem, falls es jemandem zugewiesen wurde. |
nextSteps[]object[]Optional | Was als Nächstes gescannt oder behoben werden sollte, das Dringendste zuerst (Arten unten). url öffnet die passende Seite mit vorausgefülltem Ziel. |
packs[]object[]Optional | Auf der Property installierte Richtlinienpakete (aus dem Marktplatz), jeweils gegen die neuesten Scans geprüft: pass, wie viele Regeln bestehen (passed von total) und jede Regel mit Schwelle (expected) und aktuellem Wert (actual). Namen offizieller Pakete sind auf Englisch. |
trend[]object[]Optional | Der Gesamt-Score pro Tag der letzten 30 Tage. |
Arten nächster Schritte
nextSteps lesen über alle Tools hinweg, sodass ein Befund in einem Tool auf den Scan oder Fix verweist, den ein anderes Tool ermöglicht.
secretsLiveDas Repo enthält ein Secret: Prüfen Sie, was die Live-Website preisgibt.
regressionDer Score eines Tools ist seit dem vorherigen Scan um 10 Punkte oder mehr gefallen.
run360Die meisten Tools haben eine Website noch nicht geprüft.
headersInCodeDer Live-Website fehlen Sicherheits-Header und ihr Repo gehört zur Property.
neverScannedEin Tool lief nie auf einem Ziel.
staleDer letzte Scan eines Ziels ist älter als 30 Tage.
linkRepoDie Property hat Websites, aber kein Repository.
addSiteDie Property hat Repositorys, aber keine Website.
Beispiele
curl https://www.scanverra.com/api/v1/properties \ -H "X-API-Key: $SCANVERRA_API_KEY"