Skip to main content

FACEIT Python API Library

Python PyPI License Downloads

FACEIT API

The easiest and most type-safe way to interact with the FACEIT API.


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_players vs .players).
  • Page collection utilities — Paginated responses in model mode are wrapped in an ItemPage collection 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_KEY environment variable.
    Requires faceit[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)

Source distribution for faceit 0.3.2
File Size Uploaded
faceit-0.3.2.tar.gz 43.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for faceit 0.3.2
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page