Typed Python client for the IFPA (International Flipper Pinball Association) API
Project description
IFPA API Python
Unofficial Python client for the IFPA (International Flipper Pinball Association) API.
Access player rankings, tournament data, and statistics through a clean, type-safe Python interface with Pydantic validation.
Installation
pip install ifpa-api
Requires Python 3.11+.
Quick Start
from ifpa_api import IfpaClient
# Initialize (uses IFPA_API_KEY environment variable)
client = IfpaClient()
# Get player by ID
player = client.player.get(2643)
print(f"{player.first_name} {player.last_name}")
# Access stats
stats = player.player_stats["system"]["open"]
print(f"WPPR Rank: {stats['current_rank']}")
# Search with filters
results = client.player.search("John") \
.country("US") \
.state("CA") \
.limit(10) \
.get()
# Get rankings
rankings = client.rankings.wppr(count=100)
for entry in rankings.rankings[:10]:
print(f"{entry.rank}. {entry.player_name}")
# Get tournament results
results = client.tournament(67890).results()
for result in results.results[:5]:
print(f"{result.position}. {result.player_name}: {result.points} pts")
Features
- Type-safe: Full type hints and Pydantic validation with IDE autocomplete
- Fluent API: Chainable query builder for complex searches
- 46 Endpoints: Complete IFPA API v2.1 coverage across 7 resources
- Automatic Pagination: Memory-efficient iteration with
.iterate()and.get_all() - Enhanced Errors: Structured exceptions with request context for debugging
- 99% Test Coverage: Comprehensive unit and integration tests
Resources
- Players — Search, profiles, rankings, tournament results, head-to-head
- Tournaments — Search, details, results, formats
- Rankings — WPPR, women, youth, country, age-based
- Series — Circuit standings, player cards, region data
- Stats — Overall metrics, largest tournaments, player activity
- Directors — Search, tournament listings
Documentation
Full documentation: https://johnsosoka.github.io/ifpa-api-python/
- Quick Start Guide
- API Reference
- Practical Examples
- Migration Guide (0.2.x → 0.4.x)
License
MIT License — see LICENSE file.
Not affiliated with or endorsed by IFPA.
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 ifpa_api-0.4.5.tar.gz.
File metadata
- Download URL: ifpa_api-0.4.5.tar.gz
- Upload date:
- Size: 53.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
341e0ed13d37f141f05e0396ce5f49637a5a72c073d782530bb26a18ce598549
|
|
| MD5 |
7a26f75c95dba931c2758a0c56a8cb34
|
|
| BLAKE2b-256 |
c145e5a76e5739bd646dfa9be172b3bda87f196ff46bf9a21b49c0024b5c93c8
|
Provenance
The following attestation bundles were made for ifpa_api-0.4.5.tar.gz:
Publisher:
publish.yml on johnsosoka/ifpa-api-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ifpa_api-0.4.5.tar.gz -
Subject digest:
341e0ed13d37f141f05e0396ce5f49637a5a72c073d782530bb26a18ce598549 - Sigstore transparency entry: 1339295953
- Sigstore integration time:
-
Permalink:
johnsosoka/ifpa-api-python@99d52819f2da460f7578463af13f36d8f9779d2c -
Branch / Tag:
refs/tags/v0.4.5 - Owner: https://github.com/johnsosoka
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@99d52819f2da460f7578463af13f36d8f9779d2c -
Trigger Event:
push
-
Statement type:
File details
Details for the file ifpa_api-0.4.5-py3-none-any.whl.
File metadata
- Download URL: ifpa_api-0.4.5-py3-none-any.whl
- Upload date:
- Size: 73.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccdf701fb63ccc8c01cb351d966f81d70bb4498b232f7fead79b713fd1f52a0f
|
|
| MD5 |
76723414d96b6059b27e1e8022c8abbc
|
|
| BLAKE2b-256 |
3258e5b93bc88d48efc842a7e167fb2166671a07c7c4cdea9c0e1b134f797775
|
Provenance
The following attestation bundles were made for ifpa_api-0.4.5-py3-none-any.whl:
Publisher:
publish.yml on johnsosoka/ifpa-api-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ifpa_api-0.4.5-py3-none-any.whl -
Subject digest:
ccdf701fb63ccc8c01cb351d966f81d70bb4498b232f7fead79b713fd1f52a0f - Sigstore transparency entry: 1339295954
- Sigstore integration time:
-
Permalink:
johnsosoka/ifpa-api-python@99d52819f2da460f7578463af13f36d8f9779d2c -
Branch / Tag:
refs/tags/v0.4.5 - Owner: https://github.com/johnsosoka
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@99d52819f2da460f7578463af13f36d8f9779d2c -
Trigger Event:
push
-
Statement type: