Match Preview widget provides comprehensive pre-match information and statistics across multiple sports through an expandable/collapsible tabbed interface. The widget consolidates essential match context including team form, head-to-head records, lineups, league standings, season leaders, team statistics, and tournament brackets into a single organized component. It supports 16 different sports with sport-specific tab configurations and data presentations. The widget features an expandable interface that allows users to switch between collapsed (compact) and expanded (full-detail) modes, making it suitable for both space-constrained match pages and dedicated pre-match hubs.

Full-height mode displaying complete tab content with all details visible.

Compact mode showing selected tab content only with minimal details.
See the Match Preview widget demo.
match.previewEnvironment 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 Match Preview widget supports the following sports, each with sport-specific tab configurations:
Tab availability varies by competition and data availability. Some tournaments may not have all tabs populated.
Illustrations of main layout variants and tab configurations with relevant property values below.

falseFull-height immersive experience with complete tab details. Ideal for dedicated pre-match pages.
| Property | Type | Default | Description |
|---|---|---|---|
matchId | number | Required | Unique identifier for the match. See Getting Identifiers |
isCollapsed | boolean | false | Initial collapse state. When true, widget displays in compact mode showing selected tab content only. When false, displays expanded mode with full details. |
disableExpandButton | boolean | false | Hides the expand/collapse toggle button in footer. When true, users cannot change collapse state after initialization. |
tabs property is an object with sport IDs as keys and arrays of strings (tab identifiers) as values.
{
1: ['matchInfo', 'standings', 'leaders', 'lineups', 'cup', 'playoffs', 'teamStats'], // soccer
2: ['matchInfo', 'standings', 'leaders', 'lineups'
For every sport you can:
Invalid tab IDs are automatically filtered out.
To only display Match Info and Standings for soccer and Lineups and Match Info (different order) for basketball, the following configuration can be set:
tabs: {
1: ['matchInfo', 'standings'], // soccer
2: ['matchInfo', 'lineups'] // basketball
}See Match Preview Custom Tabs 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 → tabsobject |
| See Tabs identifiers |
| Custom tab selection/order per sport. Invalid tab IDs are automatically filtered out. |
disableTabs | boolean | false | Hides tab navigation entirely. When true, only the first valid tab content is rendered without tab switcher UI. |
s5ClientAlias | string | undefined | S5 client alias to be used for direct link to additional statistics (on S5 solution). Required for "More Stats" button to function. |
openMoreStatsInNewTab | boolean | true | Controls "More Stats" link behavior. When true, opens S5 in new tab. When false, navigates current window. |
disableMoreStats | boolean | false | When true, "More Stats" button in footer is disabled. |
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/widgetloaderInitialize the widget programmatically using the JavaScript API. The widget renders in the specified container element.
(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', 'match.preview', {
matchId: 61623696,
isCollapsed: false // default value, can be omitted
});<div id="sr-widget"></div>Insert the following HTML code at the target widget location. Complex object properties must be passed as JSON-encoded strings.
<div id="sr-widget"
data-sr-widget="match.preview"
data-sr-match-id="123"
data-sr-is-collapsed="false">
</div>
<script type="application/javascript"
src="https://widgets.sir.sportradar.com/sportradar/widgetloader"
async>
</script>