Skip to content
This repository was archived by the owner on Dec 17, 2024. It is now read-only.

Repository files navigation

cod-python-api

https://github.com/TodoLodo/cod-python-api/actions/workflows/codeql-analysis.yml/badge.svg?branch=mainhttps://img.shields.io/endpoint?url=https://cod-python-api.todolodo.xyz/stats?q=versionhttps://img.shields.io/endpoint?url=https://cod-python-api.todolodo.xyz/stats?q=downloads

Call Of Duty API Library for python with the implementation of both public and private API used by activision on callofduty.com

Devs

Contributors

Partnered Code

Node-CallOfDuty by: Lierrmm

Documentation

This package can be used directly as a python file or as a python library.

Installation

Install cod-api library using pip:

pip install -U cod-api

Usage

Initiation

Import module with its classes:

fromcod_apiimportAPIapi=API()

Login with your sso token:

api.login('Your sso token')

Your sso token can be found by longing in at callofduty, opening dev tools (ctr+shift+I), going to Applications > Storage > Cookies > https://callofduty.com, filter to search 'ACT_SSO_COOKIE' and copy the value.

Game/Other sub classes

Following importation and initiation of the class API, its associated subclasses can be called by API.subClassName.

Below are the available sub classes:

sub classcategory
game
game
game
game
game
game
other
other
other

For a detailed description, __doc__ (docstring) of each sub class can be called as shown below:

ColdWar:

fromcod_apiimportAPIapi=API()
# print out the docstringprint(api.ColdWar.__doc__)

ModernWarfare:

fromcod_apiimportAPIapi=API()
# print out the docstringprint(api.ModernWarfare.__doc__)

ModernWarfare2:

fromcod_apiimportAPIapi=API()
# print out the docstringprint(api.ModernWarfare2.__doc__)

Vanguard:

fromcod_apiimportAPIapi=API()
# print out the docstringprint(api.Vanguard.__doc__)

Warzone:

fromcod_apiimportAPIapi=API()
# print out the docstringprint(api.Warzone.__doc__)

Warzone2:

fromcod_apiimportAPIapi=API()
# print out the docstringprint(api.Warzone2.__doc__)

Me:

fromcod_apiimportAPIapi=API()
# print out the docstringprint(api.Me.__doc__)

Shop:

fromcod_apiimportAPIapi=API()
# print out the docstringprint(api.Shop.__doc__)

Misc:

fromcod_apiimportAPIapi=API()
# print out the docstringprint(api.Misc.__doc__)

Full Profile History

Any sub class of API that is of game category, has methods to check a player's combat history. Note that before calling any sub class methods of API you must be logged in. Main method is fullData() and fullDataAsync() which is available for ColdWar, ModernWarfare, ModernWarfare2, Vanguard, Warzone and Warzone2 classes.

Here's an example for retrieving Warzone full profile history of a player whose gamer tag is Username#1234 on platform Battlenet:

fromcod_apiimportAPI, platformsimportasyncio## sync# initiating the API classapi=API()
# login in with sso tokenapi.login('your_sso_token')
# retrieving combat historyprofile=api.Warzone.fullData(platforms.Battlenet, "Username#1234") # returns data of type dict# printing results to consoleprint(profile)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving combat historyprofile=awaitapi.Warzone.fullDataAsync(platforms.Battlenet, "Username#1234") # returns data of type dict# printing results to consoleprint(profile)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

Combat History

Main methods are combatHistory() and combatHistoryWithDate() for sync environments and combatHistoryAsync() and combatHistoryWithDateAsync() for async environments which are available for all ColdWar, ModernWarfare, ModernWarfare2, Vanguard, Warzone and Warzone2 classes.

The combatHistory() and combatHistoryAsync() takes 2 input parameters which are platform and gamertag of type cod_api.platforms and string respectively.

Here's an example for retrieving Warzone combat history of a player whose gamer tag is Username#1234 on platform Battlenet:

fromcod_apiimportAPI, platforms# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving combat historyhist=api.Warzone.combatHistory(platforms.Battlenet, "Username#1234") # returns data of type dict# printing results to consoleprint(hist)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving combat historyhist=awaitapi.Warzone.combatHistoryAsync(platforms.Battlenet, "Username#1234") # returns data of type dict# printing results to consoleprint(hist)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

The combatHistoryWithDate() and combatHistoryWithDateAsync() takes 4 input parameters which are platform, gamertag, start and end of type cod_api.platforms, string, int and int respectively.

start and end parameters are utc timestamps in microseconds.

Here's an example for retrieving ModernWarfare combat history of a player whose gamer tag is Username#1234567 on platform Activision with in the timestamps 1657919309 (Friday, 15 July 2022 21:08:29) and 1657949309 (Saturday, 16 July 2022 05:28:29):

fromcod_apiimportAPI, platforms# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving combat historyhist=api.Warzone.combatHistoryWithDate(platforms.Activision, "Username#1234567", 1657919309, 1657949309) # returns data of type dict# printing results to consoleprint(hist)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving combat historyhist=awaitapi.Warzone.combatHistoryWithDateAsync(platforms.Battlenet, "Username#1234", 1657919309, 1657949309) # returns data of type dict# printing results to consoleprint(hist)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

Additionally the methods breakdown() and breakdownWithDate() for sync environments and breakdownAsync() and breakdownWithDateAsync() for async environments, can be used to retrieve combat history without details, where only the platform played on, game title, UTC timestamp, type ID, match ID and map ID is returned for every match. These methods are available for all ColdWar, ModernWarfare, ModernWarfare2, Vanguard, Warzone and Warzone2 classes.

The breakdown() and breakdownAsync()` takes 2 input parameters which are platform and gamertag of type cod_api.platforms and string respectively.

Here's an example for retrieving Warzone combat history breakdown of a player whose gamer tag is Username#1234 on platform Battlenet:

fromcod_apiimportAPI, platforms# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving combat history breakdownhist_b=api.Warzone.breakdown(platforms.Battlenet, "Username#1234") # returns data of type dict# printing results to consoleprint(hist_b)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving combat history breakdownhist_b=awaitapi.Warzone.breakdownAsync(platforms.Battlenet, "Username#1234") # returns data of type dict# printing results to consoleprint(hist_b)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

The breakdownWithDate() and breakdownWithDateAsync() takes 4 input parameters which are platform, gamertag, start and end of type cod_api.platforms, string, int and int respectively.

start and end parameters are utc timestamps in microseconds.

Here's an example for retrieving ModernWarfare combat history breakdown of a player whose gamer tag is Username#1234567 on platform Activision with in the timestamps 1657919309 (Friday, 15 July 2022 21:08:29) and 1657949309 (Saturday, 16 July 2022 05:28:29):

fromcod_apiimportAPI, platforms# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving combat history breakdownhist_b=api.Warzone.breakdownWithDate(platforms.Activision, "Username#1234567", 1657919309, 1657949309) # returns data of type dict# printing results to consoleprint(hist_b)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving combat history breakdownhist_b=awaitapi.Warzone.breakdownWithDateAsync(platforms.Activision, "Username#1234567", 1657919309, 1657949309) # returns data of type dict# printing results to consoleprint(hist_b)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

Match Details

To retrieve details of a specific match, the method matchInfo() for sync environments and matchInfoAsync() for async environments can be used. These methods are available for all ColdWar, ModernWarfare, ModernWarfare2, Vanguard, Warzone and Warzone2 classes. Details returned by this method contains additional data than that of details returned by the combat history methods for a single match.

The matchInfo() and matchInfoAsync() takes 2 input parameters which are platform and matchId of type cod_api.platforms and integer respectively.

Optionally the match ID can be retrieved during your gameplay where it will be visible on bottom left corner

Here's an example for retrieving Warzone match details of a match where its id is 9484583876389482453 on platform Battlenet:

fromcod_apiimportAPI, platforms# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving match detailsdetails=api.Warzone.matchInfo(platforms.Battlenet, 9484583876389482453) # returns data of type dict# printing results to consoleprint(details)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving match detailsdetails=awaitapi.Warzone.matchInfoAsync(platforms.Battlenet, 9484583876389482453) # returns data of type dict# printing results to consoleprint(details)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

Season Loot

Using the seasonLoot() for sync environments and seasonLootAsync() for async environments, player's obtained season loot can be retrieved for a specific game and this method is available for ColdWar, ModernWarfare, ModernWarfare2 and Vanguard classes.

The seasonLoot() and seasonLootAsync() takes 2 input parameters which are platform and matchId of type cod_api.platforms and integer respectively.

Here's an example for retrieving ColdWar season loot obtained by a player whose gamer tag is Username#1234 on platform Battlenet:

fromcod_apiimportAPI, platforms# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving season lootloot=api.ColdWar.seasonLoot(platforms.Battlenet, "Username#1234") # returns data of type dict)# printing results to consoleprint(loot)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving season lootloot=awaitapi.ColdWar.seasonLootAsync(platforms.Battlenet, "Username#1234") # returns data of type dict# printing results to consoleprint(loot)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

Map List

Using the mapList() for sync environments and mapListAsync() for async environments, all the maps and its available modes can be retrieved for a specific game. These methods are available for ColdWar, ModernWarfare, ModernWarfare2 and Vanguard classes.

The mapList() and mapListAsync() takes 1 input parameters which is platform of type cod_api.platforms.

Here's an example for retrieving Vanguard map list and available modes respectively on platform PlayStation (PSN):

fromcod_apiimportAPI, platforms# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving maps and respective modes availablemaps=api.Vanguard.mapList(platforms.PSN) # returns data of type dict# printing results to consoleprint(maps)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving season lootmaps=awaitapi.Vanguard.mapListAsync(platforms.PSN) # returns data of type dict# printing results to consoleprint(maps)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

platforms

platforms is an enum class available in cod_api which is used to specify the platform in certain method calls.

Available platforms are as follows:

PlatformRemarks
platforms.AllAll (no usage till further updates)
platforms.ActivisionActivision
platforms.BattlenetBattlenet
platforms.PSNPlayStation
platforms.SteamSteam (no usage till further updates)
platforms.UnoUno (activision unique id)
platforms.XBOXXbox

platforms can be imported and used as follows:

fromcod_apiimportplatformsplatforms.All# All (no usage till further updates)platforms.Activision# Activisionplatforms.Battlenet# Battlenetplatforms.PSN# PlayStationplatforms.Steam# Steam (no usage till further updates)platforms.Uno# Uno (activision unique id)platforms.XBOX# Xbox

User Info

Using the info() method in sub class Me of API user information can be retrieved of the sso-token logged in with

fromcod_apiimportAPI# initiating the API classapi=API()
# login in with sso tokenapi.login('your_sso_token')
# retrieving user infouserInfo=api.Me.info() # returns data of type dict# printing results to consoleprint(userInfo)

User Friend Feed

Using the methods, friendFeed() for sync environments and friendFeedAsync() for async environments, in sub class Me of API, user's friend feed can be retrieved of the sso-token logged in with

fromcod_apiimportAPI# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving user friend feedfriendFeed=api.Me.friendFeed() # returns data of type dict# printing results to consoleprint(friendFeed)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving user friend feedfriendFeed=awaitapi.Me.friendFeedAsync() # returns data of type dict# printing results to consoleprint(friendFeed)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

User Event Feed

Using the methods eventFeed() for sync environments and eventFeedAsync() for async environments, in sub class Me of API user's event feed can be retrieved of the sso-token logged in with

fromcod_apiimportAPI# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving user event feedeventFeed=api.Me.eventFeed() # returns data of type dict# printing results to consoleprint(eventFeed)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving user event feedeventFeed=awaitapi.Me.eventFeedAsync() # returns data of type dict# printing results to consoleprint(eventFeed)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

User Identities

Using the methods loggedInIdentities() for sync environments and loggedInIdentitiesAsync() for async environments, in sub class Me of API user's identities can be retrieved of the sso-token logged in with

fromcod_apiimportAPI# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving user identitiesidentities=api.Me.loggedInIdentities() # returns data of type dict# printing results to consoleprint(identities)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving user identitiesidentities=awaitapi.Me.loggedInIdentitiesAsync() # returns data of type dict# printing results to consoleprint(identities)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

User COD Points

Using the methods codPoints() for sync environments and codPointsAsync() for async environments, in sub class Me of API user's cod points can be retrieved of the sso-token logged in with

fromcod_apiimportAPI# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving user cod pointscp=api.Me.codPoints() # returns data of type dict# printing results to consoleprint(cp)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving user cod pointscp=awaitapi.Me.codPointsAsync() # returns data of type dict# printing results to consoleprint(cp)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

User Accounts

Using the methods connectedAccounts() for sync environments and connectedAccountsAsync() for async environments, in sub class Me of API user's connected accounts can be retrieved of the sso-token logged in with

fromcod_apiimportAPI# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving user connected accountsaccounts=api.Me.connectedAccounts() # returns data of type dict# printing results to consoleprint(accounts)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving user connected accountsaccounts=awaitapi.Me.connectedAccountsAsync() # returns data of type dict# printing results to consoleprint(accounts)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

User settings

Using the methods settings() for sync environments and settingsAsync() for async environments, in sub class Me of API user's settings can be retrieved of the sso-token logged in with

fromcod_apiimportAPI# initiating the API classapi=API()
## sync# login in with sso tokenapi.login('your_sso_token')
# retrieving user settingssettings=api.Me.settings() # returns data of type dict# printing results to consoleprint(settings)
## async# in an async functionasyncdefexample():
# login in with sso tokenawaitapi.loginAsync('your_sso_token')
# retrieving user settingssettings=awaitapi.Me.settingsAsync() # returns data of type dict# printing results to consoleprint(settings)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT

Donate

About

Call Of Duty API Library for python

Topics

Resources

Code of conduct

Contributing

Stars

65 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages