Control who uses AI and how

Organizations, roles and single sign-on decide who can use which routers, agents and keys. Every change is recorded.

Organizations inside one account

Give each team its own organization with its own routers, keys, people, policies and budgets. Account admins see and manage every organization.

Multi-Router Engineering ▾ DashboardRoutersModelsPromptsTrafficBudgetsPeople DK
Account
A Acme212 people · 2 routers
Organizations
E Engineering48 people · 3 routers ✓
R Research17 people · 2 routers
S Support64 people · 2 routers
+ New organizationManage organizations
AAcmeacc_7Hx2Lq9W Account
2 routers 4 provider keys 212 people 3 organizations
The account is an organization too. Account admins manage it and see every organization below.
EEngineeringorg_Eng4Tz81
Routersrt_claude_codert_codexrt_review_bot
Provider keys6
People48
PolicyStandard engineering
Budget$25,000 monthly
Regionus-west-2
RResearchorg_Rsc9Pk20
Routersrt_eval_runnerrt_lab_eu
Provider keys3
People17
PolicyResearch EU
Budget$12,000 monthly
Regioneu-central-1
SSupportorg_Sup3Mv57
Routersrt_triagert_reply_draft
Provider keys2
People64
PolicySupport agents
Budget$6,000 monthly
Regionus-east-1

Roles and access

Each person is an admin or a member of each organization, and portal access for agents is granted separately. Access always follows the organization selected.

PRPriya Ramanpriya@acme.com Active
AccessEdit
OrganizationDashboard rolePortal accessPolicy
AcmeAccount Member▾ Off No policy
Engineering Admin▾ On Standard engineering
Research None▾ On Research EU
+ Add organization
The dashboard role and portal access are separate settings on each membership. A role on the account is the account role.
What Priya can doby organization
Acme
✓Use routers, prompts and keys
✕Manage people
✕See the roster and activity log
✕Agents in the portal
Engineering
✓Use routers, prompts and keys
✓Manage people and invites
✓Configure SSO for the organization
✓Agents in the portal
Research
✕Open the dashboard
✓Agents in the portal
Enterprise

Single sign-on

People sign in through Okta, Microsoft Entra ID, Google Workspace, Ping Identity or JumpCloud over OpenID Connect. Require SSO for your domain, and deactivated directory users cannot sign in.

Identity providerpick one
OktaOpenID Connect · SAML, enterprise IdP
Microsoft Entra IDOpenID Connect · SAML, formerly Azure AD ✓
Google WorkspaceOpenID Connect, for Google-managed orgs
Ping IdentityOpenID Connect · SAML
JumpCloudOpenID Connect · SAML
Microsoft Entra ID acme.com Test connection
Issuer / Discovery URL https://login.microsoftonline.com/4f1c…9a2e/v2.0
✓ Connection looks good ✓Discovery document: issuer verified; authorization and token endpoints found✓Signing keys (JWKS): 2 signing keys available Client ID, secret and the redirect URI are verified during an actual sign-in.
Require SSO for everyonePassword and social login are off for acme.com. A break-glass admin login stays available.
✓Domain ownership verifiedSSO login stays off until a DNS TXT record proves the domain is yours.
→Directory sync is availableWith SSO connected, connect SCIM so groups grant access and deactivated users lose it. Set up
Enterprise

Directory sync and review

Your identity provider adds, updates and suspends people. Directory rules turn groups and attributes into access, and account-admin grants wait for review.

oktaYour directorySCIM 2.0
Pushed groups
Engineering51 people
Support22 people
Research9 people
Platform-Admins3 people
Latest changes
10:41Li Wei added to Engineering
10:42Ravi Shah deactivated
10:44Dana Kim added to Platform-Admins
User provisioning (SCIM)On
Endpoint https://api.multi-router.ai/scim/v2/acc_7Hx2Lq9W Account-scoped. A token from another account is refused.
When someone new arrives
Apply rules automaticallyMatching rules grant new access automatically; account-admin grants await approval.
Require admin approvalMatching rules create approval requests without granting access.
Do nothingNew arrivals get no access until an admin grants it.
Connection health Last request 2 min agoPATCH /Users · 200
Edit ruleRule on
Name Engineering
Condition type GroupAttribute oktaEngineeringpushed group · 51 members
Account role No Operator AccessMemberAdmin
Add to organization
Engineering MemberAdmin Portal access Standard engineering
Preview people51 match · 3 change
Priya Raman priya@example.com Already applied
Li Wei li@example.com Will apply
Noah Brandt noah@example.com Will apply
Jo Patel jo@example.com Will apply; removal needs Review
Ravi Shah ravi@example.com Skipped · Suspended
New arrivals follow the rule. Existing people stay unchanged until you apply it. Save ruleApply to 3 people
LWLi Wei Access granted
Engineering · Member
Portal access · Standard engineering
Rule Engineering
RSRavi Shah Suspended
2 agents and 2 keys stopped
Access kept for reactivation
Deactivated in Okta
DKDana Kim Waiting for approval
Account admin
In Review until an admin approves
Rule Platform admins

Activity log

Every change to access, agents, keys and policies in the account, with who made it: a person, an API key or directory sync.

People AcmeAccount admins only
PeopleRulesReviewActivity
Search activity Person · All Actor · All Event type · All Date range
From2026-10-14 To2026-10-20 Clear
Search and filters run across the whole account.
Account suspended for Priya Raman by Directory sync · Oct 20, 10:42 AM Lifecycle
Admin role granted in Engineering for Marco Ruiz by Dana Kim · Oct 20, 10:15 AM Dashboard role
Policy set to Support desk in Support for Ana Costa by Directory sync · Oct 20, 9:58 AM Policy
Agent key rotated · Claude Code for Li Wei by Li Wei · Oct 20, 9:31 AM Agent
Portal access granted in Support for Noah Brandt by API key platform-terraform · Oct 20, 9:02 AM Portal
Account role changed to Admin for Dana Kim by Sam Lee · Oct 19, 4:47 PM Account role
Removed from Research for Jo Patel by Sam Lee · Oct 19, 3:12 PM Membership
Invite accepted for Ravi Shah Oct 19, 11:05 AM Lifecycle
Changes from the dashboard, the API and directory sync, for every person and organization in the account.

What gets stored

Prompts can hold source code and customer data. An account Storage Policy sets the most any router may keep, and each router keeps that much or less.

Storage PolicyAccount admin
Request metadata
Anonymized usage onlyModel, tokens, cost and latency. Customer, session and IP are dropped.
All request metadataEvery metadata field, with no prompts or responses.
All dataEvery metadata field, and payloads up to the capture limit below.
Request and response payloads
Failures onlyPayloads of failed requests
SampleA share of requests 10%
All PayloadsEvery request and response
The most any router in the account may keep. Routers can only keep less.
Routers Request Logging6 of 38
RouterRequest metadataPayloads
support-botrt_support · App Anonymous Metadata None
checkout-assistrt_checkout · App Inherit · Full Metadata Inherit · Sample 10%
Claude Code · Engineeringrt_cc_eng · Agent Full Metadata None
Claude Desktop · Legalrt_cd_legal · Agent Failures only None
evals-runnerrt_evals · App Full Metadata Sample 10% Set to All Payloads · held at the policy
pii-redactorrt_redact · App None None
Prompts can hold source code and customer data. Each router keeps only what its job needs.

Keys and machine identity

Every API key has scopes, the routers it may use, a rate limit and an expiry. CI jobs and Kubernetes workloads sign in with the identity their platform issues, so no key is stored.

Issuers AccountRegister an identity issuer
GitHub Actions CI job token.actions.githubusercontent.com Authorized organizationsEngineeringResearch
GitLab CI CI job gitlab.example.com Authorized organizationsSupport
prod-eks Kubernetes service account oidc.eks.us-west-2.amazonaws.com/id/7F3A90C1 Authorized organizationsEngineering
If the issuer's signing keys go stale Keep serving with cached keys Reject requests
Machine identity bindings EngineeringNew binding
Using GitHub Actions, authorized by the account
repo:acme/api:ref:refs/heads/main Enabled
This exact subject rt_ci_review Send inference requests
repo:acme/ Enabled
Subject prefix rt_ci_docsrt_ci_tests Send inference, list models
repo:acme/legacy-app:pull_request Disabled
This exact subject rt_ci_review Send inference requests
Each organization binds subjects to its own routers. No key is issued.
Static API keyMachine identity
Secret stored in CIAn API key in the secret storeNone
LifetimeUntil it expires or is disabledMinutes, issued per job or pod
RotationRotate and redeployEvery run gets a new token
Recorded asThe key nameIssuer and subject, per request
Enterprise

Suspend and offboard

Suspend a person, or deactivate them in your directory, and every session, agent and key they hold stops at once. Offboarding removes them from the account for good.

Priya Raman leavesSuspended
Priya Raman deactivated10:41 Okta · User deprovisioned over SCIM
Account suspended10:42 Multi-Router · Dashboard and portal sessions ended. 3 agents and their keys stopped.
Removed from Engineering and Research10:58 dana@example.com · Account access removed
Agents retired11:02 dana@example.com · Claude Code · Engineering, Claude Desktop · Engineering, Claude Code · Research
Agents
Claude Code · Engineering mr_live_…9f2c Retired
Claude Desktop · Engineering mr_live_…41ad Retired
Claude Code · Research mr_live_…7b10 Retired
Offboardpriya@example.com
✓ SuspendedSign-in blocked, memberships kept
✓ Account access removedNo role in the account
✓ Removed from every organizationEngineering, Research
✓ Every agent retired3 agents, 3 keys
Offboard Priya Raman? This ends their place in the account. Coming back needs a new invitation.
Yes, offboardCancel
Offboard stays locked while the person still has access or an active agent.
Enterprise

Governance on your own infrastructure

Run the same Multi-Router server in your own cloud account, with your own database, secret store and request records.

Runs on
People and agents
Dashboarddashboard.ai.example.com
APIapi.ai.example.com
Portalportal.ai.example.com
Your cloud account VPC vpc-0a41 · us-west-2VPC network acme-prod · us-central1VNet acme-prod · eastus
Load balancer Application Load BalancerCloud Load BalancingApplication Gateway Terminates TLS · forwards to :8080
Multi-Router serverReady Compute: Amazon ECS, EKS or EC2Compute: Cloud Run, GKE or Compute EngineCompute: Container Apps, AKS or Virtual Machines copy 1copy 2copy 3 GET /health/ready · 200
Database Amazon RDS for PostgreSQL or DynamoDBCloud SQL for PostgreSQLAzure Database for PostgreSQL Accounts, routers, keys, prompts and policies
Secret store AWS Secrets ManagerSecret ManagerAzure Key Vault Database connection and encryption keys, their only copy
Request records ClickHouse on AWSClickHouse on Google CloudClickHouse on Azure Traffic, request stats and budget reporting
Payloads Amazon S3Cloud StorageAzure Blob Storage Request and response payloads, when captured
Email Amazon SESGoogle Workspace SMTP relayAzure Communication Services Invitations, Portal links and budget alerts
Logs Amazon CloudWatchCloud LoggingAzure Monitor Server logs and health checks
Model providers
Anthropic
OpenAI
AWS Bedrock
Google Vertex
Outbound HTTPS to the providers you configure.
Keys

Provider keys and API keys are encrypted in your database. The keys that decrypt them live only in your secret store.

Data

Requests, prompts, request records and payloads stay in stores you run, and none of it is sent to Multi-Router.

Any major cloud

Run on AWS, Google Cloud or Azure with that cloud’s own compute, database, secret store, storage and email. The same server as the hosted service.

Bring governance to your AI traffic

Connect your identity provider, create organizations and assign roles.