Matches, every kick.
Every World Cup match in a single table — date, stage, teams, score, attendance, venue. Pick a tournament + stage. Knockout dramatic finishes (AET, penalties) are flagged.
Tournament
64
Matches
all
171
Goals
2.67/match
0
Attendance
0/match
4
Dramatic finishes
AET + penalties
| Date | Stage | Match | Score | Venue | Att. | Weather |
|---|---|---|---|---|---|---|
| Jun 10, 1998 | Grp A | 2–1 | Stade de France, Saint-Denis | — | ⛅19° | |
| Jun 10, 1998 | Grp A | 2–2 | Stade de la Mosson, Montpellier | — | ⛅19° | |
| Jun 11, 1998 | Grp B | 2–2 | Parc Lescure, Bordeaux | — | 🌧️15° | |
| Jun 11, 1998 | Grp B | 1–1 | Stade de Toulouse, Toulouse | — | 🌧️13° | |
| Jun 12, 1998 | Grp C | 0–1 | Stade Félix-Bollaert, Lens | — | 🌧️14° | |
| Jun 12, 1998 | Grp C | 3–0 | Stade Vélodrome, Marseille | — | ☀️16° | |
| Jun 12, 1998 | Grp D | 0–0 | Stade de la Mosson, Montpellier | — | ⛅18° | |
| Jun 13, 1998 | Grp D | 2–3 | Stade de la Beaujoire, Nantes | — | 🌧️16° | |
| Jun 13, 1998 | Grp E | 1–3 | Stade de Gerland, Lyon | — | ⛅17° | |
| Jun 13, 1998 | Grp E | 0–0 | Stade de France, Saint-Denis | — | 🌧️12° | |
| Jun 14, 1998 | Grp F | 1–0 | Stade Geoffroy-Guichard, Saint-Étienne | — | 🌧️16° | |
| Jun 14, 1998 | Grp H | 1–0 | Stade de Toulouse, Toulouse | — | ⛅18° | |
| Jun 14, 1998 | Grp H | 1–3 | Stade Félix-Bollaert, Lens | — | ⛅14° | |
| Jun 15, 1998 | Grp F | 2–0 | Parc des Princes, Paris | — | ⛅15° | |
| Jun 15, 1998 | Grp G | 2–0 | Stade Vélodrome, Marseille | — | ☀️21° | |
| Jun 15, 1998 | Grp G | 1–0 | Stade de Gerland, Lyon | — | 🌧️18° | |
| Jun 16, 1998 | Grp A | 1–1 | Parc Lescure, Bordeaux | — | ⛅19° | |
| Jun 16, 1998 | Grp A | 3–0 | Stade de la Beaujoire, Nantes | — | ☀️15° | |
| Jun 17, 1998 | Grp B | 1–1 | Stade Geoffroy-Guichard, Saint-Étienne | — | ⛅18° | |
| Jun 17, 1998 | Grp B | 3–0 | Stade de la Mosson, Montpellier | — | ☀️23° | |
| Jun 18, 1998 | Grp C | 1–1 | Stade de Toulouse, Toulouse | — | ⛅27° | |
| Jun 18, 1998 | Grp C | 4–0 | Stade de France, Saint-Denis | — | ⛅21° | |
| Jun 19, 1998 | Grp D | 1–0 | Parc des Princes, Paris | — | ⛅26° | |
| Jun 19, 1998 | Grp D | 0–0 | Stade Geoffroy-Guichard, Saint-Étienne | — | ⛅21° | |
| Jun 20, 1998 | Grp E | 2–2 | Parc Lescure, Bordeaux | — | ☀️37° | |
| Jun 20, 1998 | Grp E | 5–0 | Stade Vélodrome, Marseille | — | ☀️20° | |
| Jun 20, 1998 | Grp H | 0–1 | Stade de la Beaujoire, Nantes | — | ⛅30° | |
| Jun 21, 1998 | Grp F | 2–2 | Stade Félix-Bollaert, Lens | — | ⛅24° | |
| Jun 21, 1998 | Grp F | 1–2 | Stade de Gerland, Lyon | — | ⛅25° | |
| Jun 21, 1998 | Grp H | 5–0 | Parc des Princes, Paris | — | ⛅27° | |
| Jun 22, 1998 | Grp G | 1–0 | Stade de la Mosson, Montpellier | — | ⛅30° | |
| Jun 22, 1998 | Grp G | 2–1 | Stade de Toulouse, Toulouse | — | ⛅23° | |
| Jun 23, 1998 | Grp A | 0–3 | Stade Geoffroy-Guichard, Saint-Étienne | — | ⛅20° | |
| Jun 23, 1998 | Grp A | 1–2 | Stade Vélodrome, Marseille | — | ☀️25° | |
| Jun 23, 1998 | Grp B | 2–1 | Stade de France, Saint-Denis | — | ⛅24° | |
| Jun 23, 1998 | Grp B | 1–1 | Stade de la Beaujoire, Nantes | — | ⛅21° | |
| Jun 24, 1998 | Grp C | 2–1 | Stade Gerland, Lyon | — | ⛅27° | |
| Jun 24, 1998 | Grp C | 2–2 | Parc Lescure, Bordeaux | — | ☀️27° | |
| Jun 24, 1998 | Grp D | 1–3 | Stade de Toulouse, Toulouse | — | ⛅26° | |
| Jun 24, 1998 | Grp D | 6–1 | Stade Félix-Bollaert, Lens | — | ⛅23° | |
| Jun 25, 1998 | Grp E | 2–2 | Stade Geoffroy-Guichard, Saint-Étienne | — | 🌧️21° | |
| Jun 25, 1998 | Grp E | 1–1 | Parc des Princes, Paris | — | ⛅22° | |
| Jun 25, 1998 | Grp F | 2–0 | Stade de la Mosson, Montpellier | — | ⛅24° | |
| Jun 25, 1998 | Grp F | 0–1 | Stade de la Beaujoire, Nantes | — | ⛅17° | |
| Jun 26, 1998 | Grp G | 0–2 | Stade Félix-Bollaert, Lens | — | ⛅18° | |
| Jun 26, 1998 | Grp G | 1–1 | Stade de France, Saint-Denis | — | ⛅20° | |
| Jun 26, 1998 | Grp H | 1–0 | Parc Lescure, Bordeaux | — | ⛅24° | |
| Jun 26, 1998 | Grp H | 1–2 | Stade Gerland, Lyon | — | 🌧️23° | |
| Jun 27, 1998 | r16 | 1–0 | Stade Vélodrome, Marseille | — | ☀️26° | |
| Jun 27, 1998 | r16 | 4–1 | Parc des Princes, Paris | — | 🌧️16° | |
| Jun 28, 1998 | r16 | 1–0AET | Stade Félix-Bollaert, Lens | — | ⛅18° | |
| Jun 28, 1998 | r16 | 1–4 | Stade de France, Saint-Denis | — | ⛅18° | |
| Jun 29, 1998 | r16 | 2–1 | Stade de la Mosson, Montpellier | — | ☀️30° | |
| Jun 29, 1998 | r16 | 2–1 | Stade de Toulouse, Toulouse | — | ⛅25° | |
| Jun 30, 1998 | r16 | 0–1 | Parc Lescure, Bordeaux | — | ⛅23° | |
| Jun 30, 1998 | r16 | 2–2AET | Stade Geoffroy-Guichard, Saint-Étienne | — | ⛅21° | |
| Jul 3, 1998 | qf | 0–0AET | Stade de France, Saint-Denis | — | ⛅19° | |
| Jul 3, 1998 | qf | 3–2 | Stade de la Beaujoire, Nantes | — | ☀️18° | |
| Jul 4, 1998 | qf | 2–1 | Stade Vélodrome, Marseille | — | ☀️28° | |
| Jul 4, 1998 | qf | 0–3 | Stade de Gerland, Lyon | — | ☀️19° | |
| Jul 7, 1998 | sf | 1–1AET | Stade Vélodrome, Marseille | — | ☀️24° | |
| Jul 8, 1998 | sf | 2–1 | Stade de France, Saint-Denis | — | ☀️18° | |
| Jul 11, 1998 | thirdPlace | 1–2 | Parc des Princes, Paris | — | ⛅20° | |
| Jul 12, 1998 | F | 0–3 | Stade de France, Saint-Denis | — | ☀️23° |
GET /matches?year=1998
Team logistics — 1998
32 teams · sorted by distanceDistance is stadium-to-stadium between consecutive matches, great-circle (haversine). First match counts 0 km — we don't guess a pre-tournament anchor. Rest days = full days between consecutive kickoffs (so a Mon → Fri turnaround is 3 days of rest). TZ shift = max hours offset between any venue's country and the team's home country. Multi-zone countries (USA, Brazil, Russia) use their capital city as proxy. DST ignored.
| Team | Matches | Distance | TZ shift | Avg rest | Min rest | Cities visited |
|---|---|---|---|---|---|---|
| 7 | 3,409 km | 4h | 4.3d | 3d | Saint-Denis → Nantes → Marseille → Paris | |
| 5 | 2,317 km | 0h | 4.5d | 3d | Bordeaux → Montpellier → Saint-Denis → Marseille | |
| 7 | 2,228 km | 0h | 3.7d | 2d | Saint-Denis → Marseille → Saint-Étienne → Toulouse → Paris | |
| 5 | 1,872 km | 0h | 4.3d | 3d | Lens → Toulouse → Lyon → Saint-Denis → Nantes | |
| 7 | 1,788 km | 0h | 4.0d | 3d | Marseille → Saint-Denis → Lyon → Lens | |
| 5 | 1,738 km | 4h | 4.0d | 3d | Toulouse → Paris → Bordeaux → Saint-Étienne → Marseille | |
| 4 | 1,656 km | 1h | 4.0d | 3d | Marseille → Toulouse → Lens → Saint-Étienne | |
| 7 | 1,604 km | 0h | 3.5d | 2d | Lens → Nantes → Bordeaux → Lyon → Saint-Denis → Paris | |
| 4 | 1,518 km | 0h | 4.0d | 3d | Nantes → Paris → Toulouse → Saint-Denis | |
| 4 | 1,509 km | — | 4.0d | 3d | Saint-Étienne → Lens → Nantes → Toulouse | |
| 4 | 1,465 km | 1h | 4.0d | 3d | Lyon → Toulouse → Saint-Denis → Bordeaux | |
| 4 | 1,292 km | 5h | 4.3d | 3d | Montpellier → Saint-Étienne → Toulouse → Lens | |
| 4 | 1,224 km | 5h | 4.3d | 3d | Bordeaux → Saint-Étienne → Nantes → Paris | |
| 5 | 1,190 km | 0h | 3.8d | 3d | Paris → Lens → Montpellier → Lyon | |
| 3 | 1,076 km | 0h | 5.5d | 5d | Montpellier → Nantes → Saint-Étienne | |
| 3 | 1,061 km | 0h | 4.5d | 4d | Nantes → Saint-Étienne → Lens | |
| 4 | 1,043 km | 7h | 4.3d | 3d | Lyon → Bordeaux → Saint-Étienne → Montpellier | |
| 3 | 1,008 km | 6h | 4.5d | 3d | Lyon → Montpellier → Lens | |
| 3 | 1,004 km | 0h | 5.0d | 4d | Saint-Denis → Bordeaux → Paris | |
| 3 | 985 km | 8h | 5.0d | 5d | Toulouse → Nantes → Lyon | |
| 3 | 942 km | 8h | 5.0d | 4d | Lyon → Marseille → Paris | |
| 3 | 913 km | 6h | 4.0d | 3d | Paris → Lyon → Nantes | |
| 3 | 905 km | 1h | 5.5d | 5d | Saint-Denis → Bordeaux → Saint-Étienne | |
| 4 | 885 km | 0h | 4.7d | 3d | Montpellier → Bordeaux → Marseille | |
| 3 | 774 km | 1h | 5.0d | 4d | Montpellier → Paris → Lens | |
| 3 | 771 km | 0h | 5.0d | 5d | Toulouse → Montpellier → Nantes | |
| 3 | 734 km | 0h | 4.5d | 3d | Marseille → Montpellier → Saint-Denis | |
| 3 | 728 km | 0h | 5.0d | 5d | Toulouse → Saint-Étienne → Saint-Denis | |
| 3 | 679 km | 2h | 5.0d | 5d | Lens → Saint-Denis → Bordeaux | |
| 3 | 579 km | 6h | 5.0d | 4d | Lens → Paris → Lyon | |
| 3 | 535 km | 1h | 5.0d | 5d | Marseille → Toulouse → Bordeaux | |
| 3 | 292 km | 2.5h | 4.5d | 3d | Saint-Étienne → Lyon → Montpellier |
Derived client-side from GET /matches?year=1998 + GET /stadiums
Coming next: goals-by-minute bucket, captain per match, and penalty-shootout granularity. Subscribe to the API to get the extra fields as they ship.