Skip to main content
Backed by Y Combinator (opens in a new tab)

Privileged access management for AI agents

Control what agents can do for each user or customer, with rules that are easy to write and test. Keys never reach the agent, every call is authorized and audited, and risky calls wait for approval.

billing-agentRefund order #4821 for Maria Lopez, $240.00
  1. IdentityOwn key, scoped to Stripe3 ms
  2. GrantActing for finance-ops4 ms
  3. Policy“Refunds over $200 need approval”Hold
  4. ApprovalApproved by J. Lee1m 42s
  5. CredentialKey injected, agent never sees it1 ms
  6. StripePOST /v1/refunds → 200212 ms
  7. AuditLogged and streamed to SIEM1 ms
Refund issued, with a named approver and a full record. 1m 44s end to end.

Trusted by

  • Cardinal Robotics
  • Shor
  • Accelera Solutions
  • Antinode
Get started

Put your first agent behind Alter in 10 minutes.

The free plan includes 10,000 API calls a month and unlimited users, agents and apps. Sign up, mint a key, and make your first governed call.

Install the SDK

  • Python$ pip install alter-sdk
  • TypeScript$ npm install @alter-ai/alter-sdk

Or let your coding agent set it up

$ claude mcp add --transport http alter-onboarding \ https://mcp.alterauth.com/mcp

The Alter Docs MCP server walks your agent through the CLI, the SDK and each verification step.

The problem

Give agents their own keys, not yours.

Without Alter

.envOPENAI_API_KEYsystem-prompt.mdSLACK_BOT_TOKENci-config.yamlSTRIPE_SECRET_KEY

Keys scattered everywhere

Pasted into prompts, configs, and .env files across every repo.

admin-key-prodused by: all 14 agents

One key does everything

Every agent borrows the same over-scoped credential.

Who refunded that charge?No results found.

No answers afterward

Nobody can say which agent did what, or on whose behalf.

With Alter

vault: 3 credentialsinjected per request

One vault

Stored once and injected per request, so proxied calls keep it out of your code.

billing-agent · refunds:writeneeds approval

Least privilege per agent

Each agent gets its own identity and scopes, with a human gate where you want one.

Who refunded that charge?billing-agent, for finance-ops, 14:03, approved by J. Lee

Every action on the record

A tamper-evident trail with a name attached to every call.

Platform

One control point between your agents and every API they call.

Alter sits in the request path. It checks who the agent is, whose data it is touching and what your policy allows, then injects the credential and records the outcome.

  • 01

    Decide what each agent may do

  • Policy to the parameter

    Deny by default. Narrow by method, endpoint, amount or field, at org, app, agent or grant level.

    Policy engine ›
  • Per-agent identity

    Each agent gets its own key and scopes, so every call traces to that agent, and to the person it acts for when it acts for one.

    Agent identity ›
  • Credentials stay in the vault

    With proxied calls, Alter injects the OAuth token or API key on its side, so the agent never holds it. Delegated, restricted and approval-gated grants are proxy-only.

    Credential vault ›
Runtime policies · dashboard
  • 02

    Hold risky calls for a person

  • Human approval

    Risky calls wait for a named person, who sees the exact request before it runs.

    Approvals ›
  • End users stay in control

    People see and revoke what each agent can do with their accounts, from their own wallet.

    Wallet ›
  • Instant revocation

    Revoke an agent, key or grant and the next request fails. IdP offboarding cascades.

    PAM for AI agents ›
A held refund, approved · wallet
  • 03

    Keep a record of every call

  • Audit trail

    Every call has a row: which agent, on whose behalf when it acts for someone, which endpoint, which policy decided it.

    Compliance & audit ›
  • SIEM and OTEL export

    Stream the same record to Splunk, Datadog or your own collector.

    See exports ›
  • Evidence on request

    Export a filtered trail for a customer's security review.

    The security review ›
Audit logs · dashboard
For developers

Agents get scoped access. Proxied calls never hand them the key.

One SDK call handles storage, refresh, policy, and audit for 140+ providers. First-class LangChain, MCP, and AWS integrations.

Read the quickstart
app.proxy_request()
import osfrom alter_sdk import App, HttpMethod, PendingApproval async with App(api_key=os.environ["ALTER_API_KEY"]) as app:    # Token resolved, injected, and audited automatically    response = await app.proxy_request(        HttpMethod.GET,        "https://api.github.com/user/repos",        grant_id=os.environ["GITHUB_GRANT_ID"],        query_params={"sort": "updated", "per_page": 5},    )    if isinstance(response, PendingApproval):        response = await app.await_approval(response.approval_id)    repos = response.body_json()
  • Per-agent identity

    Each agent has its own key and scopes, traceable to a person.

  • No secrets in code

    Tokens live in a dedicated vault, and proxied calls inject them on Alter's side.

  • Fail closed

    If a policy cannot be evaluated, the request is denied.

Building agents

Pass your customers' security review

  • Per-agent identity and scoped grants instead of one shared key
  • Policy and human approval a customer's security team can inspect
  • An audit trail you can hand to a reviewer, streamed to their SIEM
The security review, answered ›

Securing agents

PAM controls for a new kind of privileged user

  • See every call an agent makes through Alter: which agent, whose access, which policy, who approved
  • Default-deny policy down to the parameter, and approval for risky calls
  • Revoke an agent, key or grant instantly; IdP webhooks cascade offboarding
PAM for AI agents ›
Integrations
140+

OAuth providers and API-key services, ready to govern.

Every provider ships with a catalog of its operations, so you write policy against what the API actually does. LangChain, MCP and AWS SDK integrations included.

View all integrations ›
Use cases

What teams build on Alter

By situation

Guides

Every card is a working guide with code.

Security

A platform you can trust

  • Credentials live in a dedicated secret store, encrypted at rest, with keys managed outside the application database
  • Fail-closed authorization: if a policy cannot be evaluated, the request is denied
  • Zero-trust ownership: a key confers no capability without an explicit record naming it
  • Postgres holds metadata and vault references; provider tokens and credentials live only in the vault
  • Per-key isolation, plaintext credentials never in logs, and proxy-only keys that cannot retrieve a credential at all
Compliance & audit ›

Controls monitored continuously

SOC 2 in progress

Our trust center publishes the live state of our security program: monitored controls, an independent penetration test within the last 12 months, and security policy documents on request.

Visit the trust center (opens in a new tab)
Company

Built by engineers who ran platform infrastructure at scale.

Alter Labs is based in New York and backed by Y Combinator. You talk to the founders from the first call.

About the company ›
  • Srikar Dandamuraju

    Srikar Dandamuraju

    Co-Founder & CEO

    Previously led platform engineering at Goldman Sachs, scaling core infrastructure for its asset management business and the launch of the GM Card.

  • Kevan Dodhia

    Kevan Dodhia

    Co-Founder & CTO

    Previously technical co-founder of Compute.ai, a high-performance compute platform for regulated enterprises, acquired by Terizza in 2025.

Put your agents under privileged access control.

Book a 30-minute walkthrough with the founders.

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.