Admin operations: overview
Phoenix supports two tiers of API key:
- User keys — the default. Can call the org's normal tool set (company, contact, search, agents, connected third-party tools).
- Admin keys — a separate, narrow surface. While its owner remains an org admin, an admin key exposes only the privileged management tools (invite/remove users, configure integrations, view org consumption); the normal tools are not exposed to it and calling one is refused. If you need both, keep two connections. Available via the MCP endpoint, the admin REST endpoints, and the Power Automate REST facade.
Admin keys are always scoped to a single organization. Their admin tools work only while the user who minted the key still holds an admin role on at least one team in that organization. If they lose the admin role but remain a member, the key is not revoked: over MCP and Power Automate it is treated as an ordinary user key, while the admin REST endpoints reject it. If they lose access to the organization altogether, all of their keys for that organization are revoked and stop authenticating entirely.
Minting an admin key
- Sign in as an org admin (
team_memberships.role = 'admin'). - Open Organizations → MCP for your org.
- Click Generate New Key, name it (e.g. "Zapier admin"), and pick Admin as the scope.
- Copy the key. It also stays visible in the keys table afterwards, with an "Admin" badge, so you can retrieve it again later.
If the Admin option is greyed out, your team membership does not have
role = 'admin' for this org. Ask an existing admin to promote you.
Security model
Three checks run on every privileged request:
- The key validates against the registry (
api_keys_registry). - The key was minted with
scope = 'admin'. - The user still has
team_memberships.role = 'admin'for this org right now. This recheck happens on every request.
A user counts as an org admin while they hold an admin role on at least
one team in the organization. Once that is no longer true — but they are
still a member — their admin key is not automatically deleted, though its
admin tools stop working: the admin REST endpoints and the Power Automate
facade (for the admin tools it exposes) return 403 forbidden_admin_scope,
and over MCP the admin tools simply disappear from tools/list. Over MCP and
Power Automate the key itself keeps working, falling back to user scope so
the ordinary tools it is entitled to become available to it. If instead the
user is removed from the organization entirely, every key they hold for it is
revoked automatically and stops authenticating. To revoke a key yourself at
any time, use the Revoke button in the MCP keys table.
Auditing
Every privileged action performed via an admin key writes a row to
webapp_org_admin_audit_log:
actor_user_id— who took the action.api_key_id— which key was used.action— one ofinvite_user,remove_user,view_consumption,set_integration_credentials,remove_integration_credentials,list_integrations,view_users,view_api_keys,view_consumption_by_api_key.target_type/target_id— what was acted on.metadata— action-specific details (jsonb).ip_address/user_agent— client metadata.
A successful action always logs. A failing action does not log — only
completed operations are audited. If the audit insert itself fails, the
action still succeeds and the audit failure is reported in the application
logs (org-admin audit log error tag).
What admin keys cannot do
- Cross-organization actions. The key is bound to a single org via
api_keys_registry.organization_slug; admin endpoints derive the org from the key, never from a request parameter. - Mint other admin keys via the API. Key creation goes through the webapp; the MCP/API surface does not expose key minting.
- Bypass HG superadmin tooling. Customer org admins and HG staff are
separate audit surfaces (
org_admin_audit_logvs.superadmin_audit_log).
Available admin tools
| Tool | Surface | Audit action |
|---|---|---|
admin_invite_user | MCP, REST, Power Automate | invite_user |
admin_remove_user | MCP, REST, Power Automate | remove_user |
admin_get_consumption | MCP, REST, Power Automate | view_consumption |
admin_list_integrations | MCP, REST, Power Automate | list_integrations |
admin_set_integration_credentials | MCP, REST, Power Automate | set_integration_credentials |
admin_remove_integration_credentials | MCP, REST, Power Automate | remove_integration_credentials |
admin_list_users | MCP, REST, Power Automate | view_users |
admin_list_api_keys | MCP, REST, Power Automate | view_api_keys |
admin_get_consumption_by_api_key | MCP, REST, Power Automate | view_consumption_by_api_key |
Foundation lands in #1150; user-management tools (#1151), integration-configuration tools (#1152), and the user/key inventory + per-key consumption tools (#1177).