📦 Developer · Embeddable Widget
Knox Current Embeddable Widget
Add a live KC badge to any website with a single <script> tag. No React, no build step, no framework.
Live KC rollout is still in progress for embed widget docs.
The widget docs now expose rollout truth directly so integrators know whether they should expect live KC or the labeled snapshot fallback while seed work finishes.
Related ritual surfaces
Quick Start
<script src="https://statvault.org/embed/forge-widget.js" data-forge-player="Patrick Mahomes" data-forge-sport="nfl" data-forge-api-key="YOUR_API_KEY" async ></script>
That's it. The widget auto-discovers all script tags with data-forge-player on the page.
Data Attributes
| Attribute | Required | Default | Description |
|---|---|---|---|
| data-forge-player | Yes | — | Player name to look up (e.g. "Patrick Mahomes") |
| data-forge-sport | Yes | — | Sport slug: nfl · nba · mlb · nhl |
| data-forge-api-key | Yes | — | Your StatVault API key |
| data-forge-theme | No | dark | dark or light |
| data-forge-size | No | md | sm · md · lg |
| data-forge-show-signal | No | false | Show ForgeSignal momentum label |
Themed + Signal Example
<script src="https://statvault.org/embed/forge-widget.js" data-forge-player="LeBron James" data-forge-sport="nba" data-forge-theme="dark" data-forge-size="lg" data-forge-show-signal="true" data-forge-api-key="YOUR_API_KEY" async ></script>
SPA / Dynamic Content
If you inject player content after initial page load (React, Vue, SPA navigation), call window.StatVault.initWidgets() after your content renders:
// Re-initialize after dynamic content load (e.g. SPA navigation) window.StatVault?.initWidgets();
Performance
~4 KB
Script size
gzip
1 hour
Cache
sessionStorage
Zero
Dependencies
vanilla JS
Get Your API Key
Free tier includes 1,000 widget requests/month. Pro unlocks unlimited embeds.
Get API Key →