diff --git a/src/apps/officer-web/Screens/Dashboard/Settings/IntegrationsSettings/index.tsx b/src/apps/officer-web/Screens/Dashboard/Settings/IntegrationsSettings/index.tsx
index b4249bce..bdd39670 100644
--- a/src/apps/officer-web/Screens/Dashboard/Settings/IntegrationsSettings/index.tsx
+++ b/src/apps/officer-web/Screens/Dashboard/Settings/IntegrationsSettings/index.tsx
@@ -11,7 +11,6 @@ import { GoogleOAuthConfig } from './GoogleOAuthConfig';
import { BrowserRelay } from './BrowserRelay';
import { ApifyConfig } from './ApifyConfig';
import { DavAppPasswords } from './DavAppPasswords';
-import { ApiKeys } from './ApiKeys';
const BASE_PATH = '/settings/integrations';
@@ -51,13 +50,6 @@ const personalSections: SettingsSection[] = [
description: 'Per-device passwords for CalDAV/CardDAV clients',
content: ,
},
- {
- key: 'api-keys',
- icon: KeyRound,
- title: 'API keys',
- description: 'Per-app keys that sign in as you, revocable one at a time',
- content: ,
- },
{
key: 'browser-relay',
icon: Globe,
diff --git a/src/apps/officer-web/Screens/Dashboard/Settings/IntegrationsSettings/ApiKeys.tsx b/src/apps/officer-web/Screens/Dashboard/Settings/ProfileSettings/ApiKeys.tsx
similarity index 100%
rename from src/apps/officer-web/Screens/Dashboard/Settings/IntegrationsSettings/ApiKeys.tsx
rename to src/apps/officer-web/Screens/Dashboard/Settings/ProfileSettings/ApiKeys.tsx
diff --git a/src/apps/officer-web/Screens/Dashboard/Settings/ProfileSettings/index.tsx b/src/apps/officer-web/Screens/Dashboard/Settings/ProfileSettings/index.tsx
index 0d3b2a7a..b69c3611 100644
--- a/src/apps/officer-web/Screens/Dashboard/Settings/ProfileSettings/index.tsx
+++ b/src/apps/officer-web/Screens/Dashboard/Settings/ProfileSettings/index.tsx
@@ -1,11 +1,12 @@
import { useMemo } from 'react';
-import { User, Lock, Globe, LayoutGrid, Volume2 } from 'lucide-react';
+import { User, Lock, Globe, KeyRound, LayoutGrid, Volume2 } from 'lucide-react';
import type { LayoutNode, PanelComponents } from 'officerdev';
import { WorkspaceLayout } from 'officerdev';
import { SettingsRoute, createSettingsPanelComponents, type SettingsSection } from '../SettingsPanel';
import { UserData } from './UserData';
import { ChangePassword } from './ChangePassword';
+import { ApiKeys } from './ApiKeys';
import { Languages } from './Languages';
import { DockSettings } from './DockSettings';
import { VoicePreference } from './VoicePreference';
@@ -21,6 +22,17 @@ const sections: SettingsSection[] = [
description: 'Update your password',
content: ,
},
+ // Beside the password rather than under Integrations, where it was until 2026-08-21. A key is not an
+ // integration with anything — it is a second way to present the authority this account already has, and
+ // the permission registry says so: `/api-keys` is `core`, sitting with `/user` and `/dock`. Somebody
+ // looking for it went to user management and then to profile, which is where it should have been.
+ {
+ key: 'api-keys',
+ icon: KeyRound,
+ title: 'API keys',
+ description: 'Per-app keys that sign in as you, revocable one at a time',
+ content: ,
+ },
{
key: 'languages',
icon: Globe,