diff --git a/src/views/JSONSchema.js b/src/views/JSONSchema.js
index 2077164ba9bc86dcad8c7c75c3771b3a45729e32..68e73b554d81c2021027b42fb27a30ae03124a94 100644
--- a/src/views/JSONSchema.js
+++ b/src/views/JSONSchema.js
@@ -8,6 +8,7 @@ import {useActivePlugin, useActiveVersion,} from '@docusaurus/plugin-content-doc
 
 import useAsync from '@hooks/useAsync'
 import getLatestVersion from "@lib/utils/getLatestVersion";
+import getVersionList from '@lib/utils/getVersionList'
 import DownloadLabel from "@components/DownloadLabel";
 import VersionSelect from "@components/VersionSelect";
 
@@ -42,21 +43,34 @@ export default function JSONSchema(props) {
   const schemaName = name === 'set' ? SCHEMA_FILE_NAME_SET : SCHEMA_FILE_NAME;
   const gitlabId = name === 'set' ? GITLAB_PROJECT_ID_SET : GITLAB_PROJECT_ID;
 
+  const {execute: executeList, status: statusList, value: versions} = useAsync(getVersionList, {
+    projectId: GITLAB_PROJECT_ID,
+    includePrerelease: includePrerelease !== undefined,
+  }, false)
+
   const {execute, status, error, value: latestVersion} = useAsync(getLatestVersion, {
     siteVersion: selectedVersion === undefined ? '*' : selectedVersion,
     projectId: GITLAB_PROJECT_ID,
-    includePrerelease: includePrerelease !== undefined
+    includePrerelease: includePrerelease !== undefined,
   }, false)
 
   if (isInBrowser) {
     useEffect(() => {
-      execute()
+      executeList()
     }, [])
 
     useEffect(async () => {
-      setJsonSchema(await loadSchema(selectedVersion, name))
+      if (!selectedVersion.includes('*')) {
+        setJsonSchema(await loadSchema(selectedVersion, name))
+      }
     }, [selectedVersion])
 
+    useEffect(async () => {
+      if (statusList === 'success') {
+        execute()
+      }
+    }, [statusList])
+
     useEffect(async () => {
       if (status === 'success') {
         setSelectedVersion(latestVersion)
@@ -73,7 +87,12 @@ export default function JSONSchema(props) {
             <code>{selectedVersion}</code>} {status === 'success' &&
             <DownloadLabel baseURL={schemaUrl} version={selectedVersion} artifact={schemaName} label="JSON Schema"/>}.
           </p>
-          <VersionSelect version={selectedVersion} setVersion={setSelectedVersion} gitlabId={gitlabId}/>
+          {statusList === 'success' && <VersionSelect
+            versions={versions}
+            version={selectedVersion}
+            setVersion={setSelectedVersion}
+            gitlabId={gitlabId}/>
+          }
           <br />
 
           <div className="json-schema-viewer admonition admonition-note alert alert--secondary pl-5">