Help & Knowledge Hub
Everything you need to scan, grade and harden your sites' security headers — quick start, feature map, FAQs and troubleshooting.
Quick start
Scan your first site
Paste any URL into the scanner on the homepage. You get an A+ to F grade, a per-header breakdown (CSP, HSTS, clickjacking, MIME sniffing, referrer and permissions policies, COOP/CORP), TLS certificate expiry, cookie flags and the DNS & Email Security posture — no account needed.
Get your API key
Sign up on /signup for a free key (10 scans per month, no credit card). Already hold a licence from a partner marketplace? Redeem it on /redeem — it activates Enterprise-level access and returns your key instantly. Keep the key secret; the dashboard never stores it server-side.
Call the API
Send your key in the X-API-Key header (or as "Authorization: Bearer <key>"): curl "https://headershield.dev/api/v1/scan?url=https://example.com" -H "X-API-Key: hsh_...". Add ?fail_under=80 to gate a CI pipeline (422 below the threshold), or ?format=securityheaders for the drop-in shape of the retired securityheaders.com API. The full REST surface is described by the OpenAPI 3.1 document at /api/openapi.json.
Read the result
Every finding carries its status (pass/warn/fail), points, a plain-English explanation and a copy-paste fixSnippet for Nginx, Apache, Cloudflare, Next.js and vercel.json. The dnsPosture section reports SPF, DMARC, DKIM, CAA and DNSSEC — each one found, missing or unknown (unknown = the DNS lookup did not complete, never a guess).
Automate it
Paid plans can register monitors (POST /api/v1/monitors) so sites are re-scanned on a schedule, with email alerts and signed webhooks on downgrades (Premium+). Premium and above can pull a downloadable HTML report from /api/v1/report — white-label, with no HeaderShield branding in the document or the filename, on Business and above. Every plan can embed the public grade badge in a README, or wire the GitHub Action from /docs to fail builds below a grade threshold.
Features & API map
| Feature | Plan | API |
|---|---|---|
| Security-header scan + A+–F grade | All plans (Free: 10 scans/mo) | GET /api/v1/scan |
| Grade Simulator — grade pasted headers (no scan, no key) | Public — no account | POST /api/v1/simulate · /simulate |
| TLS certificate expiry + cookie flags | All plans (in every scan) | GET /api/v1/scan |
| DNS & Email Security posture (SPF/DMARC/DKIM/CAA/DNSSEC) | All plans (in every scan) | GET /api/v1/scan → dnsPosture |
| Copy-paste fix snippets (Nginx/Apache/Cloudflare/Next.js/vercel.json) | All plans | GET /api/v1/scan → findings[].fixSnippet |
| Scheduled monitoring + alerts | Basic: 3 sites · Premium: 20 · Business: 100 | POST /api/v1/monitors |
| Signed webhooks (scan.completed, monitor.changed) | Premium and above | PUT /api/v1/webhooks |
| Bulk scan (batch of domains) | Premium: 20/batch · Business: 50/batch | POST /api/v1/bulk/scan |
| Downloadable HTML security report | Premium and above (counts as one scan) · white-label on Business+ | GET /api/v1/report |
| Public share page + grade badge | Free, no key needed | POST /api/share · GET /api/badge/{token} |
| README grade badge (live scan) | Free, no key needed | GET /api/badge?url=example.com |
Frequently asked questions
Troubleshooting
Still stuck? Check the API documentation or the OpenAPI spec.