MLS Standings Scraper avatar

MLS Standings Scraper

Pricing

from $7.50 / 1,000 results

Go to Apify Store
MLS Standings Scraper

MLS Standings Scraper

Scrapes MLS standings from MLSsoccer.com by season and conference. Returns each row with team, points, wins, losses, draws, goals for, goals against, and goal difference.

Pricing

from $7.50 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

3

Monthly active users

11 days ago

Last modified

Categories

Share

ParseForge

MLS Standings Scraper

Scrape MLS standings from any season, conference, or team, up to a million rows per run. Every row comes with points, wins, losses, draws, goals for and against, goal difference, and playoff position. No login or API key. Export to CSV, JSON, Excel, or XML.

MLS standings live on the league's official site, but there is no public API and copying tables by hand is slow and error-prone. This Actor reads the standings pages directly, filtered by season and conference, and returns each row in one fixed schema. It works for the current season and any past season the site still lists.

Who uses itWhat they scrape MLSsoccer.com for
Sports analystsCompare team performance across seasons to spot trends
Fantasy soccer playersPull current standings to inform weekly lineup decisions
Sports journalistsGather standings data for match previews and recaps
Betting modelersFeed standings into predictive models for match outcomes
MLS fansTrack their team's position in the conference race

What it does

This Actor collects MLS standings rows by season and conference, and returns each one as a flat row with team, points, wins, losses, draws, goals, and goal difference.

  • ๐Ÿ“… Season selector: pick any season year, from the inaugural 1996 season to the current one.
  • ๐Ÿ† Conference filter: choose both conferences, Eastern only, or Western only.
  • ๐Ÿ”ข Row cap: set a maximum number of standings rows to collect per run, from 1 to 1,000,000.
  • ๐Ÿ“Š Flat output: every row is a flat object with team, points, wins, losses, draws, goals for, goals against, and goal difference.
  • ๐Ÿ“ Multiple formats: export to CSV, JSON, Excel, or XML with one click.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with MLSsoccer.com data

๐Ÿ“ˆ Track playoff races.

A sports analyst runs the Actor weekly for the current season, filters by conference, and charts each team's points and goal difference to see who is pulling away.

๐Ÿ“Š Build a historical dataset.

A data scientist runs the Actor for every season from 2010 to 2025, exports to CSV, and trains a model that predicts final standings from early-season results.

๐Ÿ“ฐ Power match previews.

A journalist pulls the latest standings before a rivalry match and uses the points and goal difference to frame the stakes in the article.

๐ŸŽฎ Update a fantasy league dashboard.

A developer schedules the Actor to run every Monday, then feeds the JSON into a dashboard that shows each fantasy team's real-life club position.

๐Ÿ“‰ Spot slumps and surges.

A fan runs the Actor for the last five seasons, filters to their team's conference, and compares wins and losses to see if the current form is an outlier.

Why choose this scraper

What you get
No API keyReads the public standings pages directly, no registration or OAuth.
Any seasonWorks for the current season and any past season the site still lists.
Conference filterGet Eastern, Western, or both conferences in one run.
Flat schemaEvery row has the same fields, so you can append runs and build a time series.

How it compares

No other Store actor targets MLSsoccer.com the same way, so the honest comparison is with the alternatives teams actually weigh.

MLS Standings ScraperBuild it in-houseBy hand
SetupRun it now, zero configDays of engineeringNone, but hours per pull
When MLSsoccer.com changesMaintained for youYou fix itYou re-learn the page
Proxies, retries, anti-botBuilt inYour problemBrowser only
OutputFixed JSON schema, CSV/Excel exportWhatever you buildCopy-paste
CostPay per resultEngineering timeAnalyst hours

Configure the run

Drive the Actor with a season year and an optional conference filter, and set a maximum number of rows to collect per run. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10
}

A larger pull:

{
"maxItems": 200
}

Pricing

Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$0.85
1,000 results$8.50
10,000 results$85.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the MLS Standings Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to MLSsoccer.com through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/mlssoccer-standings-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check the season year. If you set a season that the MLS site does not list, the Actor will return an empty dataset. Try the current year or a known past season like 2024.

Why does the run stop before collecting all rows?

The maxItems input caps the number of rows. Increase maxItems up to 1,000,000 if you need more rows.

Why are some teams missing from the standings?

The MLS site may not list every team in every season, especially for older seasons. The Actor returns exactly what the site shows.

Why does the conference filter return no rows?

Make sure you spelled the conference correctly: 'eastern', 'western', or 'both'. The input is case-sensitive.

Why is the data different from what I see on the MLS website?

The Actor reads the page at the moment of the run. If the site updated after your run, run the Actor again to get the latest standings.

FAQ

QuestionAnswer
Does this scrape the current MLS season?Yes. If you leave the season field empty, it defaults to the current year. You can also set any past season year that the site still lists.
Can I get only the Eastern Conference standings?Yes. Set the conference input to 'eastern' and the Actor will return only Eastern Conference rows. You can also choose 'western' or 'both'.
What fields does each standings row include?Each row includes the team name, conference, points, wins, losses, draws, goals for, goals against, and goal difference. The exact field list is shown in the sample output below.
Is there a limit on how many rows I can scrape?You can set maxItems from 1 to 1,000,000. The default is 10. The Actor stops after collecting that many rows.
Do I need an API key or login?No. The Actor reads the public standings pages on MLSsoccer.com directly. No registration or OAuth is required.
Can I export the data to Excel?Yes. After a run finishes, you can export the dataset to CSV, JSON, Excel, or XML from the Apify platform.
Does this work for past seasons?Yes, as long as the MLS website still lists standings for that season. Most seasons back to 1996 are available.
How often is the data updated?The Actor reads the live page on each run, so the data is as current as the MLS website. Schedule it to run daily or weekly for fresh standings.
Can I filter by team?The input schema does not have a team filter. You can filter by season and conference, then filter the output rows by team name in your own code or spreadsheet.
What is the output format?Each row is a flat JSON object. When you export, you can choose CSV, JSON, Excel, or XML.

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Major League Soccer, L.L.C. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.