diff --git a/apps/landing/src/components/shared/ApiKeyWidget/apikey-widget.tsx b/apps/landing/src/components/shared/ApiKeyWidget/apikey-widget.tsx
new file mode 100644
index 0000000..a4c3d41
--- /dev/null
+++ b/apps/landing/src/components/shared/ApiKeyWidget/apikey-widget.tsx
@@ -0,0 +1,126 @@
+'use client';
+
+import { useState } from 'react';
+
+interface ApiKeyWidgetProps {
+ organizationSlug: string;
+ projectSlug: string;
+ apiKey: string;
+ onRevoke: () => void;
+}
+
+export function ApiKeyWidget({
+ organizationSlug,
+ projectSlug,
+ apiKey,
+ onRevoke,
+}: ApiKeyWidgetProps) {
+ const [expanded, setExpanded] = useState(false);
+ const [keyVisible, setKeyVisible] = useState(false);
+
+ return (
+
+ {!expanded ? (
+ // Minimized badge
+
+ ) : (
+ // Expanded card
+
+
+
+
API Key Active
+
+ {organizationSlug} / {projectSlug}
+
+
+
+
+
+
+
+
+
+ {keyVisible ? apiKey : '•'.repeat(32)}
+
+
+
+
+
+
+
+ )}
+
+ );
+}