Grassroots Football League Tracker (FA Full-Time)
Pricing
from $35.00 / 1,000 results
Grassroots Football League Tracker (FA Full-Time)
Scrapes FA Full-Time grassroots football leagues effortlessly. Automatically extracts live league tables, match results, and upcoming fixtures into structured JSON dataset. Ideal for football data analytics, tracking local clubs, and automated sports reporting. Built with Playwright.
Pricing
from $35.00 / 1,000 results
Rating
0.0
(0)
Developer
Parviz Abbasov
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
FA Full-Time (fulltime.thefa.com) is the league-management system behind 800+ English grassroots and youth football leagues — but it has no public API, and the two previous Apify Actors that scraped it are both now marked deprecated. This one tracks league tables, results, and fixtures directly from a league's own FA Full-Time page.
Built for club webmasters who want to auto-populate their own site, local league newsletters, parents/players who want a results feed without checking a clunky admin system, and anyone building a grassroots-football app or bot.
How it works
Give it the FA Full-Time page URL for your league (find it by visiting fulltime.thefa.com, searching for your league, and copying the URL). The Actor fetches that page and extracts:
- League table — position, played, won, drawn, lost, goal difference, points (and goals for/against, on leagues that show them).
- Recent results — date, teams, score.
- Upcoming fixtures — date, teams (optional).
Turn on monitoring mode to schedule this weekly and get only the results that are new since your last run — a genuine "new result posted" feed rather than re-downloading the whole table every time.
Why text-pattern matching, not fixed CSS selectors
FA Full-Time is an older system, and its exact page markup has varied across different leagues and over the years. Rather than hard-code one specific set of CSS class names (which breaks the moment a page differs even slightly), this Actor identifies the league table by its column headers ("Pos", "Team", "Pts") and identifies results/fixtures by their content pattern (a date, plus either a score or "vs") wherever they appear on the page. This is more resilient to the inconsistencies across different league templates than a brittle selector would be — though see Limitations below for what that trade-off means in practice.
Input
| Field | Type | Default | Description |
|---|---|---|---|
leagues | array | 1 example league | Each entry: name, url (the FA Full-Time page for that league). |
onlyNewResultsSinceLastRun | boolean | false | Monitoring mode: only return (and charge for) new results. |
includeFixtures | boolean | true | Also extract upcoming fixtures. |
requestTimeoutMs | integer | 20000 | Page fetch timeout. |
Output
{"leagueName": "South London Grassroots Football League - Premiership","sourceUrl": "https://fulltime.thefa.com/index.html?league=934030649","table": [{ "position": 1, "team": "Croydon Eagles", "played": 8, "won": 6, "drawn": 2, "lost": 0, "goalsFor": null, "goalsAgainst": null, "goalDifference": 31, "points": 20 }],"results": [{ "date": "21/07/23", "homeTeam": "Peckham Dragons", "homeScore": 0, "awayTeam": "Warriors", "awayScore": 8 }],"fixtures": [{ "date": "01/07/23", "homeTeam": "Brixton Pumas", "awayTeam": "Peckham Dragons" }],"scrapedAt": "2026-09-18T10:00:00.000Z"}
goalsFor/goalsAgainst are null on leagues whose table doesn't display them — this varies by league, not by a setting.
Pricing
Pay-per-event:
- A small flat fee per run.
- Per league checked — reflects that this does real HTML parsing against a legacy site, not a simple API call.
- Per new result found — only charged in monitoring mode, when a result wasn't seen on a previous run. This is the ongoing "results feed" value.
Limitations
- FA Full-Time only. Doesn't cover other grassroots league platforms, or professional/semi-professional leagues (see any of the many Flashscore/SofaScore-style Actors on the Store for those).
- Results/fixtures parsing is best-effort. The league table is well-structured and reliably parsed. The results/fixtures list format has shown more variation across different league pages historically — if a specific league's results don't come through, please report the league URL so the pattern can be extended.
- No historical seasons or cup competitions in this version — this tracks whatever the given URL currently shows.
- You provide the URL. This Actor doesn't search FA Full-Time's league directory for you; you'll need to find your league's URL once, the same way you'd bookmark it in a browser.
API usage example
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("YOUR_USERNAME/grassroots-football-tracker").call(run_input={"leagues": [{"name": "My League", "url": "https://fulltime.thefa.com/index.html?league=123456"}],"onlyNewResultsSinceLastRun": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["leagueName"], "-", len(item["results"]), "new result(s)")