diff --git a/server/src/main/java/org/eclipse/openvsx/UserAPI.java b/server/src/main/java/org/eclipse/openvsx/UserAPI.java
index a9e12d535..1ed50c1f4 100644
--- a/server/src/main/java/org/eclipse/openvsx/UserAPI.java
+++ b/server/src/main/java/org/eclipse/openvsx/UserAPI.java
@@ -230,6 +230,7 @@ public List<NamespaceJson> getOwnNamespaces() {
             if(isOwner) {
                 json.setMembersUrl(createApiUrl(serverUrl, "user", "namespace", namespace.getName(), "members"));
                 json.setRoleUrl(createApiUrl(serverUrl, "user", "namespace", namespace.getName(), "role"));
+                json.setDetailsUrl(createApiUrl(serverUrl, "user", "namespace", namespace.getName(), "details"));
             }
 
             return json;
diff --git a/server/src/main/java/org/eclipse/openvsx/json/NamespaceJson.java b/server/src/main/java/org/eclipse/openvsx/json/NamespaceJson.java
index 154652f21..c0b1a80e0 100644
--- a/server/src/main/java/org/eclipse/openvsx/json/NamespaceJson.java
+++ b/server/src/main/java/org/eclipse/openvsx/json/NamespaceJson.java
@@ -55,6 +55,9 @@ public static NamespaceJson error(String message) {
     @Schema(hidden = true)
     private String roleUrl;
 
+    @Schema(hidden = true)
+    private String detailsUrl;
+
     public String getName() {
         return name;
     }
@@ -102,4 +105,12 @@ public String getRoleUrl() {
     public void setRoleUrl(String roleUrl) {
         this.roleUrl = roleUrl;
     }
+
+    public String getDetailsUrl() {
+        return detailsUrl;
+    }
+
+    public void setDetailsUrl(String detailsUrl) {
+        this.detailsUrl = detailsUrl;
+    }
 }
\ No newline at end of file
diff --git a/webui/src/extension-registry-service.ts b/webui/src/extension-registry-service.ts
index 6bb3144fb..ff872535a 100644
--- a/webui/src/extension-registry-service.ts
+++ b/webui/src/extension-registry-service.ts
@@ -49,7 +49,7 @@ export class ExtensionRegistryService {
         return sendRequest({ abortController, endpoint });
     }
 
-    async setNamespaceDetails(abortController: AbortController, details: NamespaceDetails): Promise<Readonly<SuccessResult | ErrorResult>> {
+    async setNamespaceDetails(abortController: AbortController, endpoint: string, details: NamespaceDetails): Promise<Readonly<SuccessResult | ErrorResult>> {
         const csrfResponse = await this.getCsrfToken(abortController);
         const headers: Record<string, string> = {
             'Content-Type': 'application/json;charset=UTF-8'
@@ -59,7 +59,6 @@ export class ExtensionRegistryService {
             headers[csrfToken.header] = csrfToken.value;
         }
 
-        const endpoint = createAbsoluteURL([this.serverUrl, 'user', 'namespace', details.name, 'details']);
         return sendRequest({
             abortController,
             method: 'POST',
@@ -70,7 +69,7 @@ export class ExtensionRegistryService {
         });
     }
 
-    async setNamespaceLogo(abortController: AbortController, namespace: string, logoFile: Blob, logoName: string): Promise<Readonly<SuccessResult | ErrorResult>> {
+    async setNamespaceLogo(abortController: AbortController, endpoint: string, logoFile: Blob, logoName: string): Promise<Readonly<SuccessResult | ErrorResult>> {
         const csrfResponse = await this.getCsrfToken(abortController);
         const headers: Record<string, string> = {};
         if (!isError(csrfResponse)) {
@@ -80,7 +79,7 @@ export class ExtensionRegistryService {
 
         const form = new FormData();
         form.append('file', logoFile, logoName);
-        const endpoint = createAbsoluteURL([this.serverUrl, 'user', 'namespace', namespace, 'details', 'logo']);
+        endpoint = createAbsoluteURL([endpoint, 'logo']);
         return sendRequest({
             abortController,
             method: 'POST',
diff --git a/webui/src/extension-registry-types.ts b/webui/src/extension-registry-types.ts
index 45fecbe0b..cd8b862a8 100644
--- a/webui/src/extension-registry-types.ts
+++ b/webui/src/extension-registry-types.ts
@@ -220,6 +220,7 @@ export interface Namespace {
     verified: boolean;
     membersUrl: UrlString;
     roleUrl: UrlString;
+    detailsUrl: UrlString;
 }
 
 export interface NamespaceDetails {
diff --git a/webui/src/pages/user/user-namespace-details.tsx b/webui/src/pages/user/user-namespace-details.tsx
index a2821514a..35c29c72a 100644
--- a/webui/src/pages/user/user-namespace-details.tsx
+++ b/webui/src/pages/user/user-namespace-details.tsx
@@ -194,14 +194,14 @@ export const UserNamespaceDetails: FunctionComponent<UserNamespaceDetailsProps>
                 ? 'https://twitter.com/' + details.socialLinks.twitter
                 : undefined;
 
-            const result = await context.service.setNamespaceDetails(abortController.current, details);
+            const result = await context.service.setNamespaceDetails(abortController.current, props.namespace.detailsUrl, details);
             if (isError(result)) {
                 throw result;
             }
 
             if (logoPreview) {
                 const logoFile = await (await fetch(logoPreview)).blob();
-                await context.service.setNamespaceLogo(abortController.current, details.name, logoFile, details.logo as string);
+                await context.service.setNamespaceLogo(abortController.current, props.namespace.detailsUrl, logoFile, details.logo as string);
                 await getNamespaceDetails();
             } else {
                 setCurrentDetails(copy(newDetails));
diff --git a/webui/src/pages/user/user-settings-namespace-detail.tsx b/webui/src/pages/user/user-settings-namespace-detail.tsx
index b23beba13..68f752863 100644
--- a/webui/src/pages/user/user-settings-namespace-detail.tsx
+++ b/webui/src/pages/user/user-settings-namespace-detail.tsx
@@ -108,18 +108,20 @@ export const NamespaceDetail: FunctionComponent<NamespaceDetailProps> = props =>
             </Grid>
             {
                 props.namespace.membersUrl
-                ? <>
-                    <Grid item>
-                        <UserNamespaceMemberList
-                            setLoadingState={props.setLoadingState}
-                            namespace={props.namespace}
-                            filterUsers={props.filterUsers}
-                            fixSelf={props.fixSelf} />
-                    </Grid>
-                    <Grid item>
-                        <UserNamespaceDetails namespace={props.namespace}/>
-                    </Grid>
-                </>
+                ? <Grid item>
+                    <UserNamespaceMemberList
+                        setLoadingState={props.setLoadingState}
+                        namespace={props.namespace}
+                        filterUsers={props.filterUsers}
+                        fixSelf={props.fixSelf} />
+                </Grid>
+                : null
+            }
+            {
+                props.namespace.detailsUrl
+                ? <Grid item>
+                    <UserNamespaceDetails namespace={props.namespace}/>
+                </Grid>
                 : null
             }
             <Grid item>