# ScoreBat Football Widgets

Updated: 2026-11-13

Official guide: https://www.scorebat.com/football-widgets/docs/
Builder: https://www.scorebat.com/football-widgets/catalog/

All tokens and route placeholders must be replaced with values from the builder.

## Your first widget

Choose a widget, copy its embed, then make it your own.

1. Open the widget catalog and choose the view you need. Use the builder to select a team, league, competition or match.
2. Sign in and select a developer plan when required. Copy the finished embed code, including its token, iframe class and sizing script.
3. Paste the embed into an HTML block on your site. For a native WebView, use the widget URL and configure the host app to support video and fullscreen.
4. Adjust only the preferences supported by that widget. Test on mobile and with the same account token you will use in production.

### Minimal fixed-height embed

```
<iframe id="football-widget"
  title="Football scores"
  src="https://www.scorebat.com/embed/livescore/?token=YOUR_EMBED_TOKEN"
  style="display:block;width:100%;height:760px;border:0"
  allow="autoplay; fullscreen"
  allowfullscreen>
</iframe>
```

YOUR_EMBED_TOKEN is a placeholder. Copy your embed token from the builder; do not substitute the Video API request token. A fixed-height iframe works without a sizing script, but its height will not follow changing content.


## How preferences work

Four different kinds of setting, with different scopes.

| Setting | Where it belongs | Scope |
| --- | --- | --- |
| Content selection | Embed URL path | Chooses a widget and its team, competition, league or match. |
| Widget preferences | pref query parameter | A JSON object for this widget instance. Exact lowercase keys; values keep their JSON types. |
| Sizing and frame appearance | Iframe attributes, CSS and sizing script | Width, height, border radius, shadow and responsive sizing belong to the parent page. |
| Account preferences | Saved developer settings | Colors and eligible custom navigation settings are shared account settings, subject to the active plan. |
The URL parameter is pref, singular. It contains URL-encoded JSON, not Base64. Use booleans true and false, not strings such as "true". Unknown keys are not a supported customization mechanism.


### Build a URL safely

```
const url = new URL("https://www.scorebat.com/embed/standings/team/chelsea/");
url.searchParams.set("token", "YOUR_EMBED_TOKEN");
url.searchParams.set("pref", JSON.stringify({
  language: "en",
  tableview: "nearby",
  tableneighbors: 2,
  nomaxwidth: true
}));
// URLSearchParams performs the URL encoding once.
const iframe = document.querySelector("#football-widget");
iframe.src = url.toString();
```

When editing an existing URL, parse its pref JSON, change the keys you need, then serialize it again. Do not concatenate unescaped JSON or encode an already encoded value a second time.

The defaults in this reference describe a bare URL with the preference omitted. The builder often explicitly enables options: for example nomaxwidth on many content widgets, and autoplay/dontcollapse on video widgets. Always inspect the generated URL.

A preference may be parsed successfully but have no effect if the selected widget does not consume it. Each widget section below lists the supported preferences and important exceptions.


## Find the right content

Use real selections from the builder; keep the entity type.

Team and tournament routes use the identifiers emitted by the builder. Slugs such as chelsea or england-premier-league are readable examples; do not create identifiers by lowercasing a display name. Match routes require a match identifier from the match picker or an existing returned matchviewUrl.

A competition identifies an individual competition or stage. A league groups related competitions. The unified picker chooses the appropriate type; league and competition are not interchangeable.

The World Cup builder is a preset over the same league, score-bar, video-panel and match widgets. Use the current builder’s selection rather than an old tournament alias.

All route placeholders in this guide must be replaced. A valid route does not guarantee line-ups, statistics, tables, predictions or videos for the selected entity.


## Responsive sizing

Match the helper script to the widget.


### Content widgets: automatic height

```
<iframe title="Football widget"
  class="_scorebatEmbeddedPlayer_"
  src="https://www.scorebat.com/embed/team/chelsea/?token=YOUR_EMBED_TOKEN"
  allow="autoplay; fullscreen" allowfullscreen
  style="display:block;width:100%;height:760px;border:0"></iframe>
<script src="https://www.scorebat.com/embed/embed.js?v=arrv"
  id="scorebat-jssdk"></script>
```


### Video panels: responsive panel sizing

```
<iframe title="Football videos"
  class="_scorebatEmbeddedPanel_"
  src="https://www.scorebat.com/embed/videopanel/?token=YOUR_EMBED_TOKEN"
  allow="autoplay; fullscreen" allowfullscreen
  style="display:block;width:100%;height:800px;border:0"></iframe>
<script>
  window.SCOREBAT_OPTIONS = {
    panelClassName: "_scorebatEmbeddedPanel_",
    panelSizing: "responsive"
  };
</script>
<script src="https://www.scorebat.com/embed/panelx.js?v=f4fksn"
  id="scorebat-paneljs"></script>
```

Load each helper once per page after the iframe elements it should manage. Keep the matching iframe class. In a client-rendered app, mount the iframe elements before inserting the helper; do not assume a script string placed into HTML will execute.

Score bars use their fixed strip height. For fixed-size panels or other fixed-height embeds, omit automatic sizing and set the iframe dimensions in CSS. Internal nomaxwidth does not resize the iframe.

Keep video/fullscreen permissions when embedding video. Autoplay starts muted and is still subject to browser/device policy. Avoid loading many hidden players; player loads may consume your shared allowance.


## Colors, access & account settings

Keep instance preferences separate from saved settings.

The builder saves background color as the account’s ui.color setting and score-bar color as ui.barColor. It may also add a background-color style to the iframe. Putting color or barColor inside pref does not set the widget’s internal theme.

Saved colors are account-wide and require the applicable customization entitlement. Changing them can affect other embeds using the same account. The builder preview can show demo styling; validate the exported embed with your actual token.

Hiding a content header with noheader requires active ad-free access. Removing branding is a separate entitlement. Preferences cannot unlock paid features, remove plan restrictions or force unavailable AI content.

Eligible accounts can configure match, team, league and competition navigation URLs in their account settings. These are saved link preferences, not arbitrary pref keys. Keep the builder’s standard navigation unless you have configured and tested a custom integration.

Ad-free widget/player loads share the developer allowance with billable Video API calls. A billable API call consumes five credits and an ad-free widget/player load consumes one. Check your active plan and usage in your account; exceeding the allowance can restore free-plan restrictions.

Embed tokens are designed to appear in the iframe URL. Use the exported embed token and preserve its query parameters. Do not publish account session credentials or put a private Video API request token into sample code.


## Tabs & custom navigation

Initial tabs and custom destinations use separate configuration.

Full match, team, league and competition widgets can open on a selected tab. tab is a separate query parameter, not a key inside pref. It requires active ad-free access; the requested tab must also be available for the selected content.

| Widget | tab values |
| --- | --- |
| Full match | home, lineup, stats, standings |
| Full team | home, results, fixtures |
| Full league / competition | home, results, fixtures, standings |

### Open a full widget on a tab

```
const url = new URL("https://www.scorebat.com/embed/team/chelsea/");
url.searchParams.set("token", "YOUR_EMBED_TOKEN");
url.searchParams.set("tab", "fixtures");
url.searchParams.set("pref", JSON.stringify({language: "en", nomaxwidth: true}));
```

Custom navigation bases are saved account preferences: matchviewUrl, teamUrl, competitionUrl and leagueUrl. Where supported, the widget appends the selected identifier and a trailing slash to the configured base. Use a base ending in a slash, and make sure the destination handles that route.

When opening a configured custom popup, the widget normally adds sbprf containing URL-encoded JSON with the current language. Your destination can read that parameter and pass the supported language into its own widget. It is not a copy of every source preference.

Advanced custom navigation only: pref.dontpasspref=true suppresses the sbprf language parameter on custom popup URLs. Omit it for normal navigation. It does not disable widget preferences, change the embedded content, or remove account restrictions.


## Custom-domain setup

Keep visitors on your website when they open matches, competitions, leagues and teams. Available with Advanced and Enterprise.

This feature connects widget links to pages you host. It does not move ScoreBat services to your domain or require a DNS change. Your server must render the appropriate widget at every supported URL.

1. Create one host page containing the loader below. Replace YOUR_EMBED_TOKEN with your own embed token from the builder.
2. Configure internal rewrites so each supported path serves this page while keeping the original URL and query string in the browser.
3. Test real match, competition, league and team URLs before activating your account-wide links.
4. In Account, open Developer settings and enter the base URLs. Review the changes, confirm that you tested the pages, and save. Links take effect immediately after a successful save; no manual approval is required.

### Shared host page

```
<script>
window.SCOREBAT_OPTIONS = {
  embedToken: "YOUR_EMBED_TOKEN",
  baseDir: "/"
};
</script>
<script src="https://www.scorebat.com/embed/embedx.js?v=vh2"></script>
```

| Page type | URL on your website | Account setting |
| --- | --- | --- |
| Match | https://example.com/matchview/MATCH_ID/ | matchviewUrl: https://example.com/matchview/ |
| Competition | https://example.com/competition/COMPETITION_ID_OR_SLUG/ | competitionUrl: https://example.com/competition/ |
| League | https://example.com/league/LEAGUE_ID/ | leagueUrl: https://example.com/league/ |
| Team | https://example.com/team/TEAM_ID_OR_SLUG/ | teamUrl: https://example.com/team/ |
Enter a base URL, not one specific match or team URL. ScoreBat appends the selected identifier and a trailing slash. Use HTTPS URLs without query strings, fragments or credentials. Leave a field empty to keep ScoreBat links for that content type.

The shared loader expects matchview, competition, league and team path names. A path such as /match/123/ needs your own routing logic that maps it to the matchview embed; renaming the URL alone is not enough.


### Apache: root .htaccess example

```
RewriteEngine On
RewriteRule ^(?:matchview|competition|league|team)/[^/]+/?$ popup.html [L]
# Place popup.html at the website root.
# Keep these rules before a general application catch-all.
```


### Nginx: server block example

```
location ~ ^/(matchview|competition|league|team)/[^/]+/?$ {
    rewrite ^ /popup.html last;
}
# Serve /popup.html as an existing static file in this server.
# Adapt this example to your application routing before reloading Nginx.
```

For a subdirectory such as /football/, use baseDir: "/football/", route /football/matchview/... and the other three paths to the shared page, and save base URLs with the same /football/ prefix. Preserve query parameters, including sbprf, which carries navigation preferences.

Load this script as part of the initial HTML page. It uses document.write and is not suitable for insertion after page load or after single-page app hydration. In a single-page app, implement route-to-iframe mapping yourself using the embed routes and sizing helper documented above.

The loader can update the host page title. Set noTitle: true in SCOREBAT_OPTIONS if your website manages its own title. Use real identifiers from the builder; placeholders are not valid content.


## WordPress setup

Serve the same WordPress page at each widget route.

1. Create a WordPress page for your widget host and add the shared host-page script from the previous section. Use your own embed token.
2. Find the page ID in the editor URL, then replace 123 in the example below. Put the code in a small site plugin or your child theme, not in a parent theme that updates may overwrite.
3. Save Settings → Permalinks once after adding or changing the rewrite rules. Do not flush rewrite rules on every request.
4. Open real URLs for all four content types and confirm that the correct widgets load before saving your base URLs in Account.

### WordPress rewrite rules

```
<?php
// Put this in a small plugin or child theme functions.php.
// Omit the opening PHP tag if the file already has one.
function scorebat_custom_widget_routes() {
    $page_id = 123; // Replace with your widget host page ID.
    add_rewrite_rule(
        '^(matchview|competition|league|team)/[^/]+/?$',
        'index.php?page_id=' . $page_id,
        'top'
    );
}
add_action('init', 'scorebat_custom_widget_routes');
```

Some WordPress roles, editors and hosting platforms strip script tags from Custom HTML blocks. If the loader disappears, have your developer add it through a trusted site plugin or page template, only on the widget host page. Check your caching, redirect and security plugins if deep links fail.

For WordPress installed in a subdirectory, set baseDir to the installation path with a trailing slash. Rewrite patterns are relative to that installation; account base URLs must include the same prefix.


## Test and activate your links

A saved URL is not proof that your website is ready. Test first, then confirm the account-wide change.

1. Visit one real URL for each configured content type. Confirm the correct widget appears, then refresh the page and open it in a new browser tab.
2. Check mobile layout, widget height and navigation between content types. Keep the original deep-link URL visible; do not redirect every request to popup.html or the WordPress page slug.
3. Make sure HTTPS works and your server preserves the query string. Check browser errors if a content security policy blocks ScoreBat scripts or iframes.
4. Save in Account after confirming the setup. Click through from a widget using the same account token to verify the activated destinations.
5. To restore ScoreBat destinations, clear the relevant base URLs or choose Use ScoreBat links, then review and save again.
These are account-wide settings, so they affect widgets using your account. Existing open widgets may need a reload and cached settings may take a few minutes to refresh. Plan and usage limits still apply; saving settings does not bypass them.

These colors are shared by every eligible widget using your account token, including widgets you have already published.

Custom-domain editing requires an active Advanced or Enterprise subscription. Other developers can see the controls and upgrade. Existing configured links are preserved. Contact ScoreBat if you need help with a setup that does not fit these examples.


## Choose your widget

Each reference lists its own supported preferences, defaults and exceptions.

Use the family filter below to find the widget you are embedding. Shared parameter names can have widget-specific effects; a preference is supported only where listed. Advanced routes are marked when they do not have a dedicated builder preset.


### Livescore

Scores, fixtures and results across competitions.

Family: Scores
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/livescore/

### Routes

```
/embed/livescore/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- limitwidth (boolean | integer); allowed: true | false | integer ≥ 400; omitted: false. Livescore only: true caps content at 1200px. An integer of at least 400 sets a custom pixel cap. This is different from nomaxwidth.

Use limitwidth for this widget. nomaxwidth, tableview and noevents do not control the livescore feed.


### Instance preferences

```
{
  "limitwidth": true
}
```


### Score bar

A horizontal score strip for all matches, a team, or a tournament.

Family: Scores
Sizing: fixed
Builder: https://www.scorebat.com/football-widgets/builder/score-bar/

### Routes

```
/embed/livescore-bar/
/embed/livescore-bar/team/{team}/
/embed/livescore-bar/competition/{competition}/
/embed/livescore-bar/league/{league}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.

Team and tournament selection belongs in the route. noheader, nomaxwidth and standings preferences do not change the strip.
The strip color is the saved barColor account setting. Popup/background color is the separate color setting.


### Instance preferences

```
{}
```


### Full league

A full league view combining related competitions, matches and tables.

Family: Tournaments
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/competition-full/

### Routes

```
/embed/league/{league}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.

### Explicit builder defaults

```
{
  "nomaxwidth": true
}
```


A league can contain several competitions or stages. Keep the picker’s entity type; do not substitute a competition route just because its display name is similar.
Detailed standings preferences apply to the dedicated standings widget, not this full league view.


### Instance preferences

```
{
  "nomaxwidth": true
}
```


### Full competition

Matches, results and available standings for one competition.

Family: Tournaments
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/competition-full/

### Routes

```
/embed/competition/{competition}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "nomaxwidth": true
}
```


The full competition widget does not consume noheader. Choose a focused standings or fixtures widget when you need a configurable header.


### Instance preferences

```
{
  "nomaxwidth": true
}
```


### Fixtures & results

A focused schedule and results view with a Today tab when applicable.

Family: Tournaments
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/competition-fixtures/

### Routes

```
/embed/fixtures/competition/{competition}/
/embed/fixtures/league/{league}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- fixturesview (string); allowed: fixtures | results; omitted: fixtures. Initial fixtures/results tab. If the competition has matches today, the widget initially opens Today instead.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "fixturesview": "fixtures",
  "nomaxwidth": true
}
```


fixturesview is an initial choice, not a filter that removes the other tabs. Today takes priority when matches are available today.
The current fixtures renderer does not use nopadding, even though that control appears in the builder.


### Instance preferences

```
{
  "fixturesview": "results",
  "nomaxwidth": true
}
```


### Competition & league standings

Focused league tables; a league may display several stage tables.

Family: Tournaments
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/standings/

### Routes

```
/embed/standings/competition/{competition}/
/embed/standings/league/{league}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- tabledetailed (boolean); allowed: true | false; omitted: false. Opens focused standings in the detailed view. Available columns depend on the underlying table.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nopadding (boolean); allowed: true | false; omitted: false. Removes supported content padding. It does not remove the iframe’s parent-page padding or every internal spacing rule.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "nomaxwidth": true
}
```


tableview and tableneighbors are team-focused options. They do not crop these competition tables.
Some competitions have no standings, for example a knockout-only stage. The widget displays an unavailable state.


### Instance preferences

```
{
  "tabledetailed": true,
  "nomaxwidth": true
}
```


### Full team

A complete team page with matches and available team information.

Family: Teams
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/team-full/

### Routes

```
/embed/team/{team}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "nomaxwidth": true
}
```


noheader, matchmode and tableview do not modify this full team widget. Use the focused team match card or team standings widget instead.


### Instance preferences

```
{
  "nomaxwidth": true
}
```


### Team standings

A table centered on one team, with an option to show the whole table.

Family: Teams
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/team-standings/

### Routes

```
/embed/standings/team/{team}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- tableview (string); allowed: nearby | full; omitted: nearby. Team standings only: show rows around the selected team or the entire table.
- tableneighbors (integer); allowed: 1–5; omitted: 3. Number of neighboring rows for team standings in nearby mode. The builder offers 1, 2, 3 or 5; the parser clamps values to 1–5. It has no effect in full mode.
- tabledetailed (boolean); allowed: true | false; omitted: false. Opens focused standings in the detailed view. Available columns depend on the underlying table.
- tablecompetition (string); allowed: Competition slug or numeric ID as a string; omitted: Automatic. Selects a standings competition for a team. It must match a competition available for that team; an unmatched selector produces an unavailable table rather than falling back.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nopadding (boolean); allowed: true | false; omitted: false. Removes supported content padding. It does not remove the iframe’s parent-page padding or every internal spacing rule.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "tableview": "nearby",
  "tableneighbors": 3,
  "nomaxwidth": true
}
```


tableneighbors applies only in nearby mode. tablecompetition must refer to a table available for the selected team.
tablecompetition is an advanced URL preference and is not currently offered as a builder control.


### Instance preferences

```
{
  "tableview": "nearby",
  "tableneighbors": 2,
  "nomaxwidth": true
}
```


### Team match card

Upcoming and/or latest completed match cards for one team.

Family: Teams
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/team-match/

### Routes

```
/embed/team-match/team/{team}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- matchmode (string); allowed: next | latest | both; omitted: both. Chooses the next (live first, otherwise upcoming), most recent completed, or both match cards for a team. Missing matches are not fabricated.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "matchmode": "both",
  "nomaxwidth": true
}
```


matchmode selects the cards, not a date range. The widget updates its selection as matches finish.
nopadding is currently exposed in the builder but not consumed by the match-card renderer.


### Instance preferences

```
{
  "matchmode": "next",
  "nomaxwidth": true
}
```


### Full match

The complete match view with the information available for that game.

Family: Matches
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/match-full/

### Routes

```
/embed/matchview/{match}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "nomaxwidth": true
}
```


noevents, tableview and the line-up layout preferences do not reconfigure the complete match view. Use the corresponding focused widget.


### Instance preferences

```
{
  "nomaxwidth": true
}
```


### Match score

A match score card with optional events.

Family: Matches
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/match-score/

### Routes

```
/embed/matchscore/{match}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- noevents (boolean); allowed: true | false; omitted: false. Hides the event timeline in the match score widget. Other match widget types do not use this preference.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nopadding (boolean); allowed: true | false; omitted: false. Removes supported content padding. It does not remove the iframe’s parent-page padding or every internal spacing rule.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.
- layout (string); allowed: mini; omitted: Default. Line-up accepts field or list; omit for the combined view. Match score accepts mini for the compact score. This URL preference is unrelated to the builder’s iframe sizing mode.

### Explicit builder defaults

```
{
  "nomaxwidth": true
}
```


Use layout="mini" for the compact score layout. Other line-up layout values do not apply.
noevents hides the timeline; noheader is separately controlled and requires ad-free access.


### Instance preferences

```
{
  "noevents": true,
  "layout": "mini",
  "nomaxwidth": true
}
```


### Line-up

Starting players, field/list presentation and substitutes when available.

Family: Matches
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/match-lineup/

### Routes

```
/embed/line-up/{match}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- layout (string); allowed: field | list; omitted: Default. Line-up accepts field or list; omit for the combined view. Match score accepts mini for the compact score. This URL preference is unrelated to the builder’s iframe sizing mode.
- subs (string); allowed: hide | collapse; omitted: Expanded. Line-up only: hide substitute lists or initially collapse them. Omit to keep the normal substitute display.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nopadding (boolean); allowed: true | false; omitted: false. Removes supported content padding. It does not remove the iframe’s parent-page padding or every internal spacing rule.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "nomaxwidth": true
}
```


layout="field" hides the list; layout="list" hides the pitch. Omit layout for the combined view.
subs="hide" removes substitutes; subs="collapse" initially collapses them. These are advanced preferences outside the current builder controls.
Line-up availability depends on the match and data coverage.


### Instance preferences

```
{
  "layout": "field",
  "subs": "collapse",
  "nomaxwidth": true
}
```


### Match statistics

Available match statistics in a focused view.

Family: Matches
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/match-stats/

### Routes

```
/embed/matchstats/{match}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nopadding (boolean); allowed: true | false; omitted: false. Removes supported content padding. It does not remove the iframe’s parent-page padding or every internal spacing rule.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "nomaxwidth": true
}
```


This widget does not use noevents, layout or tableview. Statistics depend on data availability.


### Instance preferences

```
{
  "nomaxwidth": true
}
```


### Head-to-head

Previous meetings and comparison content for the selected match.

Family: Matches
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/match-head-to-head/

### Routes

```
/embed/match-h2h/{match}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nopadding (boolean); allowed: true | false; omitted: false. Removes supported content padding. It does not remove the iframe’s parent-page padding or every internal spacing rule.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

### Explicit builder defaults

```
{
  "nomaxwidth": true
}
```


This is selected by a match, not by constructing a pair of team IDs. Use the match picker.


### Instance preferences

```
{
  "nomaxwidth": true
}
```


### Match video & AI

Video content and available AI context for a selected match.

Family: Matches
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/match-video-ai/

### Routes

```
/embed/g/{match}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- autoplay (boolean); allowed: true | false; omitted: false. Requests automatic video playback. Playback starts muted. Browser policy and source availability can still prevent autoplay.

The current builder also offers noheader and nomaxwidth for this variant, but its renderer does not use them.
autoplay is supported by the renderer but is not currently shown in this match builder variant. AI features depend on the account’s entitlement and available content.


### Instance preferences

```
{
  "autoplay": false
}
```


### Match standings

Available standings with the two match teams highlighted.

Family: Matches
Sizing: resizer
Advanced route; use identifiers from the builder.

### Routes

```
/embed/matchstandings/{match}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- dontcollapse (boolean); allowed: true | false; omitted: false. Keeps a video feed expanded. On match standings, it shows the full table instead of a small window around the two teams.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nopadding (boolean); allowed: true | false; omitted: false. Removes supported content padding. It does not remove the iframe’s parent-page padding or every internal spacing rule.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

This is an advanced embed route without a dedicated catalog preset. Use a match identifier from the match builder.
dontcollapse=true shows the full table. This has a different effect from dontcollapse on a video feed.


### Instance preferences

```
{
  "dontcollapse": true,
  "nomaxwidth": true
}
```


### Match AI

A focused AI prediction view where available.

Family: Matches
Sizing: resizer
Advanced route; use identifiers from the builder.

### Routes

```
/embed/matchai/{match}/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- noheader (boolean); allowed: true | false; omitted: false. Hides the content header where supported. Requires active ad-free access; it is ignored without that entitlement. It does not remove ScoreBat branding by itself.
- nomaxwidth (boolean); allowed: true | false; omitted: false. Removes the widget’s internal maximum width. The iframe still needs an appropriate width in your page.

This is an advanced embed route without a dedicated catalog preset. AI content requires the relevant entitlement and available prediction data.


### Instance preferences

```
{
  "nomaxwidth": true
}
```


### Video panel

A video player with a browsable selection of matches.

Family: Video
Sizing: responsivePanel
Builder: https://www.scorebat.com/football-widgets/builder/video-widget/

### Routes

```
/embed/videopanel/
/embed/videopanel/team/{team}/
/embed/videopanel/competition/{competition}/
/embed/videopanel/league/{league}/
/embed/videopanel/live-stream/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- autoplay (boolean); allowed: true | false; omitted: false. Requests automatic video playback. Playback starts muted. Browser policy and source availability can still prevent autoplay.
- filternotlive (boolean); allowed: true | false; omitted: false. Filters ended matches from the live-stream video feed. Relevant to the live-stream scope, not a general live-score filter.

### Explicit builder defaults

```
{
  "autoplay": true
}
```


Use the responsive panel script, not the general height-resizer script. For a fixed panel, set the iframe width and height explicitly.
dontcollapse, noheader and nomaxwidth do not control the panel. filternotlive applies to the live-stream scope.


### Instance preferences

```
{
  "autoplay": false
}
```


### Video feed

A vertical feed of match videos, with optional expansion and autoplay.

Family: Video
Sizing: resizer
Builder: https://www.scorebat.com/football-widgets/builder/video-feed/

### Routes

```
/embed/videofeed/
/embed/videofeed/team/{team}/
/embed/videofeed/competition/{competition}/
/embed/videofeed/league/{league}/
/embed/videofeed/live-stream/
```

- language (string); allowed: en, ar, cs, da, de, el, es, fi, fr, he, id, it, ms, nl, no, pl, pt-br, ro, ru, sv, th, tr, vi, zh-cn; omitted: Automatic. Selects the widget language. Use a supported code; this does not translate API field names.
- autoplay (boolean); allowed: true | false; omitted: false. Requests automatic video playback. Playback starts muted. Browser policy and source availability can still prevent autoplay.
- dontcollapse (boolean); allowed: true | false; omitted: false. Keeps a video feed expanded. On match standings, it shows the full table instead of a small window around the two teams.
- filternotlive (boolean); allowed: true | false; omitted: false. Filters ended matches from the live-stream video feed. Relevant to the live-stream scope, not a general live-score filter.

### Explicit builder defaults

```
{
  "autoplay": true,
  "dontcollapse": true
}
```


The renderer does not use nomaxwidth even where a scoped builder exposes that option. Use the iframe’s CSS width.
The live-stream scope may include ended streams/replays unless filtered. It does not guarantee a playable stream for every match.


### Instance preferences

```
{
  "autoplay": false,
  "dontcollapse": true
}
```


## WordPress plugin

Add and manage football widgets directly from your WordPress dashboard.

Use the ScoreBat plugin to add live scores, fixtures, standings, team and match widgets, and official video highlights to your WordPress website.

[Get the ScoreBat plugin on WordPress.org](https://wordpress.org/plugins/scorebat-football-widgets/)

1. In your WordPress dashboard, open Plugins → Add New Plugin, search for ScoreBat, then install and activate the plugin.
2. Open ScoreBat in your dashboard and choose Connect to ScoreBat. Sign in or create a free account, then approve the connection to your website.
3. Open the widget catalog, choose and customize a widget, then confirm Use in WordPress to save it to your site.
4. Add a ScoreBat Football Widget block and select your saved widget, or paste its shortcode into a Shortcode block. You can also create a draft page with the widget already added from the ScoreBat dashboard.
5. Preview your page on desktop and mobile, then publish when you are ready.
A ScoreBat account is required, but you do not need to copy an API token. Connect your existing account to use its plan. Available content and customization depend on your ScoreBat plan; free widgets may display advertising and ScoreBat branding.


## When a setting does not work

Check the route, value type, entitlement and embed environment.

1. Confirm the route matches the widget section you are reading. Full team, team standings and team match card are different renderers.
2. Check the exact lowercase key and JSON type. Use pref={...} encoded once; do not pass UI labels or internal camelCase names.
3. Compare with the supported preference list. A builder control may be present on multiple variants even when a particular renderer does not use it.
4. Check your active plan and token. Header removal, colors, branding and AI features can depend on entitlements.
5. Test the actual exported URL, not a demo preview. Check that the host page allows the iframe and the required sizing script.
6. If the content itself is missing, verify another match or competition with available data. A preference cannot generate missing tables, videos or line-ups.
For layout issues, inspect the parent container width and height first. If content is clipped, verify the helper script and iframe class, or increase a fixed height. Refresh the widget after changing its URL or saved settings.


## Build with an AI assistant

A copyable guide and a machine-readable widget manifest.

Use the Markdown guide for integration instructions and the JSON manifest for routes, supported preference names, allowed values, defaults and applicability notes. Both contain placeholders rather than account tokens.

1. Choose the exact widget variant and a real identifier from the builder. Never invent a route or a preference.
2. Use the supported preference list for that widget. Preserve lowercase keys and JSON value types.
3. Construct URLs with URL and URLSearchParams, and preserve the embed token. Keep sizing settings outside pref.
4. Respect account entitlements and content availability. Never promise that changing a preference removes branding or makes unavailable content appear.
5. Include a descriptive iframe title, suitable dimensions, video permissions where needed, and the correct helper script.
