Tallysight widgets are self-contained JavaScript bundles served from a CDN. You add a single SDK script tag to your page and then place HTML elements withDocumentation Index
Fetch the complete documentation index at: https://docs.tally.site/llms.txt
Use this file to discover all available pages before exploring further.
data-tallysight-widget-type attributes wherever you want a widget to appear. The SDK detects those elements, loads the right bundle, and renders the widget — all without touching your page’s existing styles.
How widgets work
1. Load the SDK
Add the SDK script tag once, anywhere in your HTML document:2. Place a widget element
Add an HTML element with the widget type and ID attributes where you want the widget to render:data-tallysight-widget-type when the DOM loads and renders the matching widget bundle into each one.
Available widgets
| Widget name | Type attribute value | Best for |
|---|---|---|
| Tile | tile | Live odds comparison for a single game or market |
| Feed | feed | Scrollable betslip feed for a sport or network |
| Betslip | betslip | Single betslip display |
| Odds Text | odds-text | Inline odds inside article body text |
| Promo Tiles | promo-tiles | Sportsbook promotional offers |
| Bet Builder | bet-builder | Interactive parlay and pick builder |
Two embed formats
Web component (HTML)
The standard embed uses HTML data attributes on a<span> or <div>:
WordPress shortcode
For WordPress sites, use the equivalent shortcode format:Shadow DOM isolation
Every Tallysight widget renders inside a Shadow DOM. This means:- Your page’s CSS rules do not bleed into the widget
- The widget’s internal styles do not affect your page
- Workspace branding colors are applied as CSS variables scoped entirely within the shadow root
Data flow
When a widget initializes, it follows this sequence:- The SDK reads the
data-tallysight-widget-idand config attributes from the element - The widget bundle fetches its configuration from the Tallysight API, passing the widget ID and any config params (such as
workspace,format, andodds-by) - The API returns pre-formatted data — including workspace branding, odds, and pick data
- The widget applies the workspace’s color palette via CSS variables and renders the interface inside the Shadow DOM
Lazy loading
By default, each widget bundle loads when the SDK initializes. You can defer loading until a widget approaches the viewport by enabling lazy loading:data-tallysight-widget-loading="eager" or data-tallysight-widget-loading="lazy" on the individual element.