78trust / 100
Site Audit
by HALOWERK Agent Tools in Security & trust
x402 APIPassing, checked 3 h ago
Prueft eine Adresse auf Technik, Geschwindigkeit, Sicherheit, Auffindbarkeit und Barrierefreiheit. Je Abschnitt strukturierte Werte, dazu Punkte von 0 bis 100 und eine Befundliste, in der jeder Eintrag einen Beleg traegt: Header, Zeichenkette, URL oder Messwert. Der Schweregrad kritisch bleibt belegter Kompromittierung und offenen Zugaengen vorbehalten. Ausschliesslich lesende Pruefungen, keine Anmeldeversuche, keine Einschleusung, kein Lasttest. Abschnitte laufen parallel; ein Abschnitt, der sc
POST https://tools.halowerk.com/v1/site/audit
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 128 ms typical, 194 ms slowest 5%
- Last check
- 3 h ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X POST "https://tools.halowerk.com/v1/site/audit" \
-H "content-type: application/json" \
-d '{"sections":["tech","speed","security","seo","a11y"],"url":"https://example.com","viewport":"mobile"}'import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ftools.halowerk.com%2Fv1%2Fsite%2Faudit
const res = await pay("https://tools.halowerk.com/v1/site/audit", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({"sections":["tech","speed","security","seo","a11y"],"url":"https://example.com","viewport":"mobile"}),
});
console.log(await res.json());Example input
{
"sections": [
"tech",
"speed",
"security",
"seo",
"a11y"
],
"url": "https://example.com",
"viewport": "mobile"
}Example output
{
"critical_count": 0,
"final_url": "https://example.com/",
"findings": [
{
"affected": "https://example.com/",
"evidence": "Antwortkopf enthaelt kein Strict-Transport-Security",
"fix": "Strict-Transport-Security mit max-age von mindestens einem halben Jahr setzen.",
"id": "sec_kein_hsts",
"section": "security",
"severity": "mittel",
"title": "Kein HSTS-Header"
}
],
"score": {
"a11y": 97,
"security": 60,
"seo": 88,
"speed": 71,
"tech": 92
},
"sections": {
"a11y": {
"kontrastfehler": [
{
"gefordertes_verhaeltnis": 4.5,
"gemessenes_verhaeltnis": 1.2,
"hintergrundfarbe": "#101b2d",
"selektor": "div.faq > summary",
"vordergrundfarbe": "#122a4c"
}
],
"verstoesse_gesamt": 1
},
"security": {
"cname_uebernahme": {
"risiko": false
},
"header": {
"csp": null,
"hsts": null,
"x_frame_options": "SAMEORIGIN"
},
"mail": {
"dmarc": "v=DMARC1; p=quarantine",
"relay_hinweis": null,
"spf": "v=spf1 a mx ~all"
},
"offene_verzeichnislisten": [],
"offengelegte_dateien": [],
"tls": {
"gueltig_bis": "Sep 20 2026 GMT",
"tage_verbleibend": 45,
"version": "TLSv1.3"
}
},
"seo": {
"bild_alternativtexte": {
"bilder_gesamt": 12,
"ohne_alt": 2
},
"canonical": "https://example.com/",
"indexierbarkeit": {
"indexierbar": true
},
"titel": {
"laenge": 13,
"text": "Beispielseite"
},
"ueberschriften": {
"anzahl": {
"h1": 1,
"h2": 4
},
"hierarchie_spruenge": []
}
},
"speed": {
"cls": 0,
"gesamtgewicht_kb": 259.8,
"groesste_ressourcen": [
{
"bytes": 35630,
"typ": "Font",
"url": "https://example.com/fonts/a.woff2"
}
],
"inp_ms": null,
"lcp_ms": 3109,
"render_blockierend": [
{
"bytes": 19723,
"url": "https://example.com/css/style.css"
}
],
"ttfb_ms": 133
},
"tech": {
"bildformate": {
"anteil_modern": 0.75,
"gesamt": 12,
"nach_format": {
"png": 3,
"webp": 9
}
},
"caching": {
"cache_control": "max-age=3600",
"etag": "W/\"1a2b\""
},
"drittanbieter_hosts": {
"anzahl": 4,
"hosts": [
"fonts.gstatic.com"
]
},
"kompression": {
"aktiv": true,
"content_encoding": "br"
},
"protokoll": {
"http2": true,
"http3_advertised": true,
"http3_genutzt": true,
"http_version": "HTTP/2"
},
"server": "nginx",
"systeme": [
{
"beleg": "meta generator",
"kategorie":Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 3 h ago | Passed | 402 | 168 ms | $0.02 |
| 6 h ago | Passed | 402 | 133 ms | $0.02 |
| 10 h ago | Passed | 402 | 128 ms | $0.02 |
| 13 h ago | Passed | 402 | 226 ms | $0.02 |
| 18 h ago | Passed | 402 | 138 ms | $0.02 |
| 21 h ago | Passed | 402 | 118 ms | $0.02 |
| 25 h ago | Passed | 402 | 194 ms | $0.02 |
| 29 h ago | Passed | 402 | 127 ms | $0.02 |
| 31 h ago | Passed | 402 | 104 ms | $0.02 |
| 37 h ago | Passed | 402 | 102 ms | $0.02 |