diff --git a/docs/build_docs.sh b/docs/build_docs.sh
index fbf2036af5599f845fb769c32555eeba9e77d948..c2468db212a194a54dab4bf8db8418a99bdc8433 100755
--- a/docs/build_docs.sh
+++ b/docs/build_docs.sh
@@ -1,5 +1,5 @@
 #!/bin/bash -eux
 # Building sphinx and swagger docs
-
 python -m sphinx . $BUILD_PATH
 TARGET_PATH="$BUILD_PATH/swagger" ./build_swagger.sh
+python ./get-releases-json.py > $BUILD_PATH/releases.json
diff --git a/docs/get-releases-json.py b/docs/get-releases-json.py
new file mode 100644
index 0000000000000000000000000000000000000000..8f623e7a0be380d20fe79c4d8db73dae341b6ade
--- /dev/null
+++ b/docs/get-releases-json.py
@@ -0,0 +1,34 @@
+import json
+import subprocess
+
+from distutils.version import StrictVersion
+
+
+def get_versions():
+
+    output = subprocess.check_output(
+        ["git", "tag", "-l", "--format=%(creatordate:iso-strict)|%(refname:short)"]
+    )
+    tags = []
+
+    for line in output.decode().splitlines():
+        try:
+            date, tag = line.split("|")
+        except (ValueError):
+            continue
+
+        if not date or not tag:
+            continue
+
+        tags.append({"id": tag, "date": date})
+    return sorted(tags, key=lambda tag: StrictVersion(tag["id"]), reverse=True)
+
+
+def main():
+    versions = get_versions()
+    data = {"count": len(versions), "releases": versions}
+    print(json.dumps(data))
+
+
+if __name__ == "__main__":
+    main()