Your scores. Your data. In one request.

Every public ScoreZen tournament is readable as JSON — fixtures, live scores, standings, champion. No account, no API key, no quota form to fill. Put your club's live scores on your own website in ten lines of JavaScript.

Endpoints

GET/api/v1/tournament/{code}

A whole tournament

Participants, every fixture with its live score, standings (overall and per group), progress and champion. The code is the one your organiser shares — the same one used by the public page /c/CODE.

GET/api/v1/match/{code}

A single match

Teams, colours, status and live score of one shared match.

GET/api/ics/{code}.ics

Calendar feed

Subscribe to a tournament from Google Calendar, Apple Calendar or Outlook. Kick-off times update by themselves.

GET/embed/{code}

Embeddable scoreboard

Prefer zero code? Drop the live scoreboard straight into your page with an iframe.

Example

Live standings of a tournament, in your page:

const res = await fetch(
  "https://www.getscorezen.com/api/v1/tournament/ABC123"
);
const data = await res.json();

for (const row of data.standings) {
  console.log(row.rank, row.name, row.points);
}

Response shape

{
  "api": "scorezen.v1",
  "tournament": {
    "code": "ABC123",
    "name": "Tournoi du club",
    "sport": "petanque",
    "format": "knockout",
    "status": "live",
    "progress": { "done": 3, "total": 7 },
    "champion": null
  },
  "participants": [{ "id": "p1", "name": "Les Aigles" }],
  "standings": [
    { "rank": 1, "participantId": "p1", "name": "Les Aigles",
      "played": 2, "win": 2, "draw": 0, "loss": 0,
      "for": 26, "against": 14, "diff": 12, "points": 6 }
  ],
  "fixtures": [
    { "id": "k-r1-0", "round": 1, "order": 0, "state": "done",
      "home": { "id": "p1", "name": "Les Aigles" },
      "away": { "id": "p4", "name": "Les Loups" },
      "score": { "home": 13, "away": 7 }, "winner": "home" }
  ],
  "attribution": { "poweredBy": "ScoreZen", "url": "https://www.getscorezen.com" }
}

Fair use

No tournament yet?

Create one in under two minutes — 34 sports, free to try, spectators always free.

Start a tournament