Features
- High-level, idiomatic API — Interact with FACEIT as if it were a native Python service.
- Full type safety — Compatible with mypy and other type checkers.
- Sync & async support — Powered by httpx.
- Pydantic models — All data models inherit from
pydantic.BaseModel. - Advanced pagination — Supports both cursor-based and Unix timestamp pagination.
- Flexible data access — Choose between raw data and parsed models (e.g.,
.raw_playersvs.players). - Page collection utilities — Paginated responses in model mode are wrapped in an
ItemPagecollection with convenient methods, such as.map(),.filter(),.find(), and more.
Installation
Requires Python 3.10+.
pip install faceit
For automatic environment variable loading (see API Key Handling):
pip install faceit[env]
Quickstart
Get started in seconds. The following example demonstrates how to fetch a player's CS2 matches and perform a basic performance analysis using the synchronous API.
import faceit
# 1. Initialize the Data Resource.
# If `FACEIT_API_KEY` is set in your environment, no arguments are needed.
data = faceit.SyncDataResource() # or faceit.SyncDataResource("YOUR_API_KEY")
# 2. Fetch player data by nickname.
nickname = input("Enter the player's nickname: ")
player = data.players.get(nickname)
# 3. Get all CS2 matches for the player.
# Returns an `ItemPage` — a type-safe collection with built-in utility methods.
matches = data.players.all_matches_stats(player.id, faceit.GameID.CS2)
print(f"Total CS2 matches for {player.nickname}: {len(matches)}")
# 4. Perform data analysis.
# Filter for matches with a positive K/D ratio (1 or higher).
positive_kd_matches = matches.filter(lambda m: m.kd_ratio >= 1)
total_count = len(matches)
positive_count = len(positive_kd_matches)
kd_rate = (positive_count / total_count * 100) if total_count > 0 else 0
print(f"Matches with positive K/D: {positive_count}")
print(f"{player.nickname}'s positive K/D rate: {kd_rate:.2f}%")
See additional usage examples in the examples/ directory.
API Key Handling
You can provide your API key directly in the constructor or let the library automatically load it from your environment.
- Automatic: Set the
FACEIT_API_KEYenvironment variable.
Requiresfaceit[env]extra dependency or manual python-decouple installation. - Manual: Pass the key string directly:
SyncDataResource("YOUR_API_KEY"). - Custom Variable: To use a different environment variable name, pass an instance of
FromEnv:SyncDataResource(FromEnv("SECRET"))
Motivation
This project was born out of necessity while building a product that works closely with the FACEIT platform.
Existing solutions did not offer the level of type safety, convenience, or abstraction needed for strong, maintainable code.
The goal is to provide a solution approaching enterprise-level quality, while remaining accessible and useful for a wide range of users.
Project Status & Roadmap
Planned Improvements
- Support for more endpoints and models.
- Webhooks and chat API integration.
- Full documentation and usage guides.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Metadata
Release files for faceit 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| faceit-0.3.2.tar.gz | 43.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| faceit-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 100.1 kB
Release files / faceit-0.3.2.tar.gz
| Download URL | faceit-0.3.2.tar.gz |
|---|---|
| Size | 43.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a2b4e5955dcfd9d832fd854c1677c7ed76efa167a1d840c9dfe849eed72f39ec
|
|
BLAKE2b-256 checksum How to use checksums |
99844acc8601fbdf370c8ea3d7311152d0fbdae7d7f7fdf9c5dcc53ebfb36d6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / faceit-0.3.2-py3-none-any.whl
| Download URL | faceit-0.3.2-py3-none-any.whl |
|---|---|
| Size | 56.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00699846426af27327f3010dafc818a6c385e1653abd406d081c36d1a93241a2
|
|
BLAKE2b-256 checksum How to use checksums |
e6b55ade60d0cd2a2822e961dd8b3615a5b62c3f81e15ca748cdb8b790a7097c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|