Embeddable Score Widget

Show your Sentinel security score directly on your website, blog, or documentation. Choose iframe or JavaScript embedding — both auto-update after each scan.

Live Preview

Embed Code

index.html
<iframe src="https://sbscanner.pro-sub.org/api/embed/example.com?theme=dark" width="100%" height="210" frameborder="0" scrolling="no" style="border:none;overflow:hidden;border-radius:12px" title="Sentinel Security Score for example.com"></iframe>

<iframe>

Standard embed that works everywhere. The widget auto-resizes via the postMessage API — see the Auto-Resize section below. Best for simple integration with no extra JS dependencies.

<script>

Dynamically injects the widget via JavaScript and handles auto-resize for you automatically — no listener code needed. Can be placed anywhere in your HTML body.

Auto-Resize (postMessage API)

The widget reports its rendered height to the parent page withwindow.parent.postMessagewhenever it loads or its content changes. The official <script> embed subscribes to this automatically, so no extra code is needed. If you embed the raw iframe yourself, copy this listener to keep the iframe height in sync:

auto-resize.js
// Auto-resize the iframe to match the widget's actual height.
// The widget posts a resize message when it loads and whenever its
// content changes (ResizeObserver).
window.addEventListener("message", function (event) {
  const data = event.data;
  if (!data || data.source !== "sentinel-scanner-widget" || data.type !== "resize") return;

  // Only trust messages from the widget iframe.
  if (event.source !== document.getElementById("sentinel-widget").contentWindow) return;

  const height = parseInt(data.height, 10);
  if (isFinite(height) && height > 0 && height < 2000) {
    document.getElementById("sentinel-widget").style.height = height + "px";
  }
});

// Your iframe must carry this id:
<iframe id="sentinel-widget" src="https://sbscanner.pro-sub.org/api/embed/example.com?theme=dark" width="100%" height="210" frameborder="0" scrolling="no" style="border:none;overflow:hidden;border-radius:12px"></iframe>

Message format

{ source: "sentinel-scanner-widget", type: "resize", height: <number> }

Security

Always verify event.source matches your iframe's contentWindow and check the source/type fields before applying the height.

Widget States

Top-tier securityA+
97/ 99
Excellent
Minor gapsB
82/ 99
Good
Critical findingsF
40/ 99
Critical risk
Not scannedN/A
0/ 99
No scans

Query Parameters

Customize the widget by appending these query parameters to the URL:

ParamValuesDescription
themedark, lightVisual theme of the widget
compacttrue, falseCompact layout (smaller height ~160px)
tierfree, profree shows the score to anyone; pro only renders the score for verified domains with an active PRO/ENTERPRISE subscription — otherwise a locked PREMIUM-watermark card is shown

PRO Badge Tier

Add &tier=pro to embed the premium badge. It only displays the score for domains that are verified and owned by a workspace with an active PRO/ENTERPRISE subscription. Unverified domains or inactive subscriptions render a locked card with a faint PREMIUM watermark instead — a clean upsell without leaking the score.

Eligibility

  • Domain must be verified (Target.isVerified)
  • Workspace plan must be PRO or ENTERPRISE
  • Free plan (PAYGO) domains always see the locked card

Locked card

Shows the domain name, a gold lock, and a Unlock PRO badge CTA pointing at this page. The score, grade and findings counts are never rendered — the watermark makes it obvious the content is gated, not broken.

Show Off Your Security Score

Scan your domain to generate your widget, then copy the embed code above. The widget updates automatically after each scan.