World Cup 2026 Host Cities API: 16 Stadiums Across 3 Countries
All 16 World Cup 2026 host cities and venues: USA (11), Canada (2), Mexico (3). Capacity, matches hosted, timezone, and API access.
The 2026 FIFA World Cup is the first to be hosted across three countries: the United States (11 cities), Canada (2), and Mexico (3). That's 16 host cities, 16 stadiums, and a logistics challenge that previous World Cups never faced. Travel within the tournament can mean flying 3,000 miles between matches.
This guide covers all 16 host cities, their stadiums, capacities, and how to surface this data in your app via API.
The 16 host cities
| City | Country | Stadium | Capacity | Matches |
|---|---|---|---|---|
| Atlanta | USA | Mercedes-Benz Stadium | 75,000 | 8 |
| Boston (Foxborough) | USA | Gillette Stadium | 65,878 | 7 |
| Dallas (Arlington) | USA | AT&T Stadium | 80,000 | 9 |
| Guadalajara | Mexico | Estadio Akron | 48,071 | 4 |
| Houston | USA | NRG Stadium | 72,220 | 7 |
| Kansas City | USA | Arrowhead Stadium | 76,416 | 6 |
| Los Angeles (Inglewood) | USA | SoFi Stadium | 70,240 | 8 |
| Mexico City | Mexico | Estadio Azteca | 87,523 | 5 |
| Miami (Gardens) | USA | Hard Rock Stadium | 65,326 | 7 |
| Monterrey | Mexico | Estadio BBVA | 53,500 | 4 |
| New York/New Jersey | USA | MetLife Stadium | 82,500 | 8 (incl. Final) |
| Philadelphia | USA | Lincoln Financial Field | 69,596 | 6 |
| San Francisco Bay Area | USA | Levi's Stadium | 68,500 | 6 |
| Seattle | USA | Lumen Field | 68,740 | 6 |
| Toronto | Canada | BMO Field | 45,500 | 6 |
| Vancouver | Canada | BC Place | 54,500 | 7 |
Total: 104 matches across 16 venues.
Notable facts
- The Final is at MetLife Stadium in New York/New Jersey on July 19, 2026
- The opening match is at Estadio Azteca in Mexico City on June 11, 2026 — making the Azteca the first stadium to host matches at three World Cups (1970, 1986, 2026)
- AT&T Stadium in Dallas hosts the most matches at 9, including a semi-final
- Hard Rock Stadium in Miami hosts the third-place playoff on July 18, 2026
- The two semi-finals are at AT&T Stadium (Dallas) and Mercedes-Benz Stadium (Atlanta)
Fetch fixtures and join host-city metadata
The football API returns the World Cup fixture list, teams, kickoff times, status, and coverage flags. Host-city/stadium metadata is best stored in your app as a small static table, then joined to fixtures by your own match mapping.
Start with the fixture endpoint:
curl 'https://api.thestatsapi.com/api/football/matches?competition_id={COMPETITION_ID}&season_id={SEASON_ID}&per_page=100' \
-H 'Authorization: Bearer YOUR_API_KEY'
Use GET /football/competitions?search=world%20cup to find the World Cup competition ID and GET /football/competitions/{competition_id}/seasons to find the 2026 season ID.
Then keep a static host-city table in your app:
const HOST_CITIES = {
"new-york-new-jersey": {
city: "New York/New Jersey",
stadium: "MetLife Stadium",
capacity: 82500,
timezone: "America/New_York",
},
"mexico-city": {
city: "Mexico City",
stadium: "Estadio Azteca",
capacity: 87523,
timezone: "America/Mexico_City",
},
// ...the other 14 host cities
};
This keeps the integration honest: the API supplies live fixture/status data, and your app supplies editorial host-city details such as stadium capacity, transport notes, fan zones, and travel guidance.
Calculate fan travel distance
from math import radians, sin, cos, asin, sqrt
CITY_COORDS = {
'atlanta': (33.7490, -84.3880),
'mexico-city': (19.4326, -99.1332),
'vancouver': (49.2827, -123.1207),
# ...
}
def haversine(coord1, coord2):
lat1, lon1 = radians(coord1[0]), radians(coord1[1])
lat2, lon2 = radians(coord2[0]), radians(coord2[1])
dlat = lat2 - lat1
dlon = lon2 - lon1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
return 2 * 6371 * asin(sqrt(a))
# Distance from Mexico City to Vancouver
distance = haversine(CITY_COORDS['mexico-city'], CITY_COORDS['vancouver'])
print(f"{distance:.0f} km") # ~4,400 km
Useful for travel-planning content or fan-cost calculators.
Time zones matter
Kickoff times span 5 time zones:
- Pacific (PDT): Vancouver, Seattle, San Francisco Bay Area, Los Angeles
- Mountain: none
- Central (CDT): Dallas, Houston, Kansas City
- Central Mexico (CST): Mexico City, Guadalajara, Monterrey
- Eastern (EDT): Atlanta, Boston, Miami, New York, Philadelphia, Toronto
A match in Vancouver at 12pm local time is a match in New York at 3pm local time and a match in London at 8pm. The API returns kickoff times in UTC — always convert client-side to the user's local time.
City-specific use cases
- Travel guides — show all matches in a city, with stadium info and nearby hotels
- Stadium guides — capacity, transport links, fan zones, food and drink options
- Fan-cost calculators — sum estimated cost of attending matches across a fan's planned cities
- Match-day weather — pull weather forecasts for the host city on match-day
- TV channel finder — based on user's city, surface the right broadcaster
SEO opportunity for World Cup content
Each host city has its own search demand: "World Cup matches in [city]", "[city] stadium World Cup 2026", "[stadium] World Cup tickets". Build a city page per host (we have one for each — see our 16 host city pages for reference) and you've got 16 ranking opportunities for free.
Frequently Asked Questions
How many cities are hosting the 2026 World Cup?
16 cities across three countries: 11 in the USA, 3 in Mexico (Mexico City, Guadalajara, Monterrey), and 2 in Canada (Toronto, Vancouver).
Where is the 2026 World Cup Final?
The Final is on July 19, 2026 at MetLife Stadium in New York/New Jersey (capacity 82,500).
Which stadium hosts the opening match?
The Estadio Azteca in Mexico City hosts the opening match on June 11, 2026. It becomes the first stadium to host matches at three different World Cups (1970, 1986, 2026).
Which city hosts the most matches?
Dallas (AT&T Stadium) hosts 9 matches, the most of any venue, including a semi-final.
What's the largest stadium at the World Cup?
The Estadio Azteca at 87,523 capacity is the largest, followed by MetLife Stadium (82,500) which hosts the Final.
Are matches played at different times of day?
Yes — kickoff times vary by venue and stage. The API returns UTC times; convert to user-local for display.
Can I get fixture data for a single host city?
Fetch the World Cup fixture list from /football/matches, then filter against your own host-city mapping. The current documented matches endpoint does not expose venue_id or city filters, so do not build production code around those parameters unless your account has a custom extension.
How do I handle the time zone differences?
Always store and return UTC. Convert to the user's local time in the browser using Intl.DateTimeFormat. Our free Match Kickoff Time Converter demonstrates the pattern.
Ready to Power Your Sports App?
Start your 7-day free trial. All endpoints included on every plan.