Skip to main content

itscalledsoccer


standard-readme compliant PyPI Version PyPI - Python Version Python tests License: MIT PyPI download month OpenSSF Baseline codecov

Table of Contents


Background

itscalledsoccer is a Python wrapper around the American Soccer Analysis API, providing programmatic access to advanced soccer analytics across North American leagues.

What you can measure:

  • Expected Goals (xG) — Shot quality and finishing efficiency
  • Expected Passes (xPass) — Pass difficulty and creative play
  • Goals Added (g+) — Total value contribution of players
  • Salaries — MLS salary and spend data

The API is free and public — no authentication required.

Supported leagues:

Code League
mls Major League Soccer
nwsl National Women's Soccer League
uslc USL Championship
usl1 USL League One
usls USL Super League
nasl North American Soccer League (historical)
mlsnp MLS Next Pro

Useful links:


Features

  • 15 API methods covering players, teams, games, and advanced statistics
  • Substring name matching — search by partial names or abbreviations ("LA", "Vela")
  • Type hints — full type annotations on all public methods
  • Consistent interface — same patterns across all 7 leagues

Installation

Stable Release

pip install itscalledsoccer

Development Version

git clone https://github.com/American-Soccer-Analysis/itscalledsoccer.git
cd itscalledsoccer
pip install -e ".[dev]"

Requirements: Python 3.10+, requests, polars, cachecontrol


Quick Start

from itscalledsoccer import AmericanSoccerAnalysis

# Initialize client (no authentication required)
asa = AmericanSoccerAnalysis()

# Get all USLC players
uslc_players = asa.get_players(leagues="uslc")

# Get Expected Goals (xG) data for 2023
xg_data = asa.get_player_xgoals(
    leagues="uslc",
    season_name="2023"
)

For the complete method reference, see Usage Examples below.


Usage Examples

Entities

Retrieve core soccer entities with optional filtering:

# Same interface for all entity types
uslc_players = asa.get_players(leagues="uslc")
teams = asa.get_teams(leagues=["uslc", "nwsl"])
stadia = asa.get_stadia()
managers = asa.get_managers(leagues="uslc")
referees = asa.get_referees(leagues=["uslc", "mls"])

Available entities: players, teams, stadia, managers, referees


Games

# Get games for a specific league and season
uslc_2024_games = asa.get_games(leagues="uslc", seasons="2024")

# Filter by team
lou_games = asa.get_games(leagues="uslc", team_names="Louisville City")

Player Statistics

Expected Goals (xG)

Expected Goals measures the quality of shot chances a player creates or faces.

xg = asa.get_player_xgoals(
    leagues="uslc",
    season_name="2025",
    minimum_minutes=900
)

Available filters: minimum_minutes, minimum_shots, minimum_key_passes, shot_pattern, split_by_teams, split_by_seasons, split_by_games, general_position

Expected Pass (xPass)

Expected Pass measures pass difficulty and creative play value.

xpass = asa.get_player_xpass(
    leagues="uslc",
    minimum_minutes=900
)

Goals Added (g+)

Goals Added measures total value contribution across all actions.

gplus = asa.get_player_goals_added(
    leagues="uslc",
    above_replacement=True
)

Note: Goalkeeper statistics use the same interface — get_goalkeeper_xgoals() and get_goalkeeper_goals_added().


Team Statistics

# Team Expected Goals
team_xg = asa.get_team_xgoals(
    leagues="uslc",
    split_by_seasons=True
)

# Team Expected Pass
team_xpass = asa.get_team_xpass(
    leagues=["uslc", "nwsl"],
    split_by_seasons=True
)

# Team Salaries (MLS only)
team_salaries = asa.get_team_salaries(
    leagues="mls",
    split_by_teams=True
)

Team-specific filters: home_only, away_only, home_adjusted, even_game_state, zone (1-30), gamestate_trunc (-2 to 2)


Advanced Usage

Substring Name Matching

Search by case-insensitive substrings. Returns the first matching entity:

# Player names
asa.get_players(names="Carlos Vela")

# Team names
asa.get_teams(names="LA")

API Reference

Complete documentation: american-soccer-analysis.github.io/itscalledsoccer/reference

The reference includes:

  • All 15 methods and their parameters
  • Complete field descriptions for each endpoint
  • Type signatures and defaults

Common questions:

  • No API key needed? Correct — the API is public and free.
  • Why is my query slow? Large queries may take a moment. Subsequent identical queries are cached.
  • What do the metrics mean?
    • xG: Shot quality (0-1 per shot)
    • xPass: Pass completion probability (0-1)
    • g+: Measures a player's total on-ball contribution in attack and defense

For detailed methodology, see American Soccer Analysis.


Other Versions


Contributing

See CONTRIBUTING.md for code of conduct, development setup, pull request process, and issue reporting.


License

MIT © itscalledsoccer authors

Metadata

Release files for itscalledsoccer 2.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for itscalledsoccer 2.3.0
File Size Uploaded
itscalledsoccer-2.3.0.tar.gz 19.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for itscalledsoccer 2.3.0
File Interpreter ABI Platform
itscalledsoccer-2.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 32.1 kB

Release files / itscalledsoccer-2.3.0.tar.gz

Download URL itscalledsoccer-2.3.0.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9aeb7ea9e321f498e7004b07a132b3707bb7ce1bb63fd21f50c902d8f94b6a9f
BLAKE2b-256 checksum
How to use checksums
c9ac9f3552a274d63216728c1154a34ada6b6463991cec7bf774650e6686c1ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / itscalledsoccer-2.3.0-py3-none-any.whl

Download URL itscalledsoccer-2.3.0-py3-none-any.whl
Size 12.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e00316b0228f1d1122e0017fdaf4e42232a880c44a1eeff5aa25830e5da65bc0
BLAKE2b-256 checksum
How to use checksums
eb22757ff82dd0e6ab49eb16b1f9a5d7b74256df8ae4c908e351759b0ca95e58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.3.0 This release

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

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