Discover/NWSL Soccer API
live

NWSL Soccer APInwslsoccer.com

Access NWSL match results, event-level data with xG, player statistics, and news articles via 4 endpoints. Covers goals, cards, assists, passing accuracy, and more.

This API takes change requests — .
Endpoint health
verified 7d ago
get_news
list_matches
get_player_stats
get_match_details
4/4 passing latest checkself-healing
Endpoints
4
Updated
28d ago

What is the NWSL Soccer API?

The NWSL API gives developers access to 4 endpoints covering the National Women's Soccer League: news articles, season match listings, per-match event data, and detailed player statistics. The get_match_details endpoint returns event-by-event breakdowns — goals, cards, substitutions — alongside team-level expected goals (xG). The get_player_stats endpoint surfaces per-player metrics including goals, assists, xG, passing accuracy, and tackles across a full season.

Try it
Number of news articles to retrieve.
api.parse.bot/scraper/e58759f6-a60d-41d8-9f14-20e3e617ca1e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/e58759f6-a60d-41d8-9f14-20e3e617ca1e/get_news?limit=5' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace nwslsoccer-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: NWSL API — news, season matches, match details, player stats."""
from parse_apis.nwsl_api import NWSL, SeasonId, MatchNotFound

client = NWSL()

# Latest news articles
for article in client.articles.list(limit=3):
    print(article.title, article.url)

# Construct a season and list its matches
season = client.season(season_id=SeasonId.NWSL__FOOTBALL_SEASON__FAD050BEEE834DB88FA9F2EB28CE5A5C)
match = season.matches(limit=1).first()

# Drill into match details (events + xG) via the match instance
if match:
    print(match.home.short_name, match.home_score, "-", match.away_score, match.away.short_name)
    detail = match.details()
    print(detail.xg_stats.home_xg, detail.xg_stats.away_xg)
    for event in detail.events[:3]:
        print(event.type, event.description)

# Player stats for the season
for player in season.player_stats(limit=3):
    print(player.first_name, player.last_name, player.team.short_name, player.role_label)

# Typed error handling — attempt to fetch details on a match with bad data
try:
    detail = match.details()
    print(detail.match_id)
except MatchNotFound as exc:
    print(f"Match not found: {exc.match_id}")

print("exercised: articles.list / season.matches / match.details / season.player_stats")
All endpoints · 4 totalmissing one? ·

Extract latest news articles from the NWSL website. Returns article titles and URLs. Fields such as description, image_link, and date may be null depending on upstream data availability.

Input
ParamTypeDescription
limitintegerNumber of news articles to retrieve.
Response
{
  "type": "object",
  "fields": {
    "news": "array of news article objects with title, description, image_link, url, and date fields"
  },
  "sample": {
    "data": {
      "news": [
        {
          "url": "https://www.nwslsoccer.com/news/nwsl-announces-may-best-xi-of-the-month-presented-by-amazon-prime-x0098",
          "date": null,
          "title": "NWSL Announces May Best XI of the Month, Presented by Amazon Prime",
          "image_link": null,
          "description": null
        }
      ]
    },
    "status": "success"
  }
}

About the NWSL Soccer API

Match Data and xG Statistics

The get_match_details endpoint takes a match_id (and optionally a season_id) and returns two main structures: an events array and an xg_stats object. Each event carries a type, time, description, label, and xg value — note that time and xg on individual events may be null depending on data availability. The xg_stats object provides home_xg and away_xg as numeric values for the full match. Match IDs follow the format nwsl::Football_Match::{hash} and can be retrieved from list_matches.

Season Schedules and Player Stats

The list_matches endpoint accepts a season_id parameter (e.g. nwsl::Football_Season::fad050beee834db88fa9f2eb28ce5a5c) and defaults to the current season when omitted. It returns a competition object with metadata — season name, competition ID, and date range — plus a matches array with each match's matchId, status, matchDateUtc, home/away team details, and scores. An invalid season_id will produce an upstream error rather than an empty result.

The get_player_stats endpoint returns a paginated players array. Each player object includes playerId, name, team info, position, and a stats array where each entry has a statsId, statsLabel, and statsValue. Supported stats span attacking (goals, assists, xG), distribution (passing accuracy), and defending (tackles). The limit parameter controls how many player records are returned.

News Coverage

The get_news endpoint retrieves recent NWSL news articles with title, description, image_link, url, and date fields. The description, image_link, and date fields may be null depending on how the article was published. A limit parameter controls the number of articles returned.

Reliability & maintenanceVerified

The NWSL Soccer API is a managed, monitored endpoint for nwslsoccer.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nwslsoccer.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official nwslsoccer.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7d ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a live NWSL match tracker displaying goals and cards using the events array from get_match_details.
  • Compare team attacking efficiency by plotting home_xg vs away_xg across a full season's matches.
  • Create a player performance leaderboard ranked by xG, assists, or passing accuracy from get_player_stats.
  • Populate a season fixture calendar using match dates, team names, and statuses from list_matches.
  • Feed an NWSL news aggregator or alert system with article titles and URLs from get_news.
  • Analyze substitution patterns and card frequency per team using typed events from match event arrays.
  • Track a specific player's stats across multiple seasons by querying get_player_stats with different season_id values.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does NWSL have an official developer API?+
NWSL does not publish a public developer API or developer documentation for third-party access to its match, player, or stats data.
What does `get_match_details` return beyond the score?+
It returns a full events array — each entry typed as a goal, card, or substitution — with time, description, label, and per-event xg values where available. It also returns an xg_stats object with aggregate home_xg and away_xg for the match. Note that time and xg on individual events can be null.
How do I get a valid `match_id` or `season_id`?+
Both identifiers use a namespaced format: nwsl::Football_Match::{hash} and nwsl::Football_Season::{hash}. Season IDs and match IDs are returned by list_matches, which defaults to the current season if no season_id is passed. Passing an invalid season_id returns an upstream error rather than an empty response.
Does the API cover historical seasons beyond the current one?+
Yes — list_matches and get_player_stats both accept a season_id parameter, so historical seasons can be queried as long as you have the corresponding season identifier. The get_news endpoint does not accept a date or season filter; it returns the most recent articles up to the specified limit.
Does the API include playoff brackets, standings tables, or team rosters?+
Not currently. The API covers match events, season schedules, player statistics, and news articles. You can fork it on Parse and revise to add endpoints for standings, playoff structure, or team roster data.
Page content last updated . Spec covers 4 endpoints from nwslsoccer.com.
Related APIs in SportsSee all →
mlssoccer.com API
Access live MLS soccer scores, match schedules, and detailed game information across all major competitions including the Regular Season, US Open Cup, and CONCACAF Champions Cup. Retrieve real-time match data and comprehensive details for any MLS team.
soccerstats.com API
Access comprehensive soccer statistics including live league tables, match details, team performance metrics, and form rankings across multiple football leagues. Search for specific teams and analyze their season statistics, head-to-head records, and competitive standings to stay informed on the latest soccer data.
psl.co.za API
Access real-time South African Premier Soccer League data including live scores, fixtures, results, standings, and match details. Search for clubs, news articles, and other PSL information to stay updated on the league.
footystats.org API
Get live football scores, team performance metrics, league standings, and head-to-head match statistics all in one place. Search teams and leagues to access detailed player stats, comprehensive analytics, and in-depth performance data across football competitions worldwide.
whoscored.com API
Search for players and teams, then dive deep into their performance metrics, match statistics, and detailed passing data to analyze football games and player abilities. Get comprehensive insights on team performance, individual player stats, and play-by-play event information to power your football analysis and decision-making.
wnba.com API
Get detailed WNBA team playoff schedules and game scores, including series information and comprehensive game details for all teams. Track playoff matchups, results, and series progression throughout the postseason.
statshub.com API
Access detailed football match statistics including xG, xGA, and possession metrics across multiple leagues, plus retrieve fixtures by date and current league standings. Get comprehensive season-level and match-level performance data to analyze team and player statistics in depth.
afl.com.au API
Access live AFL match scores, team standings, player statistics, and fixture schedules directly from official sources. Search player profiles, view news updates, and track competition rounds and seasons all in one place.