A Python wrapper for Blizzard API
Project description
Blizzard API 2
blizzardapi2 is a client library for Blizzard's APIs. It's a fork of the original library.
Current supported features include:
- Battle.net User
- WoW Profile
- WoW Game Data
- WoW Classic Game Data
- Diablo 3 Community
- Diablo 3 Game Data
- Hearthstone Game Data
- Starcraft 2 Community
- Starcraft 2 Game Data
Modern features:
- Full type hints support
- Automatic token management with intelligent refresh
- Enum-based region and locale validation
- Clean, maintainable codebase
- Comprehensive error handling
To gain access to Blizzard's API please register here to obtain a client id and client secret.
For more information on Blizzard's API visit:
Official Documentation
Official API Forum
Requirements
Python (3.11+)
Installing
pip install blizzardapi2
Examples
Basic Usage
from blizzardapi2 import BlizzardApi
api_client = BlizzardApi("client_id", "client_secret")
# Public API endpoint (uses automatic client credentials token)
categories_index = api_client.wow.game_data.get_achievement_categories_index(
"us", # region
"en_US" # locale
)
# Protected API endpoint (requires user OAuth token)
summary = api_client.wow.profile.get_account_profile_summary(
"us",
"en_US",
"user_access_token" # OAuth token from authorization code flow
)
# WoW Classic endpoint
connected_realms_index = api_client.wow.game_data.get_connected_realms_index(
"us",
"en_US",
is_classic=True
)
Token Management
The library automatically manages client credentials tokens for public endpoints:
from blizzardapi2 import BlizzardApi
api_client = BlizzardApi("client_id", "client_secret")
# First call: library automatically fetches and caches a client credentials token
realms = api_client.wow.game_data.get_realms_index("us", "en_US")
# Subsequent calls: library reuses the cached token
achievements = api_client.wow.game_data.get_achievements_index("us", "en_US")
# When token expires: library automatically refreshes it
# You don't need to manage tokens manually!
Access token vs Client ID/Client Secret
You can pass in a client_id and client_secret and use almost any endpoint except for a few that require an access_token obtained via OAuth authorization code flow. You can find more information at https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow.
Important: The library handles all tokens securely by passing them in Authorization headers, never in URLs. When you provide a user OAuth token to methods like get_account_profile_summary(), the library automatically:
- Extracts the token from parameters
- Sends it via
Authorization: Bearer <token>header - Keeps tokens out of URL query strings
Here is the list of endpoints, specified by Blizzard, that require an OAuth token:
GET /oauth/userinfo
GET /profile/user/wow
GET /profile/user/wow/protected-character/{realm-id}-{character-id}
GET /profile/user/wow/collections
GET /profile/user/wow/collections/pets
GET /profile/user/wow/collections/mounts
Note: For these protected endpoints, you must implement the OAuth authorization code flow in your application to obtain a user access token. The library does not handle the OAuth flow itself - it only accepts and uses the token you provide.
Documentation
For detailed documentation on each game's API, see the following README files:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blizzardapi2-2.1.17.tar.gz.
File metadata
- Download URL: blizzardapi2-2.1.17.tar.gz
- Upload date:
- Size: 91.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd84b99d52eb90f119e29f8441e378eee4a3b8c0f1402cd6ed1fa3bed9223712
|
|
| MD5 |
4e2b0f291396cd4016d3cf8bb484622f
|
|
| BLAKE2b-256 |
d5a48b051571d8baf631fa1fc759e4017e0190e1243066dd836efa8714ef118c
|
File details
Details for the file blizzardapi2-2.1.17-py3-none-any.whl.
File metadata
- Download URL: blizzardapi2-2.1.17-py3-none-any.whl
- Upload date:
- Size: 26.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
beeaf209650ec2bb3e4ceacbcb747d092b2454da9ca2b07bd16d78d906a9c800
|
|
| MD5 |
78a778d9019ff712320b81db25767355
|
|
| BLAKE2b-256 |
3597cd4a413cf518e7371556961fa6038d2536b57c14fa6376e34b5c0ecf762b
|