Skip to main content
Skip to content
Sport on PropSportsSelf-serve checkoutSoccer

PropSports Soccer API

30K matches across 15 competitions, event ledger, lineups and DNA.

26Soccer routes in production (live)
2keyless routes

Overview

Soccer from the Premier League to the NWSL: 30,459 matches across 15 competitions since 2001, a per-match event ledger, lineups, team history, player and team DNA, and canonical live match states with per-match freshness.

Live statesCanonical match states with per-match freshness; stale clocks are withheld, not guessed.
Event ledgerGoals, cards and events per match.
LineupsLineups for 1,921 matches.
DNAPlayer and team DNA.

Coverage & limits

Soccer on the shared PropSports contract.

  • 30,459 matches since 2001 across 15 competitions
  • Premier League, LaLiga, Bundesliga, Serie A, Ligue 1, UCL, UEL, MLS, NWSL, WSL and Liga F among them
  • LaLiga, Serie A, Ligue 1, UCL and UEL hold one season each
  • About 24k matches are results-only
Single Sport · Soccer
Every soccer route on one key.
$29/mo
50,000 requests / day
  • All soccer routes
  • 50,000 requests / day
Developer
Pick any one to three sports.
$79/mo
100,000 requests / day
  • Choose 1-3 sports at checkout
  • 100,000 requests / day
POPULAR
All Sports
All eight sports on one key.
$149/mo
200,000 requests / day
  • All 8 sports
  • 200,000 requests / day
Pro
Production volume across every sport.
$299/mo
500,000 requests / day
  • All 8 sports
  • 500,000 requests / day
PlanMonthlyRequestsSports
Single Sport · Soccer$2950,000 requests / daySoccer
Developer$79100,000 requests / dayAny 1–3
All Sports$149200,000 requests / dayAll 8
Pro$299500,000 requests / dayAll 8

API explorer

Endpoints, code and real responses

curl "https://propsports.proptechusa.ai/v1/soccer/matches?competition=la-liga&limit=2"
Keyless production route · real response
Example response200captured from production 2026-10-28 · arrays and long strings trimmed
{
  "data_source": "PropSports",
  "data": [
    {
      "id": "9ba91b8c-02f3-5e18-85b2-d593b631739b",
      "matchday": null,
      "round": null,
      "kickoff_at": "2027-05-30T18:00:00+00:00",
      "status": "scheduled",
      "competition": {
        "slug": "la-liga",
        "name": "LaLiga"
      },
      "stage": {
        "key": "regular-season",
        "name": "Regular Season",
        "type": "league",
        "order": 1
      },
      "home": {
        "id": "daabe6ab-b7c7-5c5d-b650-4e088eae830b",
        "slug": "getafe",
        "name": "Getafe",
        "short_name": "Getafe",
        "crest": {
          "media_type": "crest",
          "url": "/api/soccer/media/537d665b5c446452b030414b9b214d6b501e95f12be3b19304da43735c9e9bdf",
          "width": 500,
          "height": 500,
          "license_url": null,
          "source": "provider_artwork",
          "primary": true,
          "basis": "owner_approved_identification"
        }
      },
      "away": {
        "id": "db302030-0990-55c4-81ee-140bf1222310",
        "slug": "barcelona",
        "name": "Barcelona",
        "short_name": "Barcelona",
        "crest": {
          "media_type": "crest",
          "url": "/api/soccer/media/9987e9acd8f542f74402f5a62ac2bcbb350c5ed2bf38831779d56a375ae76eb9",
          "width": 500,
          "height": 500,
          "license_url": null,
          "source": "provider_artwork",
          "primary": true,
          "basis": "owner_approved_identification"
        }
      },
      "score": null,
      "data_source": "PropSports",
      "intel": {
        "lineups": false,
        "stats": false,
        "event_map": false
      }
    },
    {
      "id": "8b070b4c-ab75-5a4a-b108-787f82d0ecfc",
      "matchday": null,
      "round": null,
      "kickoff_at": "2027-05-30T18:00:00+00:00",
      "status": "scheduled",
      "competition": {
        "slug": "la-liga",
        "name": "LaLiga"
      },
      "stage": {
        "key": "regular-season",
        "name": "Regular Season",
        "type": "league",
        "order": 1
      },
      "home": {
        "id": "aeed0876-86b4-5601-9989-10f9751b1957",
        "slug": "malaga",
        "name": "Málaga",
        "short_name": "Málaga",
        "crest": {
          "media_type": "crest",
          "url": "/api/soccer/media/70c57c651fd431e97019c1c65234ce15e28a52a25abf9d11516eede56bb450a4",
          "width": 500,
          "height": 500,
          "license_url": null,
          "source": "provider_artwork",
          "primary": true,
          "basis": "owner_approved_identification"
        }
      },
      "away": {
        "id": "c988feae-a511-5980-a880-7ce688f3d956",
        "slug": "sevilla",
        "name": "Sevilla",
        "short_name": "Sevilla",
        "crest": {
          "media_type": "crest",
          "url": "/api/soccer/media/992624b39a65ae153e9754ba302596d234faafe95062ca5d9b3095ac56211988",
          "width": 500,
          "height": 500,
          "license_url": null,
          "source": "provider_artwork",
          "primary": true,
          "basis": "owner_approved_identification"
        }
      },
      "score": null,
      "data_source": "PropSports",
      "intel": {
        "lineups": false,
        "stats": false,
        "event_map": false
      }
    }
  ],
  "meta": {
    "source": "pbe",
    "source_updated_at": "2026-10-03T16:46:09.120Z",
    "coverage": {
      "state": "ok",
      "notes": []
    },
    "attribution": [],
    "page": {
      "limit": 2,
      "order": "desc",
      "has_more": true,
      "next_cursor": "d.tyn0o0.8b070b4c-ab75-5a4a-b108-787f82d0ecfc"
    },
    "generated_at": "2026-10-28T12:34:33.029Z",
    "api_version": "soccer-api/1.2.0",
    "timing_ms": 67,
    "store_requests": 9,
    "features": [
      "team_history",
      "matchup_analyzer_v2"
    ]
  }
}

All 26 Soccer routes

Read live from the production route catalog.

/v1/soccer/matches
/v1/soccer/live
/v1/soccer/matches/:id
/v1/soccer/matches/:id/cast
/v1/soccer/matches/:id/events
/v1/soccer/competitions
/v1/soccer/competitions/:slug
/v1/soccer/table
/v1/soccer/coverage
/v1/soccer/players
/v1/soccer/players/:slug
/v1/soccer/players/:slug/dna
/v1/soccer/teams/:slug
/v1/soccer/teams/:slug/dna
/v1/soccer/data-health
/v1/soccer/matches/:id/analyzer-preview
/v1/soccer/teams/:slug/history
/v1/soccer/news
/v1/soccer/news/:slug
/v1/soccer/videos
/v1/soccer/algo/picks
/v1/soccer/algo/record
/v1/soccer/algo/research
/v1/soccer/algo/v2/picks
/v1/soccer/algo/v2/record
/v1/soccer/algo/v2/research

Live status

What production reports right now

The gateway check proves the shared PropSports gateway answered; it does not prove this sport’s feeds are fresh. Feed and source checks read this sport’s own freshness metadata or source canary.