diff --git a/frontend/components/AnalysisList.vue b/frontend/components/AnalysisList.vue
index 94ce26b54d4d42522c80266be4ae9a6bed3ff065..8180e81320300f30a689e1f656826953555c88fc 100644
--- a/frontend/components/AnalysisList.vue
+++ b/frontend/components/AnalysisList.vue
@@ -24,7 +24,6 @@ const sanitizedAnalyses = computed(() => {
 })
 
 function getResultArchiveUrl(analysisId: number) {
-
   return joinURL(runtimeConfig.public.dfApiPrefix, `/analysis/${analysisId}/results-archive`)
 }
 
diff --git a/frontend/pages/analyses/[analysisId].vue b/frontend/pages/analyses/[analysisId].vue
index f7930c9c0701acaf47dd9dc47d8fecde756f28b8..0efbce536cc27ca4a261e3ce924808a5b7d6159e 100644
--- a/frontend/pages/analyses/[analysisId].vue
+++ b/frontend/pages/analyses/[analysisId].vue
@@ -8,10 +8,13 @@ import { useRoute, computed } from "#imports";
 import * as d3 from "d3";
 import { useDisplay } from 'vuetify'
 import { useElementSize } from '@vueuse/core'
+import { joinURL } from "ufo";
+
 const { width } = useDisplay()
 const route = useRoute();
 const { selectedProtein } = useSelectedProtein()
 
+const runtimeConfig = useRuntimeConfig()
 
 
 const analysisId = computed(() => {
@@ -406,6 +409,9 @@ function draw() {
 
 
 
+}
+function getResultArchiveUrl(analysisId: number) {
+  return joinURL(runtimeConfig.public.dfApiPrefix, `/analysis/${analysisId}/results-archive`)
 }
 
 onMounted(() => {
@@ -452,7 +458,7 @@ useHead({
       <v-toolbar density="compact" class="pr-2">
         <v-toolbar-title>{{ analysis.name }}</v-toolbar-title>
         <v-btn color="primary" prepend-icon="mdi-download"
-          :href="`/api/analysis/${analysis.id}/results-archive`">Download
+          :href="getResultArchiveUrl(analysis.id)">Download
           all results</v-btn>
         <v-chip color="primary" rounded>{{ new Date(analysis.create_time).toLocaleString() }}</v-chip>
         <template v-if="analysis.percentage_done !== 100 && analysis.stderr === ''" #extension>