{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "league",
 "url": "/football/competitions/saudi-pro-league/",
 "canonical": "/football/competitions/saudi-pro-league/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Saudi Pro League predictions",
 "description": "Saudi Pro League predictions: Matches of 20 November 2026, 9 matches scheduled.",
 "first_paragraph": {
  "body": "Matches of 20 November 2026: 9 matches scheduled, plus results from Matches of 29–31 October 2026 (13 won, 10 lost, 1 void or half). In Saudi Pro League, most predictions we record appear within 24 hours of kick-off (median 13 hours before; 51 recorded predictions in the last 60 days). Forecast Record holds 190 predictions on Saudi Pro League from 28 authors and editorial sources (Season 2026/27, matches from 9 October 2026 to 20 November 2026): 177 recorded before kick-off and 13 first found after the match; as of 7 November 2026.",
  "key_number": "190",
  "data": "2026-11-07",
  "source_info": "our own evidence archive and settlement journal",
  "brand": "Forecast Record"
 },
 "indexable": false,
 "noindex_reason": "too_few_settled",
 "indexing_threshold": {
  "settled_count": 2,
  "date_count": 0,
  "required_settled": 10,
  "required_dates": 0
 },
 "data_date": "2026-11-07T19:52:23.438Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-08T02:12:33.000Z",
 "content_hash": null,
 "meaning_hash": "64466e5673b83d0dd7abab7117d522784947132d4bba9ebaabdd7a8410b45395",
 "dependency_group": "league:saudi-pro-league",
 "release_id": "20261107-195223",
 "markup": [
  {
   "type_code": "CollectionPage",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "ItemList",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Organization",
   "allowed": true,
   "cause": null
  }
 ],
 "exports": [
  {
   "type_code": "json",
   "url": "/football/competitions/saudi-pro-league/index.json",
   "bytes": null
  }
 ],
 "modules": {
  "affiliate": false,
  "api": true,
  "compare_yourself": false
 },
 "affiliate_block": null,
 "restrictions": {
  "name_withdrawn": false,
  "tracker_number": null,
  "withdrawn_quotes": [],
  "removed_at": null,
  "cause": null,
  "suspended_records": [],
  "withdrawal_log_number": 0
 },
 "page_links": {
  "methodology": "/methodology/",
  "right_of_reply": "/right-of-reply/",
  "source_coverage": "/coverage/",
  "corrections_log": "/corrections/",
  "api": "/api/",
  "claim": "/claim/"
 },
 "title_tag": "Saudi Pro League Predictions: Picks & Verified Records",
 "league_info": {
  "contract_version": "2",
  "code": "SA-SPL",
  "name": "Saudi Pro League",
  "country": "Saudi Arabia",
  "season": "2026/27",
  "season_words": "Season 2026/27",
  "seasons": [
   "2026/27"
  ],
  "period_from": "2026-10-09",
  "period_to": "2026-11-20",
  "authors": [
   {
    "name": "AI match predictions",
    "url": "/sources/ai-match-predictions/",
    "kind": "Editorial source",
    "settled_picks": 2,
    "matches": 2,
    "proven_settled": 2,
    "live": 4,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": "live",
    "headline_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few_to_estimate": true,
    "pending": 0,
    "first_result_on": null,
    "series": [
     {
      "series_code": "market_price",
      "series": "Recorded before kick-off, return at our recorded market price",
      "restored": false,
      "settled_picks": 2,
      "void": 0,
      "net_points_hundredths": 5150,
      "return_percent": null
     }
    ]
   },
   {
    "name": "FootyStats",
    "url": "/sources/footystats-org/",
    "kind": "Editorial source",
    "settled_picks": 2,
    "matches": 3,
    "proven_settled": 3,
    "live": 3,
    "restored": 2,
    "archived": 0,
    "found_after": 2,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": "live",
    "headline_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few_to_estimate": true,
    "pending": 0,
    "first_result_on": null,
    "series": [
     {
      "series_code": "market_price",
      "series": "Recorded before kick-off, return at our recorded market price",
      "restored": false,
      "settled_picks": 2,
      "void": 0,
      "net_points_hundredths": -7855,
      "return_percent": null
     }
    ]
   },
   {
    "name": "Baba",
    "url": "/authors/baba/",
    "kind": "Individual author",
    "settled_picks": 1,
    "matches": 10,
    "proven_settled": 5,
    "live": 54,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": "live",
    "headline_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few_to_estimate": true,
    "pending": 0,
    "first_result_on": null,
    "series": [
     {
      "series_code": "market_price",
      "series": "Recorded before kick-off, return at our recorded market price",
      "restored": false,
      "settled_picks": 1,
      "void": 0,
      "net_points_hundredths": 2000,
      "return_percent": null
     }
    ]
   },
   {
    "name": "Futbol24 — Pronósticos (es)",
    "url": "/sources/futbol24-com/",
    "kind": "Editorial source",
    "settled_picks": 1,
    "matches": 7,
    "proven_settled": 4,
    "live": 12,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": "live",
    "headline_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few_to_estimate": true,
    "pending": 0,
    "first_result_on": null,
    "series": [
     {
      "series_code": "market_price",
      "series": "Recorded before kick-off, return at our recorded market price",
      "restored": false,
      "settled_picks": 1,
      "void": 0,
      "net_points_hundredths": 2000,
      "return_percent": null
     }
    ]
   },
   {
    "name": "Statarea",
    "url": "/sources/statarea-com/",
    "kind": "Editorial source",
    "settled_picks": 1,
    "matches": 11,
    "proven_settled": 1,
    "live": 11,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": "live",
    "headline_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few_to_estimate": true,
    "pending": 2,
    "first_result_on": "2026-11-06",
    "series": [
     {
      "series_code": "market_price",
      "series": "Recorded before kick-off, return at our recorded market price",
      "restored": false,
      "settled_picks": 1,
      "void": 0,
      "net_points_hundredths": -10000,
      "return_percent": null
     }
    ]
   },
   {
    "name": "Vitibet / Vitisport",
    "url": "/sources/vitisport-cz/",
    "kind": "Editorial source",
    "settled_picks": 1,
    "matches": 6,
    "proven_settled": 1,
    "live": 9,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": "live",
    "headline_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few_to_estimate": true,
    "pending": 0,
    "first_result_on": null,
    "series": [
     {
      "series_code": "market_price",
      "series": "Recorded before kick-off, return at our recorded market price",
      "restored": false,
      "settled_picks": 1,
      "void": 0,
      "net_points_hundredths": 2100,
      "return_percent": null
     }
    ]
   },
   {
    "name": "Bet9ja Soccer True Tips",
    "url": "/sources/bet9ja-soccer-true-tips/",
    "kind": "Individual author",
    "settled_picks": 1,
    "matches": 1,
    "proven_settled": 1,
    "live": 1,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": "live",
    "headline_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few_to_estimate": true,
    "pending": 0,
    "first_result_on": null,
    "series": [
     {
      "series_code": "market_price",
      "series": "Recorded before kick-off, return at our recorded market price",
      "restored": false,
      "settled_picks": 1,
      "void": 0,
      "net_points_hundredths": 10900,
      "return_percent": null
     }
    ]
   },
   {
    "name": "BETSiE (AceOdds)",
    "url": "/sources/bettingexpert-com/",
    "kind": "Editorial source",
    "settled_picks": 1,
    "matches": 1,
    "proven_settled": 1,
    "live": 1,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": "live",
    "headline_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few_to_estimate": true,
    "pending": 0,
    "first_result_on": null,
    "series": [
     {
      "series_code": "market_price",
      "series": "Recorded before kick-off, return at our recorded market price",
      "restored": false,
      "settled_picks": 1,
      "void": 0,
      "net_points_hundredths": 4500,
      "return_percent": null
     }
    ]
   },
   {
    "name": "Italo Verde",
    "url": "/authors/italo-verde/",
    "kind": "Individual author",
    "settled_picks": 1,
    "matches": 1,
    "proven_settled": 1,
    "live": 1,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": "live",
    "headline_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few_to_estimate": true,
    "pending": 0,
    "first_result_on": null,
    "series": [
     {
      "series_code": "market_price",
      "series": "Recorded before kick-off, return at our recorded market price",
      "restored": false,
      "settled_picks": 1,
      "void": 0,
      "net_points_hundredths": 2000,
      "return_percent": null
     }
    ]
   },
   {
    "name": "Théo Becker",
    "url": "/authors/theo-becker/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 8,
    "proven_settled": 0,
    "live": 34,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Jasper van den Boogaard",
    "url": "/authors/jasper-van-den-boogaard/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 6,
    "proven_settled": 0,
    "live": 7,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Alex Lawes",
    "url": "/authors/alex-lawes/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 6,
    "proven_settled": 0,
    "live": 6,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Kirill Zakatchenko",
    "url": "/authors/kirill-zakatchenko/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 3,
    "proven_settled": 0,
    "live": 5,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 1,
    "first_result_on": "2026-11-06",
    "series": []
   },
   {
    "name": "FootballPredictions.net",
    "url": "/sources/footballpredictions-net/",
    "kind": "Editorial source",
    "settled_picks": 0,
    "matches": 5,
    "proven_settled": 0,
    "live": 4,
    "restored": 6,
    "archived": 0,
    "found_after": 6,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Massimiliano Ciancaglioni",
    "url": "/authors/massimiliano-ciancaglioni/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 0,
    "live": 4,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Bet-Experts.nl",
    "url": "/sources/bet-experts-nl/",
    "kind": "Editorial source",
    "settled_picks": 0,
    "matches": 2,
    "proven_settled": 0,
    "live": 3,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Coteur",
    "url": "/sources/coteur-com/",
    "kind": "Editorial source",
    "settled_picks": 0,
    "matches": 2,
    "proven_settled": 0,
    "live": 3,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Medhi Poirier",
    "url": "/authors/medhi-poirier/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 3,
    "proven_settled": 1,
    "live": 3,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "STAVKA.TV",
    "url": "/sources/stavka-tv/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 0,
    "live": 3,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Florian",
    "url": "/authors/florian/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 2,
    "proven_settled": 0,
    "live": 2,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "FreeTips.com",
    "url": "/sources/freetips-com/",
    "kind": "Editorial source",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 0,
    "live": 2,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Cris7iano Tips",
    "url": "/sources/cris7iano-tips/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 0,
    "live": 1,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 1,
    "first_result_on": "2026-10-29",
    "series": []
   },
   {
    "name": "Joshua Cole",
    "url": "/authors/joshua-cole/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 0,
    "live": 1,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Nsidibe Akpan",
    "url": "/authors/nsidibe-akpan/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 0,
    "live": 1,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Nuno Gonçalves",
    "url": "/authors/nuno-goncalves/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 1,
    "live": 1,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "wetttipps-heute.com",
    "url": "/sources/wetttipps-heute-com/",
    "kind": "Editorial source",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 0,
    "live": 1,
    "restored": 0,
    "archived": 0,
    "found_after": 0,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "BetClan",
    "url": "/sources/betclan-com/",
    "kind": "Editorial source",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 0,
    "live": 0,
    "restored": 4,
    "archived": 0,
    "found_after": 4,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   },
   {
    "name": "Dmitrii Mokin",
    "url": "/authors/dmitrii-mokin/",
    "kind": "Individual author",
    "settled_picks": 0,
    "matches": 1,
    "proven_settled": 0,
    "live": 0,
    "restored": 1,
    "archived": 0,
    "found_after": 1,
    "source_reported": 0,
    "unlinked": 0,
    "under_review": 0,
    "headline_part": null,
    "headline_words": null,
    "return_percent": null,
    "too_few_to_estimate": false,
    "pending": 0,
    "first_result_on": null,
    "series": []
   }
  ],
  "upcoming": [
   {
    "name": "Al Fayha vs Al Fateh SC",
    "url": "/football/matches/al-fayha-vs-al-fateh-sc-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null
   },
   {
    "name": "Al Hilal Riyadh vs Al Draih",
    "url": "/football/matches/al-hilal-riyadh-vs-al-draih-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null
   },
   {
    "name": "Al Khaleej Saihat vs Al Ittihad Jeddah",
    "url": "/football/matches/al-khaleej-saihat-vs-al-ittihad-jeddah-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null
   },
   {
    "name": "Al Ahli Jeddah vs Al Faisaly Harmah",
    "url": "/football/matches/al-ahli-jeddah-vs-al-faisaly-harmah-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null
   },
   {
    "name": "Al Riyadh vs Al Hazm",
    "url": "/football/matches/al-riyadh-vs-al-hazm-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null
   },
   {
    "name": "Neom SC vs Al Kholood",
    "url": "/football/matches/neom-sc-vs-al-kholood-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null
   },
   {
    "name": "Al Taawon Buraidah vs Abha",
    "url": "/football/matches/al-taawon-buraidah-vs-abha-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null
   },
   {
    "name": "Al Shabab Riyadh vs Al Ittifaq Dammam",
    "url": "/football/matches/al-shabab-riyadh-vs-al-ittifaq-dammam-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null
   },
   {
    "name": "Al-Nassr Riyadh vs Al Qadisiya Al Khubar",
    "url": "/football/matches/al-nassr-riyadh-vs-al-qadisiya-al-khubar-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null
   }
  ],
  "recent": [
   {
    "name": "Al Ahli Jeddah vs Al Taawon Buraidah",
    "url": "/football/matches/al-ahli-jeddah-vs-al-taawon-buraidah-2026-11-07/",
    "kickoff": "2026-11-07T17:30:00.000Z",
    "predictions": 1,
    "sources": 1,
    "final_score": null,
    "state_words": "Postponed"
   },
   {
    "name": "Al Ittifaq Dammam vs Al Hilal Riyadh",
    "url": "/football/matches/al-ittifaq-dammam-vs-al-hilal-riyadh-2026-11-07/",
    "kickoff": "2026-11-07T14:30:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null,
    "state_words": "Postponed"
   },
   {
    "name": "Al Faisaly Harmah vs Al Draih",
    "url": "/football/matches/al-faisaly-harmah-vs-al-draih-2026-11-07/",
    "kickoff": "2026-11-07T13:20:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null,
    "state_words": "Postponed"
   },
   {
    "name": "Al Ittihad Jeddah vs Neom SC",
    "url": "/football/matches/al-ittihad-jeddah-vs-neom-sc-2026-11-06/",
    "kickoff": "2026-11-06T17:30:00.000Z",
    "predictions": 1,
    "sources": 1,
    "final_score": null,
    "state_words": "Postponed"
   },
   {
    "name": "Al Hazm vs Al-Nassr Riyadh",
    "url": "/football/matches/al-hazm-vs-al-nassr-riyadh-2026-11-06/",
    "kickoff": "2026-11-06T14:55:00.000Z",
    "predictions": 1,
    "sources": 1,
    "final_score": null,
    "state_words": "Postponed"
   },
   {
    "name": "Al Fateh SC vs Al Riyadh",
    "url": "/football/matches/al-fateh-sc-vs-al-riyadh-2026-11-06/",
    "kickoff": "2026-11-06T14:30:00.000Z",
    "predictions": 2,
    "sources": 2,
    "final_score": null,
    "state_words": "Postponed"
   },
   {
    "name": "Al Qadisiya Al Khubar vs Al Fayha",
    "url": "/football/matches/al-qadisiya-al-khubar-vs-al-fayha-2026-11-05/",
    "kickoff": "2026-11-05T17:30:00.000Z",
    "predictions": 2,
    "sources": 1,
    "final_score": null,
    "state_words": "Postponed"
   },
   {
    "name": "Abha vs Al Shabab Riyadh",
    "url": "/football/matches/abha-vs-al-shabab-riyadh-2026-11-05/",
    "kickoff": "2026-11-05T15:10:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null,
    "state_words": "Postponed"
   },
   {
    "name": "Al Kholood vs Al Khaleej Saihat",
    "url": "/football/matches/al-kholood-vs-al-khaleej-saihat-2026-11-05/",
    "kickoff": "2026-11-05T13:25:00.000Z",
    "predictions": 0,
    "sources": 0,
    "final_score": null,
    "state_words": "Postponed"
   }
  ],
  "totals": {
   "authors_with_settled": 9,
   "authors": 28,
   "settled_picks": 11,
   "live": 177,
   "archived": 0,
   "found_after": 13,
   "restored": 13,
   "source_reported": 0,
   "under_review": 0,
   "authors_ten_or_more": 0,
   "authors_ten_or_more_proven": 0,
   "matches_with_pages": 27,
   "upcoming": 9
  },
  "season_section": null,
  "coverage_note": "Coverage reflects the sources we monitor.",
  "min_picks_for_return": 10,
  "counting_rule": "A tipster counts towards this competition with every settled pick here that has proof before kick-off: our live record and predictions archived before kick-off, counted once each and apart from the headline number of the profile; picks found after kick-off and history reported by the source itself are listed separately on the profile.",
  "indexing_rule": "This page is open to search engines when at least one author has 10 or more settled picks in this competition, with proof before kick-off (recorded by us or archived before kick-off). Not yet: the largest such record here has 2 settled picks, so the page stays out of search.",
  "h1_phrase": "Saudi Pro League predictions",
  "next_round": {
   "label": "Matches of 20 November 2026",
   "number": null,
   "short_label": null,
   "middle_date": "2026-11-20",
   "stage": null,
   "date_from": "2026-11-20",
   "date_to": "2026-11-20",
   "url": null,
   "by_dates": true,
   "matches_total": 9,
   "matches_with_predictions": 0,
   "matches_with_any_predictions": 0,
   "played": 0,
   "predictions": 0,
   "settled": {
    "won": 0,
    "lost": 0,
    "other": 0,
    "not_settled": 0,
    "attribution": 0
   },
   "complete": false,
   "open_maps": 0,
   "matches": [
    {
     "kickoff": "2026-11-20T17:00:00.000Z",
     "name": "Neom SC vs Al Kholood",
     "url": "/football/matches/neom-sc-vs-al-kholood-2026-11-20/",
     "state": "upcoming",
     "final_score": null,
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-11-20T17:00:00.000Z",
     "name": "Al Taawon Buraidah vs Abha",
     "url": "/football/matches/al-taawon-buraidah-vs-abha-2026-11-20/",
     "state": "upcoming",
     "final_score": null,
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-11-20T17:00:00.000Z",
     "name": "Al Shabab Riyadh vs Al Ittifaq Dammam",
     "url": "/football/matches/al-shabab-riyadh-vs-al-ittifaq-dammam-2026-11-20/",
     "state": "upcoming",
     "final_score": null,
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-11-20T17:00:00.000Z",
     "name": "Al Riyadh vs Al Hazm",
     "url": "/football/matches/al-riyadh-vs-al-hazm-2026-11-20/",
     "state": "upcoming",
     "final_score": null,
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-11-20T17:00:00.000Z",
     "name": "Al-Nassr Riyadh vs Al Qadisiya Al Khubar",
     "url": "/football/matches/al-nassr-riyadh-vs-al-qadisiya-al-khubar-2026-11-20/",
     "state": "upcoming",
     "final_score": null,
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-11-20T17:00:00.000Z",
     "name": "Al Khaleej Saihat vs Al Ittihad Jeddah",
     "url": "/football/matches/al-khaleej-saihat-vs-al-ittihad-jeddah-2026-11-20/",
     "state": "upcoming",
     "final_score": null,
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-11-20T17:00:00.000Z",
     "name": "Al Hilal Riyadh vs Al Draih",
     "url": "/football/matches/al-hilal-riyadh-vs-al-draih-2026-11-20/",
     "state": "upcoming",
     "final_score": null,
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-11-20T17:00:00.000Z",
     "name": "Al Fayha vs Al Fateh SC",
     "url": "/football/matches/al-fayha-vs-al-fateh-sc-2026-11-20/",
     "state": "upcoming",
     "final_score": null,
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-11-20T17:00:00.000Z",
     "name": "Al Ahli Jeddah vs Al Faisaly Harmah",
     "url": "/football/matches/al-ahli-jeddah-vs-al-faisaly-harmah-2026-11-20/",
     "state": "upcoming",
     "final_score": null,
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    }
   ]
  },
  "prediction_timing": {
   "predictions_words": "In Saudi Pro League, most predictions we record appear within 24 hours of kick-off (median 13 hours before; 51 recorded predictions in the last 60 days)",
   "sources_words": "16 sources we monitor published predictions on Saudi Pro League matches in the last 30 days"
  },
  "previous_round": {
   "label": "Matches of 29–31 October 2026",
   "number": null,
   "short_label": null,
   "middle_date": "2026-10-30",
   "stage": null,
   "date_from": "2026-10-29",
   "date_to": "2026-10-31",
   "url": "/football/competitions/saudi-pro-league/2026-27/dates-2026-10-29/",
   "by_dates": true,
   "matches_total": 9,
   "matches_with_predictions": 6,
   "matches_with_any_predictions": 7,
   "played": 9,
   "predictions": 25,
   "settled": {
    "won": 13,
    "lost": 10,
    "other": 1,
    "not_settled": 1,
    "attribution": 0
   },
   "complete": true,
   "open_maps": 0,
   "matches": [
    {
     "kickoff": "2026-10-29T14:35:00.000Z",
     "name": "Al Khaleej Saihat vs Al Hazm",
     "url": "/football/matches/al-khaleej-saihat-vs-al-hazm-2026-10-29/",
     "state": "played",
     "final_score": "4-2",
     "predictions": 0,
     "predictions_any": 1,
     "sources": 0,
     "markets": [],
     "settled": {
      "won": 0,
      "lost": 0,
      "other": 0,
      "not_settled": 0,
      "attribution": 0
     },
     "open": false
    },
    {
     "kickoff": "2026-10-29T18:00:00.000Z",
     "name": "Al Riyadh vs Al Qadisiya Al Khubar",
     "url": "/football/matches/al-riyadh-vs-al-qadisiya-al-khubar-2026-10-29/",
     "state": "played",
     "final_score": "0-6",
     "predictions": 2,
     "predictions_any": 2,
     "sources": 2,
     "markets": [
      {
       "market": "1X2, match result",
       "eligible": 1,
       "selections": [
        {
         "selection": "Al Qadisiya Al Khubar",
         "count": 1
        }
       ],
       "more_selections": 0
      },
      {
       "market": "Correct score",
       "eligible": 1,
       "selections": [
        {
         "selection": "Al Riyadh 0-2 Al Qadisiya Al Khubar",
         "count": 1
        }
       ],
       "more_selections": 0
      }
     ],
     "settled": {
      "won": 1,
      "lost": 1,
      "other": 0,
      "not_settled": 0,
      "attribution": 0
     },
     "open": false
    },
    {
     "kickoff": "2026-10-29T18:00:00.000Z",
     "name": "Al-Nassr Riyadh vs Al Kholood",
     "url": "/football/matches/al-nassr-riyadh-vs-al-kholood-2026-10-29/",
     "state": "played",
     "final_score": "5-3",
     "predictions": 19,
     "predictions_any": 19,
     "sources": 12,
     "markets": [
      {
       "market": "1X2, match result",
       "eligible": 7,
       "selections": [
        {
         "selection": "Al-Nassr Riyadh",
         "count": 7
        }
       ],
       "more_selections": 0
      },
      {
       "market": "Correct score",
       "eligible": 3,
       "selections": [
        {
         "selection": "Al-Nassr Riyadh 3-0 Al Kholood",
         "count": 2
        },
        {
         "selection": "Al-Nassr Riyadh 3-1 Al Kholood",
         "count": 1
        }
       ],
       "more_selections": 0
      },
      {
       "market": "Both teams to score",
       "eligible": 2,
       "selections": [
        {
         "selection": "no",
         "count": 1
        },
        {
         "selection": "yes",
         "count": 1
        }
       ],
       "more_selections": 0
      }
     ],
     "settled": {
      "won": 11,
      "lost": 6,
      "other": 1,
      "not_settled": 1,
      "attribution": 0
     },
     "open": true
    },
    {
     "kickoff": "2026-10-30T12:30:00.000Z",
     "name": "Abha vs Al Ittihad Jeddah",
     "url": "/football/matches/abha-vs-al-ittihad-jeddah-2026-10-30/",
     "state": "played",
     "final_score": "1-1",
     "predictions": 2,
     "predictions_any": 2,
     "sources": 2,
     "markets": [
      {
       "market": "1X2, match result",
       "eligible": 2,
       "selections": [
        {
         "selection": "Al Ittihad Jeddah",
         "count": 2
        }
       ],
       "more_selections": 0
      }
     ],
     "settled": {
      "won": 0,
      "lost": 2,
      "other": 0,
      "not_settled": 0,
      "attribution": 0
     },
     "open": false
    },
    {
     "kickoff": "2026-10-30T14:50:00.000Z",
     "name": "Al Draih vs Neom SC",
     "url": "/football/matches/al-draih-vs-neom-sc-2026-10-30/",
     "state": "played",
     "final_score": "1-2",
     "predictions": 1,
     "predictions_any": 1,
     "sources": 1,
     "markets": [
      {
       "market": "Over/Under 2.5 goals",
       "eligible": 1,
       "selections": [
        {
         "selection": "under 2.5",
         "count": 1
        }
       ],
       "more_selections": 0
      }
     ],
     "settled": {
      "won": 0,
      "lost": 1,
      "other": 0,
      "not_settled": 0,
      "attribution": 0
     },
     "open": false
    },
    {
     "kickoff": "2026-10-30T18:00:00.000Z",
     "name": "Al Shabab Riyadh vs Al Ahli Jeddah",
     "url": null,
     "state": "played",
     "final_score": "6-1",
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-10-31T13:30:00.000Z",
     "name": "Al Taawon Buraidah vs Al Ittifaq Dammam",
     "url": null,
     "state": "played",
     "final_score": "1-1",
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-10-31T14:55:00.000Z",
     "name": "Al Fayha vs Al Faisaly Harmah",
     "url": null,
     "state": "played",
     "final_score": "4-1",
     "predictions": 0,
     "predictions_any": 0,
     "sources": 0,
     "markets": [],
     "settled": null,
     "open": false
    },
    {
     "kickoff": "2026-10-31T18:00:00.000Z",
     "name": "Al Hilal Riyadh vs Al Fateh SC",
     "url": "/football/matches/al-hilal-riyadh-vs-al-fateh-sc-2026-10-31/",
     "state": "played",
     "final_score": "2-0",
     "predictions": 1,
     "predictions_any": 1,
     "sources": 1,
     "markets": [
      {
       "market": "1X2, match result",
       "eligible": 1,
       "selections": [
        {
         "selection": "Al Hilal Riyadh",
         "count": 1
        }
       ],
       "more_selections": 0
      }
     ],
     "settled": {
      "won": 1,
      "lost": 0,
      "other": 0,
      "not_settled": 0,
      "attribution": 0
     },
     "open": false
    }
   ]
  },
  "rounds": [
   {
    "label": "Matches of 1–9 September 2026",
    "url": null,
    "date_from": "2026-09-01",
    "date_to": "2026-09-09",
    "matches_total": 19,
    "matches_with_predictions": 0,
    "matches_with_any_predictions": 0,
    "predictions": 0,
    "played": 19,
    "complete": true,
    "by_dates": true,
    "settled": {
     "won": 0,
     "lost": 0,
     "other": 0,
     "not_settled": 0,
     "attribution": 0
    }
   },
   {
    "label": "Matches of 9–11 October 2026",
    "url": null,
    "date_from": "2026-10-09",
    "date_to": "2026-10-11",
    "matches_total": 9,
    "matches_with_predictions": 3,
    "matches_with_any_predictions": 3,
    "predictions": 0,
    "played": 8,
    "complete": false,
    "by_dates": true,
    "settled": {
     "won": 0,
     "lost": 0,
     "other": 0,
     "not_settled": 0,
     "attribution": 0
    }
   },
   {
    "label": "Matches of 15–24 October 2026",
    "url": "/football/competitions/saudi-pro-league/2026-27/dates-2026-10-15/",
    "date_from": "2026-10-15",
    "date_to": "2026-10-24",
    "matches_total": 29,
    "matches_with_predictions": 16,
    "matches_with_any_predictions": 16,
    "predictions": 19,
    "played": 23,
    "complete": true,
    "by_dates": true,
    "settled": {
     "won": 15,
     "lost": 4,
     "other": 0,
     "not_settled": 0,
     "attribution": 0
    }
   },
   {
    "label": "Matches of 27 October 2026",
    "url": null,
    "date_from": "2026-10-27",
    "date_to": "2026-10-27",
    "matches_total": 1,
    "matches_with_predictions": 0,
    "matches_with_any_predictions": 0,
    "predictions": 0,
    "played": 1,
    "complete": true,
    "by_dates": true,
    "settled": {
     "won": 0,
     "lost": 0,
     "other": 0,
     "not_settled": 0,
     "attribution": 0
    }
   },
   {
    "label": "Matches of 29–31 October 2026",
    "url": "/football/competitions/saudi-pro-league/2026-27/dates-2026-10-29/",
    "date_from": "2026-10-29",
    "date_to": "2026-10-31",
    "matches_total": 9,
    "matches_with_predictions": 6,
    "matches_with_any_predictions": 7,
    "predictions": 25,
    "played": 9,
    "complete": true,
    "by_dates": true,
    "settled": {
     "won": 13,
     "lost": 10,
     "other": 1,
     "not_settled": 1,
     "attribution": 0
    }
   },
   {
    "label": "Matches of 5–7 November 2026",
    "url": null,
    "date_from": "2026-11-05",
    "date_to": "2026-11-07",
    "matches_total": 10,
    "matches_with_predictions": 6,
    "matches_with_any_predictions": 6,
    "predictions": 7,
    "played": 0,
    "complete": false,
    "by_dates": true,
    "settled": {
     "won": 0,
     "lost": 0,
     "other": 0,
     "not_settled": 0,
     "attribution": 0
    }
   },
   {
    "label": "Matches of 20 November 2026",
    "url": null,
    "date_from": "2026-11-20",
    "date_to": "2026-11-20",
    "matches_total": 9,
    "matches_with_predictions": 0,
    "matches_with_any_predictions": 0,
    "predictions": 0,
    "played": 0,
    "complete": false,
    "by_dates": true,
    "settled": {
     "won": 0,
     "lost": 0,
     "other": 0,
     "not_settled": 0,
     "attribution": 0
    }
   }
  ],
  "season_url": "/football/competitions/saudi-pro-league/2026-27/",
  "seasons_pages": [
   {
    "season": "2026/27",
    "url": "/football/competitions/saudi-pro-league/2026-27/"
   }
  ],
  "by_market": [
   {
    "category": "match-result",
    "market_words": "Match result",
    "authors_total": 7,
    "outcomes": {
     "Lost": 1,
     "Won": 7
    },
    "settled_total": 8,
    "authors_above_threshold": 0,
    "authors": [
     {
      "name": "AI match predictions",
      "url": "/sources/ai-match-predictions/",
      "kind": "Editorial source",
      "settled_picks": 2,
      "won": 2,
      "lost": 0,
      "void": 0,
      "half": 0,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 2,
      "live_matches": 2,
      "level": null
     },
     {
      "name": "Baba",
      "url": "/authors/baba/",
      "kind": "Individual author",
      "settled_picks": 1,
      "won": 1,
      "lost": 0,
      "void": 0,
      "half": 0,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 1,
      "live_matches": 1,
      "level": null
     },
     {
      "name": "FootyStats",
      "url": "/sources/footystats-org/",
      "kind": "Editorial source",
      "settled_picks": 1,
      "won": 1,
      "lost": 0,
      "void": 0,
      "half": 0,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 1,
      "live_matches": 1,
      "level": null
     },
     {
      "name": "Futbol24 — Pronósticos (es)",
      "url": "/sources/futbol24-com/",
      "kind": "Editorial source",
      "settled_picks": 1,
      "won": 1,
      "lost": 0,
      "void": 0,
      "half": 0,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 1,
      "live_matches": 1,
      "level": null
     },
     {
      "name": "Italo Verde",
      "url": "/authors/italo-verde/",
      "kind": "Individual author",
      "settled_picks": 1,
      "won": 1,
      "lost": 0,
      "void": 0,
      "half": 0,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 1,
      "live_matches": 1,
      "level": null
     },
     {
      "name": "Statarea",
      "url": "/sources/statarea-com/",
      "kind": "Editorial source",
      "settled_picks": 1,
      "won": 0,
      "lost": 1,
      "void": 0,
      "half": 0,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 1,
      "live_matches": 1,
      "level": null
     },
     {
      "name": "Vitibet / Vitisport",
      "url": "/sources/vitisport-cz/",
      "kind": "Editorial source",
      "settled_picks": 1,
      "won": 1,
      "lost": 0,
      "void": 0,
      "half": 0,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 1,
      "live_matches": 1,
      "level": null
     }
    ],
    "level_rule": "Levels (No.1, Top 3, Top 5, Top 10) go to tipsters and sources in the live record with 30 or more settled picks without voids on 15 or more matches in this market and competition, ordered by return at the recorded market price. No.1 needs at least 10 tipsters and sources at that tracking level, Top 3 at least 30, Top 5 at least 50, Top 10 at least 100; at most one in 10 is marked."
   },
   {
    "category": "goals",
    "market_words": "Over/under goals",
    "authors_total": 2,
    "outcomes": {
     "Lost": 1,
     "Won": 1
    },
    "settled_total": 2,
    "authors_above_threshold": 0,
    "authors": [
     {
      "name": "Bet9ja Soccer True Tips",
      "url": "/sources/bet9ja-soccer-true-tips/",
      "kind": "Individual author",
      "settled_picks": 1,
      "won": 1,
      "lost": 0,
      "void": 0,
      "half": 0,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 1,
      "live_matches": 1,
      "level": null
     },
     {
      "name": "FootyStats",
      "url": "/sources/footystats-org/",
      "kind": "Editorial source",
      "settled_picks": 1,
      "won": 0,
      "lost": 1,
      "void": 0,
      "half": 0,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 1,
      "live_matches": 1,
      "level": null
     }
    ],
    "level_rule": "Levels (No.1, Top 3, Top 5, Top 10) go to tipsters and sources in the live record with 30 or more settled picks without voids on 15 or more matches in this market and competition, ordered by return at the recorded market price. No.1 needs at least 10 tipsters and sources at that tracking level, Top 3 at least 30, Top 5 at least 50, Top 10 at least 100; at most one in 10 is marked."
   },
   {
    "category": "handicap",
    "market_words": "Handicap",
    "authors_total": 1,
    "outcomes": {
     "Half won": 1
    },
    "settled_total": 1,
    "authors_above_threshold": 0,
    "authors": [
     {
      "name": "BETSiE (AceOdds)",
      "url": "/sources/bettingexpert-com/",
      "kind": "Editorial source",
      "settled_picks": 1,
      "won": 0,
      "lost": 0,
      "void": 0,
      "half": 1,
      "return_percent": null,
      "headline_part": "live",
      "live_staked": 1,
      "live_matches": 1,
      "level": null
     }
    ],
    "level_rule": "Levels (No.1, Top 3, Top 5, Top 10) go to tipsters and sources in the live record with 30 or more settled picks without voids on 15 or more matches in this market and competition, ordered by return at the recorded market price. No.1 needs at least 10 tipsters and sources at that tracking level, Top 3 at least 30, Top 5 at least 50, Top 10 at least 100; at most one in 10 is marked."
   }
  ],
  "teams": [],
  "open_maps": 0,
  "calendar_maps": [
   {
    "name": "Al Kholood vs Al Khaleej Saihat",
    "url": "/football/matches/al-kholood-vs-al-khaleej-saihat-2026-11-05/",
    "kickoff": "2026-11-05T13:25:00.000Z",
    "final_score": null
   },
   {
    "name": "Abha vs Al Shabab Riyadh",
    "url": "/football/matches/abha-vs-al-shabab-riyadh-2026-11-05/",
    "kickoff": "2026-11-05T15:10:00.000Z",
    "final_score": null
   },
   {
    "name": "Al Faisaly Harmah vs Al Draih",
    "url": "/football/matches/al-faisaly-harmah-vs-al-draih-2026-11-07/",
    "kickoff": "2026-11-07T13:20:00.000Z",
    "final_score": null
   },
   {
    "name": "Al Ittifaq Dammam vs Al Hilal Riyadh",
    "url": "/football/matches/al-ittifaq-dammam-vs-al-hilal-riyadh-2026-11-07/",
    "kickoff": "2026-11-07T14:30:00.000Z",
    "final_score": null
   },
   {
    "name": "Al Fayha vs Al Fateh SC",
    "url": "/football/matches/al-fayha-vs-al-fateh-sc-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "final_score": null
   },
   {
    "name": "Al Hilal Riyadh vs Al Draih",
    "url": "/football/matches/al-hilal-riyadh-vs-al-draih-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "final_score": null
   },
   {
    "name": "Al Khaleej Saihat vs Al Ittihad Jeddah",
    "url": "/football/matches/al-khaleej-saihat-vs-al-ittihad-jeddah-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "final_score": null
   },
   {
    "name": "Al Ahli Jeddah vs Al Faisaly Harmah",
    "url": "/football/matches/al-ahli-jeddah-vs-al-faisaly-harmah-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "final_score": null
   },
   {
    "name": "Al Riyadh vs Al Hazm",
    "url": "/football/matches/al-riyadh-vs-al-hazm-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "final_score": null
   },
   {
    "name": "Neom SC vs Al Kholood",
    "url": "/football/matches/neom-sc-vs-al-kholood-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "final_score": null
   },
   {
    "name": "Al Taawon Buraidah vs Abha",
    "url": "/football/matches/al-taawon-buraidah-vs-abha-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "final_score": null
   },
   {
    "name": "Al Shabab Riyadh vs Al Ittifaq Dammam",
    "url": "/football/matches/al-shabab-riyadh-vs-al-ittifaq-dammam-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "final_score": null
   },
   {
    "name": "Al-Nassr Riyadh vs Al Qadisiya Al Khubar",
    "url": "/football/matches/al-nassr-riyadh-vs-al-qadisiya-al-khubar-2026-11-20/",
    "kickoff": "2026-11-20T17:00:00.000Z",
    "final_score": null
   }
  ],
  "day_links": []
 },
 "data_changes": {
  "records_corrected": 70,
  "last_correction_at": "2026-10-14T02:01:16.287Z",
  "corrections_url": "/corrections/",
  "text": "70 records shown here have been corrected; the last correction was on 14 October 2026, with its reason in the corrections log."
 },
 "entity_id": "league:saudi-pro-league",
 "source_revision": 30
}
