Platform operator only: your account needs admin or superadmin in public.user_roles (granted in the database — not org owner, not workspace “admin” in the UI). Operators: see docs/ADMIN_BOOTSTRAP.md in the repo (npm run admin:grant-superadmin, admin:bootstrap-superadmin, or promote-app-admin).
Platform operations
Live process counters + DB counts + 24h AI telemetry (GET /api/admin/metrics/summary).
Credits for the org resolved on your JWT. Admin chat logs admin_ops telemetry only.
Use Open for a side panel with subscription, AI/Serper credits, top-ups, and shortcuts to Billing and Messaging.
Open loads profile, org memberships, security events, and recent AI usage in the side panel.
Read-only view from GET /api/admin/directory/orgs/:orgId/billing (entitlements, ledger, Serper meter, recent top-up purchases).
Uses /api/billing/admin/*. JWT mode: same session as this page. Legacy deployments need x-admin-key via API client.
Mirrored from Settings so subscription tools, snapshots, and flags stay on one tab (PATCH /api/billing/admin/runtime-flags).
GET /api/billing/admin/audit — optional org filter, CSV export, full row JSON. The Audit log tab has the same filters for a full-page view.
Recipients resolve from user_profiles.email_snapshot. Max 500 per send. Preview first, then confirm send.
Delivers to the user’s terminal bell (POST /api/admin/user-notifications). Requires user_profiles row and migration 066_user_in_app_notifications.sql.
Collector eligibility from GET /api/admin/provider-contract/collector-matrix (uses live /config).
Validate arbitrary JSON with POST /api/admin/provider-contract/validate — responses include missing fields, unrecognized keys, and type errors.
Open this tab to load collector diagnostics…
Stripe sync/revoke, credit snapshots, runtime flags, and billing_audit_log export live on the Billing tab (same /api/billing/admin/* session).
Rows from billing_audit_log via GET /api/billing/admin/audit.
Founder checkout gate. Requires billing admin access. The same control is on the Billing tab.