To import sports scores into WordPress, connect a sports data API as a provider in Ingestics, map the teams, score, and match status to post fields, and schedule fetches around game days. Free tier handles the connection and manual fetches; Lite makes match results publish themselves.
This post covers the data side — getting fixtures and results onto your site reliably. If you are building a full coverage site with news around the scores, see the sports news aggregator build.
Where do you get sports scores data?
API-Football, TheSportsDB, and football-data.org are common starting points; most leagues and sports have an equivalent. Check three things:
- Coverage — does the free plan include your league and season?
- Endpoints — you want a fixtures/results endpoint filtered by league and date, returning JSON.
- Terms — free plans usually allow fan sites; confirm before publishing commercially.
Grab the API key and note the endpoint that returns “matches for league X on date Y” — that is the one you will automate.
How do you add the sports provider in Ingestics?
In Ingestics → Providers, add an API provider with the fixtures endpoint. Most sports APIs authenticate with an API key header (X-RapidAPI-Key or similar) — add it as a custom header with API-key auth, stored encrypted.
Use the call preview to inspect the response and find the collection path (often response or matches). Each item is one match with teams, scores, status, and kickoff time.
How do you map match data to post fields?
A results post needs:
- Home team + away team → post title (“Arsenal 2–1 Chelsea”)
- Score and match events → content
- Kickoff or full-time timestamp → publish date
- Competition name → category (Lite’s dynamic category mapping can assign this from the data)
On Free, JSON-path mapping builds this directly. Lite’s Post Template Builder makes the title pattern reusable — set “{{home}} {{score}} {{away}}” once instead of assembling it per provider.
How do you avoid publishing half-finished matches?
The classic failure is importing a fixture at 0–0 kickoff and never updating it. Three defenses:
- Filter by status. Most APIs expose a
statusfield (FT,finished). Fetch only finished matches, or use Pro’s content filters to drop anything not full-time. - Fetch after the round ends. Schedule the results fetch for late evening on match days rather than every hour all day.
- Sync updates (Pro). The Advanced Sync Engine matches an existing match post by external ID and updates it — so a live-score post corrects itself at full-time instead of duplicating.
Duplicate detection on every tier stops the same match creating two posts across repeated fetches.
How do you schedule around game days?
Lite’s cron intervals cover the steady case: hourly on weekends, daily midweek. Pro’s custom scheduling frequencies fit real fixture calendars — tight intervals on match days, quiet otherwise. Rotation (Lite) spreads multiple league providers across the schedule so they do not all hit their APIs at once.
How do you display scores on your site?
Lite unlocks the [auto_api_feed] shortcode, the Gutenberg block, and a grid layout — a results grid grouped by competition category is the standard pattern. Business adds a ticker layout for a scrolling scores strip. Shortcode details are in the documentation.
Which Ingestics tier does this workflow need?
- Free — 3 API providers, manual fetch after each round, basic mapping.
- Lite — scheduled game-day fetches, dynamic category mapping, template builder, frontend display.
- Pro — status filters, custom match-day frequencies, sync-in-place score updates.
Scores pair naturally with other live feeds like weather data; the underlying mechanics are covered in the REST API import guide, and the use cases hub lists more automated publishing workflows.
Let the scores publish themselves
Connect a sports data API free with Ingestics and import your first match round in Draft mode. Add Lite for automatic game-day updates.
See Pricing