diff --git a/osu.Game/Online/API/APIAccess.cs b/osu.Game/Online/API/APIAccess.cs
index c5302a393c..8c9741b98b 100644
--- a/osu.Game/Online/API/APIAccess.cs
+++ b/osu.Game/Online/API/APIAccess.cs
@@ -36,6 +36,8 @@ namespace osu.Game.Online.API
public string WebsiteRootUrl { get; }
+ public int APIVersion => 20220217; // We may want to pull this from the game version eventually.
+
public Exception LastLoginError { get; private set; }
public string ProvidedUsername { get; private set; }
diff --git a/osu.Game/Online/API/APIRequest.cs b/osu.Game/Online/API/APIRequest.cs
index 91148c177f..776ff5fd8f 100644
--- a/osu.Game/Online/API/APIRequest.cs
+++ b/osu.Game/Online/API/APIRequest.cs
@@ -2,6 +2,7 @@
// See the LICENCE file in the repository root for full licence text.
using System;
+using System.Globalization;
using JetBrains.Annotations;
using Newtonsoft.Json;
using osu.Framework.IO.Network;
@@ -112,6 +113,9 @@ namespace osu.Game.Online.API
WebRequest = CreateWebRequest();
WebRequest.Failed += Fail;
WebRequest.AllowRetryOnTimeout = false;
+
+ WebRequest.AddHeader("x-api-version", API.APIVersion.ToString(CultureInfo.InvariantCulture));
+
if (!string.IsNullOrEmpty(API.AccessToken))
WebRequest.AddHeader("Authorization", $"Bearer {API.AccessToken}");
diff --git a/osu.Game/Online/API/DummyAPIAccess.cs b/osu.Game/Online/API/DummyAPIAccess.cs
index 7131c3a7d4..f292e95bd1 100644
--- a/osu.Game/Online/API/DummyAPIAccess.cs
+++ b/osu.Game/Online/API/DummyAPIAccess.cs
@@ -33,6 +33,8 @@ namespace osu.Game.Online.API
public string WebsiteRootUrl => "http://localhost";
+ public int APIVersion => int.Parse(DateTime.Now.ToString("yyyyMMdd"));
+
public Exception LastLoginError { get; private set; }
///
diff --git a/osu.Game/Online/API/IAPIProvider.cs b/osu.Game/Online/API/IAPIProvider.cs
index a97eae77e3..470d46cd7f 100644
--- a/osu.Game/Online/API/IAPIProvider.cs
+++ b/osu.Game/Online/API/IAPIProvider.cs
@@ -57,6 +57,11 @@ namespace osu.Game.Online.API
///
string WebsiteRootUrl { get; }
+ ///
+ /// The version of the API.
+ ///
+ int APIVersion { get; }
+
///
/// The last login error that occurred, if any.
///