Embed a bracket or leaderboard on any website

Free embeddable tournament widgets: a live bracket, standings table, tournament card or leaderboard on any website with one iframe or one HTML tag. No account or API key needed.

Every RoundsWon widget is a web page made to sit inside another page. Put it on your website, blog, wiki, Notion page or team site with an iframe or a single HTML tag. Widgets are free, need no account and no API key, and update by themselves while a tournament is live.

Build one by clicking on the free tools page, or write the address yourself with the reference below.

Quick start

A live bracket for a RoundsWon tournament, where abc123 is the code at the end of its page address (https://roundswon.com/t/abc123):

<iframe src="https://roundswon.com/embed/bracket?t=abc123" width="100%" height="520" style="border:0" loading="lazy" title="Tournament bracket"></iframe>

A bracket with no RoundsWon tournament at all, made from a list of names:

<iframe src="https://roundswon.com/embed/bracket?teams=Alpha,Bravo,Charlie,Delta&results=r1-0:2-1&title=Office%20Cup" width="100%" height="420" style="border:0" loading="lazy" title="Office Cup bracket"></iframe>

The widgets

Address (on https://roundswon.com)Shows
/embed/bracketThe bracket tree for elimination formats, or the table and rounds for round robin and swiss
/embed/standingsThe standings table on its own
/embed/cardA tournament card: poster, status, prize, players and an Enter button (live tournaments only)
/embed/leaderboardA ranked leaderboard from rows you give it

Where the data comes from

Each widget takes one of two sources.

A live RoundsWon tournament: t=<code>. The widget reads the tournament and refreshes every 15 seconds while it is open or live. Works with bracket, standings and card.

Settings in the address: no tournament needed. The bracket is built and played out by the same engine that runs real tournaments, so it always follows the format's rules.

SettingMeaningExample
teamsNames in seed order, separated by commas, 2 to 64teams=Alpha,Bravo,Charlie,Delta
formatsingle (default), double, groups or swissformat=double
resultsFinished matches as <match key>:<score>-<score>, separated by commas, in any orderresults=r1-0:2-1,r1-1:0-2
titleThe heading shown above the brackettitle=Office%20Cup
bestOfGames per match: 1, 3, 5 or 7bestOf=3
thirdtrue adds a match for third place (single elimination)third=true
resetfalse turns off the bracket reset (double elimination)reset=false
groupsHow many groups (round robin)groups=2
roundsHow many rounds (swiss), 0 for the usual numberrounds=4

Settings work with bracket and standings. The free bracket maker explains match keys and writes the results for you as you click winners.

Leaderboard rows

The leaderboard widget takes its rows straight from the address:

SettingMeaningExample
rowsName:score pairs, separated by commasrows=Kestrel:24,Juno:19,Tobi:31
titleThe headingtitle=Most%20kills
metricWhat the score is calledmetric=Kills
lower1 when lower is better, like timeslower=1
<iframe src="https://roundswon.com/embed/leaderboard?rows=Kestrel:24,Juno:19,Tobi:31&title=Most%20kills&metric=Kills" width="100%" height="360" style="border:0" loading="lazy" title="Most kills"></iframe>

Look

These work on every widget:

SettingMeaning
theme=darkDark colors. theme=light is the default
bg=transparentNo background, for stream overlays in OBS and Streamlabs

One HTML tag instead of an iframe

Add the script once, then use a tag per widget. The tag sizes itself to fit its content, so nothing is cut off and there is no scroll bar. Every setting above works as an attribute, with tournament for t.

<script src="https://roundswon.com/embed.js" async></script>

<roundswon-bracket tournament="abc123"></roundswon-bracket>
<roundswon-standings tournament="abc123" theme="dark"></roundswon-standings>
<roundswon-card tournament="abc123"></roundswon-card>
<roundswon-bracket teams="Alpha,Bravo,Charlie,Delta" format="double" title="Office Cup"></roundswon-bracket>
<roundswon-leaderboard rows="Kestrel:24,Juno:19,Tobi:31" metric="Kills"></roundswon-leaderboard>

The tags work in plain HTML and in React, Vue, Svelte, WordPress, Webflow, Squarespace or anywhere else that allows a script tag.

Free, with a small ad

Widgets are free with no limits. Each one shows a slim bar along its bottom edge with a link to RoundsWon and a one line ad. That bar is what keeps the widgets free.