COH2 Stats - Open Data
COH2 Match Data
COH2 Stats stores played matches. This includes all automatch games VS players. Custom and AI games are not stored. The games should not include any broken games. Aka 3v3 game with 2 players. It's recommended to filter the games based on matchtype_id. You can download the .json files from our storage. Each JSON file contains all games played for a given day which we were able to track.
The new file is generated every day at ~4 AM UTC time for the previous day. So 30 June 4 AM we generate a file for 29 June. The data are stored for 60 days. For long term scraping you should download only yesterday file each day.
You can download them from our storage like this
https://storage.coh2stats.com/matches/matches-{unixTimeStamp}.jsonThe timestamp is always that day 00:00:00 aka
1656460800 which is Wed Jun 29 2022 00:00:00 GMT+0000 you can get previous day timestamp with the code below.const date = new Date(); // Example to get yesterday Unix timestamp in JavaSript const yesterdayDayTimeStamp = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate() - 1, 0, 0, 0) / 1000;
Example url for yesterday matches Mon Jul 06 2026
https://storage.coh2stats.com/matches/matches-1783296000.jsonThe Data are in JSON format:
{
"matches": [{
matchhistoryreportresults: PlayerReport[];
matchtype_id: number;
matchhistoryitems: Matchhistoryitem[];
description: string;
profile_ids: number[];
creator_profile_id: number;
mapname: string;
startgametime: number;
id: number;
completiontime: number;
steam_ids: string[];
maxplayers: number;
}],
"timeStamp": "1656460800"
}interface PlayerReport {
matchhistory_id: number;
profile_id: number;
resulttype: number;
teamid: number;
race_id: number;
counters: string;
profile: Record<string, any>;
}In case you will use the data, please mention the source and give a shout-out to the website coh2stats.com, thank you!