Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jakejrichards/cod-api

Repository files navigation

cod-api

A thin Call of Duty API wrapper written in TypeScript

Not licensed by or affiliated with Activision or Call of Duty

  • Full Black Ops 4 Support - blackout, mp, zombies
  • Get profile information - prestige, rank, xp, and more...
  • Get recent matches and stats - map, mode, win/loss, kills, deaths, SPM, K/D Ratio, and more...
  • Get leaderboard information - weekly, monthly, alltime, for all game modes

Installing

You can install via the npm package manager

npm i cod-api

Or clone the repository and install dependencies

git clone https://github.com/jakejrichards/cod-api.git

Black Ops 4

{ }); BO4.getRawBlackoutStats(username, platform) .then(blackoutStats => { }); BO4.getRawZombiesStats(username, platform) .then(zombiesStats => { }); const start = new Date(/*start time*/); const end = new Date(/*end time*/); BO4.getRawMultiplayerMatchesStats({ username, platform, start, end }) .then(matchesStats => { }); BO4.getRawZombiesMatchesStats({ username, platform, start, end }) .then(matchesStats => { }); BO4.getRawBlackoutMatchesStats({ username, platform, start, end }) .then(matchesStats => { }); // Specific Methods BO4.getLifetimeMultiplayerStats(username, platform) .then(lifetime => { const totalKills = data.all.kills; }); BO4.getWeeklyMultiplayerStats(username, platform) .then(weekly => { const weeklyWins = data.all.wins; }); BO4.getOverallZombiesStats(username, platform) .then(data => { const totalKills = data.kills; }); BO4.getOverallBlackoutStats(username, platform) .then(data => { const blackoutWins = data.wins; }); BO4.getMultiplayerMatchesStats({ username, platform, start, end }) .then(matches => { const [ match ] = matches; }) BO4.getBlackoutMatchesStats({ username, platform, start, end }) .then(matches => { const [ match ] = matches; }) BO4.getZombiesMatchesStats({ username, platform, start, end }) .then(matches => { const [ match ] = matches; }) ">import { BO4 } from 'cod-api'

const username = 'Consisttt'; // username
const platform = 'psn'; // psn | xbl | battle

// Retrieve Raw Responses

BO4.getRawMultiplayerStats(username, platform)
.then(multiplayerStats => {

});

BO4.getRawBlackoutStats(username, platform)
.then(blackoutStats => {

});

BO4.getRawZombiesStats(username, platform)
.then(zombiesStats => {

});

const start = new Date(/*start time*/);
const end = new Date(/*end time*/);

BO4.getRawMultiplayerMatchesStats({ username, platform, start, end })
.then(matchesStats => {

});

BO4.getRawZombiesMatchesStats({ username, platform, start, end })
.then(matchesStats => {

});

BO4.getRawBlackoutMatchesStats({ username, platform, start, end })
.then(matchesStats => {

});

// Specific Methods

BO4.getLifetimeMultiplayerStats(username, platform)
.then(lifetime => {
const totalKills = data.all.kills;
});

BO4.getWeeklyMultiplayerStats(username, platform)
.then(weekly => {
const weeklyWins = data.all.wins;
});

BO4.getOverallZombiesStats(username, platform)
.then(data => {
const totalKills = data.kills;
});

BO4.getOverallBlackoutStats(username, platform)
.then(data => {
const blackoutWins = data.wins;
});

BO4.getMultiplayerMatchesStats({ username, platform, start, end })
.then(matches => {
const [ match ] = matches;
})

BO4.getBlackoutMatchesStats({ username, platform, start, end })
.then(matches => {
const [ match ] = matches;
})

BO4.getZombiesMatchesStats({ username, platform, start, end })
.then(matches => {
const [ match ] = matches;
})

These endpoints are not yet populated with data on the official call of duty api:

  • getSoloBlackoutStats
  • getDuoBlackoutStats
  • getQuadBlackoutStats

Legacy COD Titles

Methods for titles released before Black Ops 4

Get Profile

{ // Do something... console.log(response); }) .catch(err => { // Do something with this error console.log(err); });">import { LegacyCOD } from 'cod-api';

LegacyCOD.getProfile({ title, platform, username })
.then(response => {
// Do something...
console.log(response);
})
.catch(err => {
// Do something with this error
console.log(err);
});

Sample Output:

{ title: 'wwii',
platform: 'psn',
username: 'Consisttt',
mp:
{ lifetime: { all: [Object], mode: [Object] },
weekly: { all: [Object], mode: [Object] },
level: 42,
maxLevel: 0,
levelXpRemainder: 26990,
levelXpGained: 13010,
prestige: 5,
prestigeId: 0,
maxPrestige: 0 },
zombies:
{ lifetime: { all: {}, mode: {} },
weekly: { all: {}, mode: {} } },
engagement: null }

Get Recent Matches

{ // Do something... console.log(response); }) .catch(err => { // Do something with this error console.log(err); });">import { LegacyCOD } from 'cod-api';

LegacyCOD.getRecentMatches({ title, platform, username, days })
.then(response => {
// Do something...
console.log(response);
})
.catch(err => {
// Do something with this error
console.log(err);
});

Sample Output:

[ { utcStartSeconds: 1518474308,
utcEndSeconds: 1518474994,
duration: 685,
map: 'mp_france_village',
mode: 'hp',
result: 'none',
winningTeam: 'allies',
privateMatch: false,
gameBattle: false,
playlistName: null,
player:
{ awards: [Object],
team: 'axis',
rank: 41,
prestige: 5,
loadouts: [Object]
},
playerStats:
{ kills: 0,
shotsMissed: 634,
kdRatio: 0,
distanceTravelled: 90335.734375,
divisionXpMountain: 0,
accuracy: 0.25323910482921086,
divisionXpExpeditionary: 0,
divisionXpInfantry: 0,
divisionXpArmored: 0,
shotsLanded: 215,
divisionXpAirborne: 0,
avgSpeed: 174.0572967529297,
avgKillDistance: 465.7652587890625,
score: 6900,
totalXp: 4000,
timePlayed: 685.9,
headshots: 0,
divisionXpNone: 0,
assists: 10,
divisionXpResistance: 0,
shotsFired: 849,
deaths: 0
}
}
]

Get Summary

{ // Do something... console.log(response); }) .catch(err => { // Do something with this error console.log(err); });">import { LegacyCOD } from 'cod-api';

LegacyCOD.getRecentSummary({ title, platform, username, days })
.then(response => {
// Do something...
console.log(response);
})
.catch(err => {
// Do something with this error
console.log(err);
});

Sample Output:

{ all:
{ kills: 88,
distanceTravelled: 529676.67578125,
divisionXpMountain: 0,
accuracy: 0.255205688166582,
divisionXpExpeditionary: 0,
losses: 1,
shotsLanded: 1005,
score: 30885,
totalXp: 85200,
headshots: 5,
assists: 52,
divisionXpResistance: 4275,
scorePerMinute: 194.1486157311611,
deaths: 50,
wins: 4,
shotsMissed: 2933,
kdRatio: 1.76,
divisionXpInfantry: 0,
divisionXpArmored: 0,
divisionXpAirborne: 0,
avgSpeed: 1541.1485290527344,
avgKillDistance: 4201.184417724609,
timePlayed: 9544.75,
matchesPlayed: 12,
divisionXpNone: 0,
shotsFired: 3938
}
}

Get Leaderboards

{ // Do something... console.log(response); }) .catch(err => { // Do something with this error console.log(err); });">import { LegacyCOD } from 'cod-api';

LegacyCOD.getLeaderboards({ title, platform, time, type, mode, username })
.then(response => {
// Do something...
console.log(response);
})
.catch(err => {
// Do something with this error
console.log(err);
});

Sample Output:

{ title: 'wwii',
platform: 'psn',
leaderboardType: 'core',
gameMode: 'war',
page: 3969,
resultsRequested: 20,
totalPages: 288978,
sort: null,
columns:
[ 'prestige',
'totalXp',
'kills',
'deaths',
'assists',
'score',
'timePlayed' ],
entries:
[ { rank: 79361,
username: 'itsESPALDINHO79',
updateTime: 294760,
rating: 5972,
values: [Object] },
{ rank: 79380,
username: 'Consisttt',
updateTime: 7900,
rating: 5972,
values: [Object] } ] }

License

This project is licensed under the MIT License

Packages

Contributors