.. meta:: :description: Call Of Duty API Library for python with the implementation of both public and private API used by activision on callofduty.com :key: CallOfDuty API, CallOfDuty python API, CallOfDuty python
.. image:: https://github.com/TodoLodo/cod-python-api/actions/workflows/codeql-analysis.yml/badge.svg?branch=main :target: https://github.com/TodoLodo/cod-python-api.git
.. image:: https://img.shields.io/endpoint?url=https://cod-python-api.todolodo.xyz/stats?q=version :target: https://badge.fury.io/py/cod-api
.. image:: https://img.shields.io/endpoint?url=https://cod-python-api.todolodo.xyz/stats?q=downloads :target: https://badge.fury.io/gh/TodoLodo2089%2Fcod-python-api
Call Of Duty API Library for python with the implementation of both public and private API used by activision on callofduty.com
Todo Lodo
_ Engineer15
_.. _Todo Lodo: https://todolodo.xyz .. _Engineer15: https://github.com/Engineer152
Werseter
_.. _Werseter: https://github.com/Werseter
Node-CallOfDuty
by: Lierrmm
.. _Node-CallOfDuty: https://github.com/Lierrmm/Node-CallOfDuty .. _Lierrmm: https://github.com/Lierrmm
This package can be used directly as a python file or as a python library.
Install cod-api library using pip
_:
.. code-block:: bash
pip install -U cod-api
.. _pip: https://pip.pypa.io/en/stable/getting-started/
Import module with its classes:
.. code-block:: python
from cod_api import API
api = API()
.. _logged in
:
Login with your sso token:
.. code-block:: python
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.
.. _callofduty: https://my.callofduty.com/
Following importation and initiation of the class API
, its associated subclasses can be called by
API.subClassName
.
Below are the available sub classes:
+-------------------+----------+
| sub class | category |
+===================+==========+
| ColdWar
_ | game |
+-------------------+----------+
| ModernWarfare
| game |
+-------------------+----------+
|* ModernWarfare2
| game |
+-------------------+----------+
| Vanguard
_ | game |
+-------------------+----------+
| Warzone
| game |
+-------------------+----------+
|* Warzone2
| game |
+-------------------+----------+
| Me
_ | other |
+-------------------+----------+
| Shop
| other |
+-------------------+----------+
|* Misc
| other |
+-------------------+----------+
For a detailed description, __doc__
(docstring) of each sub class can be called as shown below:
.. _ColdWar
:
ColdWar
:
.. code-block:: python
from cod_api import API
api = API()
# print out the docstring
print(api.ColdWar.__doc__)
.. _ModernWarfare
:
ModernWarfare
:
.. code-block:: python
from cod_api import API
api = API()
# print out the docstring
print(api.ModernWarfare.__doc__)
.. _ModernWarfare2
:
ModernWarfare2
:
.. code-block:: python
from cod_api import API
api = API()
# print out the docstring
print(api.ModernWarfare2.__doc__)
.. _Vanguard
:
Vanguard
:
.. code-block:: python
from cod_api import API
api = API()
# print out the docstring
print(api.Vanguard.__doc__)
.. _Warzone
:
Warzone
:
.. code-block:: python
from cod_api import API
api = API()
# print out the docstring
print(api.Warzone.__doc__)
.. _Warzone2
:
Warzone2
:
.. code-block:: python
from cod_api import API
api = API()
# print out the docstring
print(api.Warzone2.__doc__)
.. _Me
:
Me
:
.. code-block:: python
from cod_api import API
api = API()
# print out the docstring
print(api.Me.__doc__)
.. _Shop
:
Shop
:
.. code-block:: python
from cod_api import API
api = API()
# print out the docstring
print(api.Shop.__doc__)
.. _Misc
:
Misc
:
.. code-block:: python
from cod_api import API
api = API()
# print out the docstring
print(api.Misc.__doc__)
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:
.. code-block:: python
from cod_api import API, platforms
import asyncio
## sync
# initiating the API class
api = API()
# login in with sso token
api.login('your_sso_token')
# retrieving combat history
profile = api.Warzone.fullData(platforms.Battlenet, "Username#1234") # returns data of type dict
# printing results to console
print(profile)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving combat history
profile = await api.Warzone.fullDataAsync(platforms.Battlenet, "Username#1234") # returns data of type dict
# printing results to console
print(profile)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
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:
.. code-block:: python
from cod_api import API, platforms
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving combat history
hist = api.Warzone.combatHistory(platforms.Battlenet, "Username#1234") # returns data of type dict
# printing results to console
print(hist)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving combat history
hist = await api.Warzone.combatHistoryAsync(platforms.Battlenet, "Username#1234") # returns data of type dict
# printing results to console
print(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):
.. code-block:: python
from cod_api import API, platforms
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving combat history
hist = api.Warzone.combatHistoryWithDate(platforms.Activision, "Username#1234567", 1657919309, 1657949309) # returns data of type dict
# printing results to console
print(hist)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving combat history
hist = await api.Warzone.combatHistoryWithDateAsync(platforms.Battlenet, "Username#1234", 1657919309, 1657949309) # returns data of type dict
# printing results to console
print(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
codapi.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:
.. code-block:: python
from cod_api import API, platforms
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving combat history breakdown
hist_b = api.Warzone.breakdown(platforms.Battlenet, "Username#1234") # returns data of type dict
# printing results to console
print(hist_b)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving combat history breakdown
hist_b = await api.Warzone.breakdownAsync(platforms.Battlenet, "Username#1234") # returns data of type dict
# printing results to console
print(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):
.. code-block:: python
from cod_api import API, platforms
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving combat history breakdown
hist_b = api.Warzone.breakdownWithDate(platforms.Activision, "Username#1234567", 1657919309, 1657949309) # returns data of type dict
# printing results to console
print(hist_b)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving combat history breakdown
hist_b = await api.Warzone.breakdownWithDateAsync(platforms.Activision, "Username#1234567", 1657919309, 1657949309) # returns data of type dict
# printing results to console
print(hist_b)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
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:
.. code-block:: python
from cod_api import API, platforms
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving match details
details = api.Warzone.matchInfo(platforms.Battlenet, 9484583876389482453) # returns data of type dict
# printing results to console
print(details)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving match details
details = await api.Warzone.matchInfoAsync(platforms.Battlenet, 9484583876389482453) # returns data of type dict
# printing results to console
print(details)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
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:
.. code-block:: python
from cod_api import API, platforms
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving season loot
loot = api.ColdWar.seasonLoot(platforms.Battlenet, "Username#1234") # returns data of type dict)
# printing results to console
print(loot)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving season loot
loot = await api.ColdWar.seasonLootAsync(platforms.Battlenet, "Username#1234") # returns data of type dict
# printing results to console
print(loot)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
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):
.. code-block:: python
from cod_api import API, platforms
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving maps and respective modes available
maps = api.Vanguard.mapList(platforms.PSN) # returns data of type dict
# printing results to console
print(maps)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving season loot
maps = await api.Vanguard.mapListAsync(platforms.PSN) # returns data of type dict
# printing results to console
print(maps)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
.. _cod_api.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:
+----------------------+----------------------------------------+ |Platform | Remarks | +======================+========================================+ |platforms.All | All (no usage till further updates) | +----------------------+----------------------------------------+ |platforms.Activision | Activision | +----------------------+----------------------------------------+ |platforms.Battlenet | Battlenet | +----------------------+----------------------------------------+ |platforms.PSN | PlayStation | +----------------------+----------------------------------------+ |platforms.Steam | Steam (no usage till further updates) | +----------------------+----------------------------------------+ |platforms.Uno | Uno (activision unique id) | +----------------------+----------------------------------------+ |platforms.XBOX | Xbox | +----------------------+----------------------------------------+
platforms
can be imported and used as follows:
.. code-block:: python
from cod_api import platforms
platforms.All # All (no usage till further updates)
platforms.Activision # Activision
platforms.Battlenet # Battlenet
platforms.PSN # PlayStation
platforms.Steam # Steam (no usage till further updates)
platforms.Uno # Uno (activision unique id)
platforms.XBOX # Xbox
Using the info()
method in sub class Me
of API
user information can be retrieved of the sso-token logged in
with
.. code-block:: python
from cod_api import API
# initiating the API class
api = API()
# login in with sso token
api.login('your_sso_token')
# retrieving user info
userInfo = api.Me.info() # returns data of type dict
# printing results to console
print(userInfo)
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
.. code-block:: python
from cod_api import API
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving user friend feed
friendFeed = api.Me.friendFeed() # returns data of type dict
# printing results to console
print(friendFeed)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving user friend feed
friendFeed = await api.Me.friendFeedAsync() # returns data of type dict
# printing results to console
print(friendFeed)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
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
.. code-block:: python
from cod_api import API
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving user event feed
eventFeed = api.Me.eventFeed() # returns data of type dict
# printing results to console
print(eventFeed)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving user event feed
eventFeed = await api.Me.eventFeedAsync() # returns data of type dict
# printing results to console
print(eventFeed)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
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
.. code-block:: python
from cod_api import API
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving user identities
identities = api.Me.loggedInIdentities() # returns data of type dict
# printing results to console
print(identities)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving user identities
identities = await api.Me.loggedInIdentitiesAsync() # returns data of type dict
# printing results to console
print(identities)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
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
.. code-block:: python
from cod_api import API
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving user cod points
cp = api.Me.codPoints() # returns data of type dict
# printing results to console
print(cp)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving user cod points
cp = await api.Me.codPointsAsync() # returns data of type dict
# printing results to console
print(cp)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
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
.. code-block:: python
from cod_api import API
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving user connected accounts
accounts = api.Me.connectedAccounts() # returns data of type dict
# printing results to console
print(accounts)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving user connected accounts
accounts = await api.Me.connectedAccountsAsync() # returns data of type dict
# printing results to console
print(accounts)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
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
.. code-block:: python
from cod_api import API
# initiating the API class
api = API()
## sync
# login in with sso token
api.login('your_sso_token')
# retrieving user settings
settings = api.Me.settings() # returns data of type dict
# printing results to console
print(settings)
## async
# in an async function
async def example():
# login in with sso token
await api.loginAsync('your_sso_token')
# retrieving user settings
settings = await api.Me.settingsAsync() # returns data of type dict
# printing results to console
print(settings)
# CALL THE example FUNCTION IN AN ASYNC ENVIRONMENT
Donate Todo Lodo
_ Donate Engineer152
_Donate Werseter
_.. _Donate Todo Lodo: https://www.buymeacoffee.com/todolodo2089 .. _Donate Engineer152: https://www.paypal.com/paypalme/engineer15 .. _Donate Werseter: https://paypal.me/werseter