Real-time soccer data for developers

Live Soccer Scores API for Real-Time Match Updates

Add live soccer scores, goal notifications, match events, injury time, cards, substitutions, penalties and VAR decisions to websites, mobile apps, fantasy platforms, media products and analytics tools.

Live Scores Goal Events REST API WebSocket
Live Match Events Status
{
  "match_id": "match_74021",
  "status": "live",
  "period": "second_half",
  "minute": 67,
  "injury_time": 0,
  "score": {
    "home": 2,
    "away": 1
  },
  "last_event": {
    "type": "goal",
    "team_id": "team_18"
  }
}
Receive Goal Alerts Goals, cards, penalties and VAR
Track Match Time Periods, stoppage and injury time
Live soccer data in one integration

What Is a Live Soccer Scores API?

A Live Soccer Scores API gives applications structured access to matches currently in progress. Instead of collecting scores manually or extracting information from public scoreboards, your application can request or receive machine-readable match data and display it in its own interface.

Live data can support scoreboards, match centres, mobile notifications, fantasy platforms, media websites, broadcast graphics, sportsbook interfaces, analytics dashboards and automated workflows.

Exact competitions, event types, update methods and historical depth depend on confirmed API coverage and the selected plan.

Live Soccer Data Available to Your Application

Current Score

Display home and away scores, halftime scores, extra-time scores and penalty-shootout results where available.

Match Clock

Track the current period, match minute, stoppage time, injury time and completed match phases.

Goal Notifications

Process goals, own goals, disallowed goals, scorers, assists and score changes as structured events.

Cards and Discipline

Receive yellow cards, second yellow cards, red cards and supported disciplinary event context.

Substitutions

Show players entering and leaving the pitch, substitution time and affected team.

VAR Decisions

Update live timelines when supported video-review events confirm, overturn or modify a match decision.

Penalties

Process awarded, scored and missed penalties with player, team and match-minute context.

Live Match Statistics

Display possession, shots, shots on target, corners, cards, passes, saves and other supported match statistics.

Line-Ups and Formations

Connect confirmed starting line-ups, substitutes, positions and formations to the live match.

REST API vs WebSocket for Live Soccer Scores

REST is suitable for retrieving the complete current match state. WebSocket streaming is better suited to applications that need incremental live events without repeatedly polling every endpoint.

Requirement REST API Live delivery
WebSocket
How data is received Request or stream Request and response Persistent event stream
Best suited to Common implementation use Fixtures, match state, scorecards and historical data Goals, cards, substitutions, VAR and match-status changes
Update pattern How changes reach the application Polling at a controlled interval Server pushes new events
Recovery after failure Recommended pattern Request the latest state again Reconnect, then reconcile using REST
Recommended architecture Production pattern Source of complete match state Source of incremental live changes
Match lifecycle

Soccer Match Status and Injury Time

A production application should treat match status as structured data rather than assuming every fixture moves directly from scheduled to live and then full time.

Status What it means Recommended interface behaviour
Scheduled The match has not started. Show kickoff time, competition, teams and venue.
Delayed The planned kickoff has been postponed temporarily. Display the latest delay status and revised time if known.
First Half Play is in the first regulation period. Show the live score, minute and active match events.
Halftime The first half has ended. Show the halftime score and first-half statistics.
Second Half Play is in the second regulation period. Continue live score, minute and event updates.
Injury Time Additional time is being played at the end of a period. Show regulation minute and added-time information clearly.
Extra Time A knockout match has moved beyond regulation time. Show extra-time period and score separately where needed.
Penalty Shootout The match is being decided by penalties. Display shootout events and penalty score.
Full Time The match has ended with a confirmed result. Replace live indicators with final result and statistics.
Postponed or Cancelled The match will not proceed at the original time. Show the official status without inventing a result.
Real-time match events

Goal, Card, VAR and Substitution Events

Live match events should be identified by stable event IDs and applied only once. This prevents duplicate goals, cards or substitutions after a reconnect or repeated delivery.

Goal Event

May include scorer, assister, team, minute, injury time, score after the event and goal status.

Card Event

May include player, team, card type, minute and disciplinary context.

VAR Event

May indicate review type, original decision, final decision and affected match event.

Substitution Event

May identify the player entering, player leaving, team and match minute.

Penalty Event

May include awarded, taken, scored, missed or saved penalty status.

Match Status Event

May indicate kickoff, halftime, second-half start, extra time, penalty shootout or full time.

Build a Reliable Live Match Experience

A production live-score integration should preserve match state, process events safely and recover cleanly after network interruptions.

Load complete match state before streaming
Store stable match, team and player IDs
Apply each event only once
Track sequence and update timestamps
Reconnect using controlled backoff
Reconcile using REST after reconnecting
Recommended Flow
1. Request active matches
2. Load selected match state
3. Render score and timeline
4. Subscribe to live events
5. Apply each event once
6. Detect stale connections
7. Reconnect safely
8. Reload current state
9. Store final result

Important Data Checks

Validate the match identifier
Validate event type and team
Check event ID or sequence
Preserve match period and minute
Show last-updated time
Handle delayed corrections
Integration examples

Request Live Soccer Scores in JavaScript, Python and PHP

The examples below demonstrate a common authenticated request pattern. Replace the example base URL, endpoint and authentication method with the values in the final API documentation.

// JavaScript
const response = await fetch(
  'https://api.example.com/v1/soccer/matches/live',
  {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Accept': 'application/json'
    }
  }
);

if (!response.ok) {
  throw new Error(`API error: ${response.status}`);
}

const data = await response.json();
# Python
import requests

response = requests.get(
    "https://api.example.com/v1/soccer/matches/live",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Accept": "application/json",
    },
    timeout=15,
)

response.raise_for_status()
data = response.json()
<?php
$url = 'https://api.example.com/v1/soccer/matches/live';

$ch = curl_init($url);

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_KEY',
        'Accept: application/json',
    ],
    CURLOPT_TIMEOUT => 15,
]);

$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

Example Live Soccer Match Response

This illustrative response shows the type of match context a live-score application may consume. Final field names and nesting must follow the published API documentation.

{
  "data": {
    "match_id": "match_74021",
    "competition": {
      "id": "competition_24",
      "name": "Example Premier League"
    },
    "status": "live",
    "period": "second_half",
    "minute": 67,
    "injury_time": 0,
    "venue": {
      "id": "venue_81",
      "name": "Central Stadium"
    },
    "home_team": {
      "id": "team_18",
      "name": "North City",
      "score": 2
    },
    "away_team": {
      "id": "team_29",
      "name": "United Athletic",
      "score": 1
    },
    "last_event": {
      "event_id": "event_991827",
      "type": "goal",
      "team_id": "team_18",
      "player_id": "player_301",
      "assist_player_id": "player_447",
      "minute": 66
    },
    "updated_at": "2026-08-06T10:31:22Z"
  }
}
Update speed and freshness

Response Times and Update Frequency

The user-visible update time depends on the original data source, provider processing, network conditions, delivery method and your own application architecture.

WebSocket delivery can reduce the delay created by polling intervals, but it does not by itself guarantee a specific latency. Publish a numeric response-time or update-frequency claim only when it is measured and supported by the final service terms.

REST Polling

Choose an interval that balances freshness, request quotas and traffic. Share responses through a server-side cache.

WebSocket Streaming

Receive incremental live events without making a new HTTP request for every update.

Freshness Indicator

Display the last successful update time and identify stale data when the live connection stops.

Completed Matches

Stop high-frequency requests after full time and cache the final result for longer.

Commercial applications

What Can You Build With a Soccer Live Score API?

Live Score Websites

Create match centres with score, clock, event timeline, line-ups, statistics and final results.

Mobile Soccer Apps

Build match lists, favourite-team alerts, goal notifications and real-time match views.

Fantasy Soccer Platforms

Use goals, assists, cards, saves, minutes and other events to update fantasy points and leaderboards.

Sports Media Products

Add live scoreboards, match widgets, timelines and statistics to articles, league pages and live blogs.

Sportsbooks and Affiliates

Combine live match state with separately available odds and market data to support trading and customer-facing interfaces.

Notifications and Automation

Trigger workflows for kickoff, goals, cards, halftime, full time, line-ups and selected match events.

Live Soccer Competition Coverage

Coverage may include international competitions, domestic leagues, cups and selected youth or women’s competitions. Availability can vary by season, competition, endpoint and subscription plan.

Before launch, confirm whether your product requires live scores only, detailed event timelines, line-ups, match statistics, injury time, odds, predictions or historical records.

Frequently asked questions

Live Soccer Scores API FAQs

What data does the Live Soccer Scores API provide?

Depending on coverage, data may include score, match clock, injury time, goals, cards, substitutions, penalties, VAR decisions, line-ups and live statistics.

Can I receive goal notifications in real time?

Goal events may be delivered through supported REST endpoints or WebSocket streams. Confirm the competition and plan before relying on live event delivery.

Does the API include injury time?

Injury or stoppage-time fields may be available for supported matches. Use the documented period and clock fields rather than calculating them from assumptions.

Should I use REST or WebSocket?

Use REST for complete match state and WebSocket for incremental live events. Many production applications combine both.

How frequently are scores updated?

Update timing depends on coverage, delivery method and plan. Use the documented service details and show the last-updated time in your interface.

Can I build a fantasy soccer app with this API?

Yes, where the required goals, assists, cards, saves, minutes and player events are included in coverage.

Start your live integration

Add Live Soccer Scores to Your Application

Review available plans, confirm competition and event coverage, and begin building live soccer experiences with REST endpoints and real-time WebSocket delivery.

Chat on WhatsApp