Head to Head Button widget displays a compact button that, when clicked, opens a popover containing comprehensive pre-match and live match statistics, head-to-head records, team form, and game momentum data. The widget provides an unobtrusive way to present rich statistical analysis without consuming permanent page space, making it ideal for match pages, live score tickers, or event listings where detailed statistics need to be available on demand. The popover features two distinct layouts: overlay layout where all statistics are displayed in a single- or two-column display (based on available width), and inline layout with fixed popover height and tabbed navigation.

Head To Head Button Default

Head To Head Button Game Pulse

Head To Head Button Custom Label and Icon
See the Head To Head Button widget demo.
Required identifiers:
headToHead.buttonEnvironment Requirements
| Browser | Version | Mobile Support |
|---|---|---|
| Chrome | 60+ | ✅ Chrome Mobile 60+ |
| Firefox | 55+ | ✅ Firefox Mobile 55+ |
| Safari | 12+ | ✅ iOS Safari 12+ |
| Edge | 79+ | ✅ Edge Mobile 79+ |
| Internet Explorer | All versions | ❌ Not Supported |
Supported Sports
The widget offers several display modes and content customization options.
See the Head To Head Button demo for live examples.
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
matchId | number | Yes | - | Sportradar match identifier. See Getting Identifiers |
position | string | No | "right" | Popover position relative to button.
|
width | number |
Head to Head is available with three icons sets by default.
components property is an object with sport IDs as keys and arrays of strings (tab identifiers) as values.
{
default: ["headtohead", "form", "teamstats", "lastmatches"],
1: ["gamepulse", "headtohead", "form",
For every sport you can:
Invalid component IDs are automatically filtered out.
To set same config for all sports, the simplified notation can be used:
See Head to Head Custom Components Order Guide for detailed examples.
Properties do not always transfer from the above table directly into integration code. Properties must be transformed differently for each integration method:
SIR() callcardVariant: "compact"In javascript integration, the properties go into an object which is passed as the 4th argument of the call ti SIR() function. Please see Global SIR API
data-sr- prefixcardVariant → In all examples replace sportradar in the widgetloader URL path with your clientId.
Example if your clientId is client1:
https://widgets.sir.sportradar.com/sportradar/widgetloaderhttps://widgets.sir.sportradar.com/client1/widgetloaderInitialize the widget programmatically using the JavaScript API. The widget renders in the specified container element.
Insert the following HTML code at the target widget location.
Important: Callback functions (customOnClick) cannot be set via HTML attributes. Use JavaScript/Programmatic integration for these features.

Configuration:
{
layout: "overlay" // Default
}Button opens a floating popover overlay. Ideal for compact spaces where statistics should appear on-demand.
| No |
320 |
| Width of popover in pixels. Recommended range: 280-600. Popover has max-width of 90% viewport width |
layout | string | No | "overlay" | Display mode for statistics content within the popover.
|
label | string | No | "Head to Head" | Text display next to the button. Also acts as a click trigger. |
icon | string | No | Default icon | URL of custom icon image to display on button. Ignored when gamePulseBtnEnable is true and match is live |
gamePulseBtnEnable | boolean | No | false | Replace button icon with Game Pulse indicator during live matches. Shows match intensity visually on button |
gamePulseBtnVersion | number | No | 1 | Version of Game Pulse button indicator design. Options: 1, 2, 3.See Game Pulse Icons for more information. |
gamePulseBtnTooltip | boolean | No | false | When true, hover over button icon will display tooltip with Game Pulse content. |
btnBaseClass | string | No | - | CSS class for button styling. Controls button background and text colors |
themingClsName | string | No | - | Additional CSS class applied to popover container for custom theming |
disableScoreboard | boolean | No | false | When true, hides the scoreboard tab. Useful when match score is displayed separately on the page |
showLastMeetings | boolean | No | false | Display last meetings section in head-to-head tab with detailed match history |
showSimpleForm | boolean | No | false | Use simplified team form display instead of detailed match-by-match results. Shows win/draw/loss indicators only |
showGamePulse | boolean | No | true | Include Game Pulse momentum tab in statistics. When false, Game Pulse tab is hidden |
gamePulseIconSet | object | No | See Game Pulse Icos | Used to set custom match pulse icons. Value for each icon should contain URL pointing to the desired icon. |
statisticsEnableMatchStats | boolean | No | true | Enable match-specific statistics tabs. When false, hides match-level statistical comparisons |
statisticsEnableSeasonStats | boolean | No | true | Enable season statistics tabs. When false, hides season-level team statistics |
components | object | array | No | See Components identifiers | Configuration object defining which components to display and their order. |
customOnClick | function | No | - | Custom click handler function. When provided, overrides default popover open/close behavior. Receives click event as parameter |
s5ClientAlias | string | No | - | S5 client alias to be used for direct link to additional statistics (on S5 solution). Required for "More Stats" button to function. |
enableShowMore | boolean | No | false | When true, displays the "More Stats" button that links to detailed statistics on the S5 Statistics Centre. |
Configuration:
{
gamePulseBtnVersion: 1
}Scoreboard component/tab is always positioned first and can not be re-ordered. Additionally, scoreboard component/tab can not be removed using components property. Use disableScoreboard property instead to remove scoreboard.
components: ['headtohead', 'form', 'teamstats', 'lastmatches']data-sr-card-variantfilters.sport.hidden → Complex objects must be passed as JSON stringsIn HTML integration, the properties go into the parent HTML object as object properties, prefixed with data-sr- as explained above.
This method supports only simple (base) properties and does not support properties that require functions.
In all examples replace sportradar in the widgetloader URL path with your clientId.
Example if your clientId is client1:
https://widgets.sir.sportradar.com/sportradar/widgetloaderhttps://widgets.sir.sportradar.com/client1/widgetloader(function(a,b,c,d,e,f,g,h,i){a[e]||(i=a[e]=function(){(a[e].q=a[e].q||[]).push(arguments)},i.l=1*new Date,i.o=f,
g=b.createElement(c),h=b.getElementsByTagName(c)[0],g.async=1,g.src=d,g.setAttribute("n",e),h.parentNode.insertBefore(g,h)
)})(window,document,"script","https://widgets.sir.sportradar.com/sportradar/widgetloader","SIR", {
language: 'en'
});
// Use PREMATCH match ID
SIR('addWidget', '#sr-widget', 'headToHead.button', {
matchId: 61591316,
layout: 'overlay'
});<div id="sr-widget"></div><div id="sr-widget"
data-sr-widget="headToHead.button"
data-sr-match-id="123"
data-sr-layout="overlay">
</div>
<script type="application/javascript"
src="https://widgets.sir.sportradar.com/sportradar/widgetloader"
async>
</script>