Live · Free · No API key

World Cup 2026 — JSON API

Free, public JSON API for the FIFA World Cup 2026: matches, live scores, goals & cards, official FIFA stats, top scorers and group standings. No key, no signup.

⚡ CORS: * 📦 application/json 🕐 ~60s cache 🆓 No signup

Base URL

Every call is a simple GET. No headers, no token.

https://wcup2026.org/api/data.php?action=<ACTION>
// Every response is an envelope
{ "ok": true, "action": "today", "updated": 1718600000, "matches": [ … ] }

Endpoints

Pass an action. Amber params are required.

Action Params Returns
todayMatches scheduled today
liveMatches in play right now
upcominglimitUpcoming fixtures
resultslimitFinished matches with scores
allAll 104 matches
matchidOne match, full detail — goals, cards, FIFA stats
scorersTop scorers / golden-boot race
standingsAll 12 group tables
groupgOne group's table (Group A)
physicalPer-player running data from FIFA reports

Quick start

Use it straight from a browser, mobile app (React Native / Flutter) or any backend.

# curl
curl "https://wcup2026.org/api/data.php?action=results"
curl "https://wcup2026.org/api/data.php?action=match&id=12"
curl "https://wcup2026.org/api/data.php?action=scorers"
// JavaScript
const res  = await fetch(
  'https://wcup2026.org/api/data.php?action=scorers');
const data = await res.json();
console.log(data.scorers);
// [{ name, team, goals }, …]

Try it live

This box calls the real API from your browser right now.

GET ?action=scorers → top 5

Loading…

Response shapes

Match object

{
  "id": 12, "round": "Matchday 7", "group": "Group C",
  "team1": "Brazil",   "team2": "Morocco",
  "team1_ar": "البرازيل", "team2_ar": "المغرب",
  "flag1": "https://flagcdn.com/w80/br.png",
  "status": "finished",   // upcoming | live | finished
  "score": [1, 1],       // [team1, team2] or null
  "live_minute": null,
  "date": "2026-06-14", "time": "20:00", "datetime": 1718390000,
  "ground": "Dallas (Arlington)"
}

?action=match&id=N adds detail

{
  "ht": [0, 1],                              // half-time
  "goals1": [{ "name":"Vinícius Júnior", "minute":"32", "penalty":true }],
  "goals2": [ … ],
  "cards":  [{ "team":1, "minute":61, "name":"…", "type":"yellow" }],
  "stats":  { "possession":[…], "shots":[…], "xg":[…] }
}

Scorer

{ "name":"Lionel Messi",
  "team":"Argentina",
  "goals":3 }

Standings row

{ "team":"Mexico", "pts":3,
  "played":1, "w":1, "d":0, "l":0,
  "gf":2, "ga":0, "gd":2 }

Plain text (football.txt)

The whole tournament is also exported in the openfootball football.txt.

https://wcup2026.org/football.php            # schedule + results
https://wcup2026.org/football.php?results    # results only
https://wcup2026.org/football.php?reports    # + scorers + bookings

Fair use

Read-only and free. Please cache where you can (data refreshes ~every minute). Attribution appreciated — link back to wcup2026.org. Schedule data is openfootball (Public Domain); match metrics are FIFA official data.