Log daily football results and league standings to Sheets

Every morning, automatically record yesterday's match results and each league's latest table into a spreadsheet you can chart or pivot.

Deterministic Code
API-SportsGoogle SheetsPersonal ProductivityOperationsData SyncResearch & Monitoring
PromptCreate

Every morning at 7am, automatically log yesterday's football results and today's league standings from API-Sports into Google Sheets, so I build a season-long record I can chart or pivot. This is a deterministic fetch-and-append logging job: loop over my leagues, fetch, map fields, and append. No summarizing or judgement.

Trigger: run on a cron schedule every day at 7:00am in my timezone. Keep a fixed list of the leagues I track at the top of the workflow so I can edit it. Each league is identified by its API-Sports league ID and the current season, which is a 4-digit starting year (for example season 2025 for the 2025/26 campaign).

Step 1, yesterday's results. For each tracked league, call API-Sports 'List Fixtures (Live, By Date, League, or Team)' filtered by that league ID, the season, and yesterday's date in YYYY-MM-DD format for my timezone. Keep only fixtures whose status is finished (FT, AET, or PEN). For every finished match, append one row to the Results tab of my Google Sheet using Google Sheets 'Append Values', with these columns: match date, league name, home team, away team, final score written as home goals - away goals, and status. If a league returns zero fixtures for yesterday (results is 0), skip it and append nothing for that league.

Step 2, standings snapshot. For each tracked league, call API-Sports 'Get Standings' for the league ID and season. For every team in the returned table, append one row to the Standings tab using Google Sheets 'Append Values', with these columns: today's date as the snapshot date, league name, position or rank, team name, points, goal difference, and recent form. Tagging every row with today's date is what lets me chart a team's position over time; a one-off standings table cannot do that.

Notes: API-Sports is read-only and returns data inside a response array with a results count, so treat results:0 as a valid empty answer, not an error. When appending, use the option that parses input like the Sheets UI (USER_ENTERED) so dates and numbers land as real dates and numbers. Always append after the last row of each tab so the history accumulates and nothing already logged is overwritten.

What does this prompt do?

  • Each morning, pulls yesterday's finished matches for the leagues you follow and adds a row for every game with the date, both teams, the final score, and the result status.
  • Takes a fresh snapshot of each league's table and records every team's position, points, goal difference, and recent form, stamped with the date.
  • Builds a season-long history in your own spreadsheet, so you can chart or pivot how a team's position and points change week to week.
  • Runs hands-free on a schedule and only adds new rows, so nothing you already logged gets changed or overwritten.

What do I need to use this?

  • An API-Sports account (the free plan works for a few leagues checked once a day) to fetch football results and standings.
  • A Google account with a spreadsheet that has a results tab and a standings tab.
  • The list of leagues you want to follow and the current season year.

How can I customize it?

  • Change which leagues and which season year you track.
  • Adjust what time it runs each morning and the time zone used to decide what counts as 'yesterday'.
  • Rename the results and standings tabs or choose which columns get recorded.

FAQs

Which leagues can I track?
Any football league or cup covered by API-Sports, including the Premier League, La Liga, Serie A, the Bundesliga, and the Champions League, among many others. You just list the ones you care about.
Do I need a paid API-Sports plan?
The free plan is usually enough for a handful of leagues checked once a day. If you follow a lot of leagues you may need a higher tier to cover the extra daily lookups.
Will this overwrite my existing spreadsheet data?
No. It only adds new rows to the bottom of each tab, so your history keeps growing and nothing you already logged is touched.
What happens on days with no matches?
If a league had no finished games yesterday, it is simply skipped and no empty rows are added for it.
Why record the standings every single day?
Saving a dated snapshot each day lets you chart how a team's position, points, and form move across the season, which a single live table can never show you.

Related templates

Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Turn each week's football fixtures into a venue staffing plan

Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.

API-Sports
Google Calendar
Slack
Agentic Task
Flag VIP client emails in Zoho Mail and alert your team

Keep a spreadsheet of your most important senders, and every email from one gets labeled, posted to your team channel, and logged automatically.

Zoho Mail
Google Sheets
Slack Bot
Deterministic Code
Send Yotpo review requests when Shopify orders ship

The moment an order is fulfilled, we register it with Yotpo so the review request is timed off real delivery, and we log every sync so failures never go unnoticed.

Shopify
Yotpo
Google Sheets
Deterministic Code

Stop copying football scores into a spreadsheet by hand.

Let this workflow log yesterday's results and today's league tables every morning, so you always have a season-long record ready to chart or pivot.