Skip to content
Get one match

Get one match

Returns the complete Core Analytics payload for one published and usable future match in a selected competition.

Request

GET /v1/matches/{match_id}

PlanAuthenticationCacheUnitsRows
StarterX-API-KeyPrivate, 60 seconds; ETag and If-None-Match supported.11 on success

Parameters

NameLocationRequiredDescription
match_idpathyesForesportia public identifier matching fsm:v1:<64 lowercase hexadecimal characters>.

Example

curl -sS "https://api.foresportia.com/v1/matches/fsm:v1:a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1" \
  -H "X-API-Key: $FORESPORTIA_API_KEY"

Response

{
  "schema_version": "analytics-starter-payload-v2",
  "match": {
    "id": "fsm:v1:a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
    "competition": {
      "id": "FIN",
      "name": "Veikkausliiga",
      "country": "Finland"
    },
    "kickoff": "2026-10-17T16:00:00Z",
    "teams": {
      "home": {
        "id": "example-team-riverton",
        "name": "Riverton FC"
      },
      "away": {
        "id": "example-team-northbridge",
        "name": "Northbridge United"
      }
    },
    "final_score": null
  },
  "as_of": "2026-10-16T12:00:00Z",
  "versions": {
    "feature": "features-v1",
    "flags": "flags-v1",
    "model": "model-v1",
    "calibration": "calibration-v1"
  },
  "provenance": {
    "temporal_class": "published_pre_match_verified",
    "source_kind": "analytics_published_release",
    "source_match_id": "example-source-match-001",
    "source_release_id": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
    "source_snapshot_id": null,
    "source_data_cutoff_utc": "2026-10-16T11:59:59Z",
    "source_payload_sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    "source_promotion_receipt_sha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
    "publication_policy_version": "starter-publication-policy-v1",
    "transformation_version": "analytics-to-starter-transform-v2"
  },
  "statistics": {
    "home": {
      "season": {
        "matches": 18,
        "wins": 11,
        "draws": 4,
        "losses": 3,
        "goals_for": 34,
        "goals_against": 18,
        "clean_sheets": 7,
        "failed_to_score": 2,
        "btts": 9,
        "over_1_5": 14,
        "over_2_5": 10,
        "over_3_5": 5,
        "win_rate": 0.611111,
        "draw_rate": 0.222222,
        "loss_rate": 0.166667
      },
      "venue": {
        "matches": 9,
        "wins": 7,
        "draws": 1,
        "losses": 1,
        "goals_for": 20,
        "goals_against": 7,
        "clean_sheets": 5,
        "failed_to_score": 1,
        "btts": 4,
        "over_1_5": 7,
        "over_2_5": 5,
        "over_3_5": 2,
        "win_rate": 0.777778,
        "draw_rate": 0.111111,
        "loss_rate": 0.111111
      },
      "last_5": {
        "matches": 5,
        "wins": 3,
        "draws": 1,
        "losses": 1,
        "goals_for": 9,
        "goals_against": 5,
        "clean_sheets": 2,
        "failed_to_score": 0,
        "btts": 3,
        "over_1_5": 4,
        "over_2_5": 3,
        "over_3_5": 1,
        "win_rate": 0.6,
        "draw_rate": 0.2,
        "loss_rate": 0.2
      },
      "last_10": {
        "matches": 10,
        "wins": 6,
        "draws": 2,
        "losses": 2,
        "goals_for": 17,
        "goals_against": 10,
        "clean_sheets": 4,
        "failed_to_score": 1,
        "btts": 5,
        "over_1_5": 8,
        "over_2_5": 5,
        "over_3_5": 2,
        "win_rate": 0.6,
        "draw_rate": 0.2,
        "loss_rate": 0.2
      }
    },
    "away": {
      "season": {
        "matches": 18,
        "wins": 6,
        "draws": 5,
        "losses": 7,
        "goals_for": 22,
        "goals_against": 25,
        "clean_sheets": 4,
        "failed_to_score": 5,
        "btts": 10,
        "over_1_5": 13,
        "over_2_5": 8,
        "over_3_5": 3,
        "win_rate": 0.333333,
        "draw_rate": 0.277778,
        "loss_rate": 0.388889
      },
      "venue": {
        "matches": 9,
        "wins": 2,
        "draws": 3,
        "losses": 4,
        "goals_for": 9,
        "goals_against": 14,
        "clean_sheets": 1,
        "failed_to_score": 3,
        "btts": 5,
        "over_1_5": 7,
        "over_2_5": 4,
        "over_3_5": 1,
        "win_rate": 0.222222,
        "draw_rate": 0.333333,
        "loss_rate": 0.444445
      },
      "last_5": {
        "matches": 5,
        "wins": 1,
        "draws": 2,
        "losses": 2,
        "goals_for": 5,
        "goals_against": 7,
        "clean_sheets": 1,
        "failed_to_score": 2,
        "btts": 3,
        "over_1_5": 4,
        "over_2_5": 2,
        "over_3_5": 1,
        "win_rate": 0.2,
        "draw_rate": 0.4,
        "loss_rate": 0.4
      },
      "last_10": {
        "matches": 10,
        "wins": 3,
        "draws": 3,
        "losses": 4,
        "goals_for": 11,
        "goals_against": 14,
        "clean_sheets": 2,
        "failed_to_score": 3,
        "btts": 6,
        "over_1_5": 8,
        "over_2_5": 5,
        "over_3_5": 2,
        "win_rate": 0.3,
        "draw_rate": 0.3,
        "loss_rate": 0.4
      }
    }
  },
  "streaks": {
    "home": {
      "winning": 2,
      "losing": 0,
      "unbeaten": 5,
      "winless": 0
    },
    "away": {
      "winning": 0,
      "losing": 1,
      "unbeaten": 0,
      "winless": 2
    }
  },
  "standings": {
    "home": {
      "position": 2,
      "source": "example-table",
      "as_of": "2026-10-16T11:00:00Z",
      "reliable": true
    },
    "away": {
      "position": 9,
      "source": "example-table",
      "as_of": "2026-10-16T11:00:00Z",
      "reliable": true
    },
    "position_difference": -7,
    "freshness_seconds": 3600
  },
  "ratings": {
    "elo_home": 1682.0,
    "elo_away": 1544.0,
    "elo_difference": 138.0,
    "elo_reliable": true
  },
  "forecast": {
    "home_goals": 1.72,
    "away_goals": 0.94,
    "total_goals": 2.66
  },
  "probabilities": {
    "one_x_two": {
      "home": 0.58,
      "draw": 0.25,
      "away": 0.17
    },
    "btts": {
      "yes": 0.49,
      "no": 0.51
    },
    "over_under_2_5": {
      "over": 0.56,
      "under": 0.44
    },
    "double_chance": {
      "home_or_draw": 0.83,
      "away_or_draw": 0.42,
      "home_or_away": 0.75
    },
    "draw_no_bet": {
      "home": 0.773333,
      "away": 0.226667
    },
    "probable_scores": [
      {
        "home": 2,
        "away": 0,
        "probability": 0.13
      },
      {
        "home": 1,
        "away": 0,
        "probability": 0.12
      }
    ],
    "confidence": 0.72,
    "entropy_bits": 1.39
  },
  "context": {
    "friendly": false,
    "knockout": false,
    "group_stage": false,
    "first_leg": false,
    "second_leg": false,
    "final": false,
    "neutral_venue": false,
    "stage": "Regular season"
  },
  "quality": {
    "warnings": [
      "example_recent_lineup_data_incomplete"
    ],
    "historical_class": "future",
    "versions": {
      "feature": "features-v1",
      "flags": "flags-v1",
      "model": "model-v1",
      "calibration": "calibration-v1"
    }
  }
}

Errors and limits

  • 400 invalid_match_id (including fixture:* IDs)
  • 401 missing or invalid API key
  • 403 competition_not_selected
  • 404 match_not_found
  • 429 quota or concurrency limit
  • 503 Starter store unavailable

See Errors for the full list, and Quotas for the limits that apply to every route.