{"name":"Agent credentials compared","description":"Products that let an agent call a service without storing that service's long-lived secret. Not documented means the linked page does not state the fact. Rows are alphabetical by product.","license":"CC BY 4.0","license_url":"https://creativecommons.org/licenses/by/4.0/","dateModified":"2026-10-26","attribution":"The Agent Economy agent credentials (https://theagenteconomy.si/data/agent-credentials.json), licensed under CC BY 4.0.","distribution":"https://theagenteconomy.si/data/agent-credentials.json","order":"alphabetical by product","legend":{"Documented":"The linked page states the fact.","Not documented":"The linked page does not state the fact. The cell includes the day that page was read."},"counts":{"documented":55,"not_documented":9,"total":64},"deadlines":[{"id":"stripe-mcp-agent-keys","text":"Migrate by November 30, 2026. Starting in December, Stripe MCP will stop accepting full-access secret keys and restricted API keys without the Agent tag. Requests that use an unsupported key receive a 401 response with an OAuth discovery challenge.","source_url":"https://docs.stripe.com/mcp","source_title":"Stripe docs: Model Context Protocol","checked":"2026-10-26"},{"id":"vercel-marketplace-static-credentials","text":"By November 30, 2026, Marketplace vendors who do not support OIDC auth from Vercel and use long-lived secrets will have a similar \"Not secure\" message on their listing. By January 2027, vendors who do not offer secure auth will be delisted.","source_url":"https://vercel.com/blog/death-to-long-lived-static-credentials","source_title":"Vercel blog: Death to long-lived static credentials, 22 October 2026","checked":"2026-10-26"}],"title":"Agent credentials compared","updated":"2026-10-26","rows":[{"product":"1Password for Agents","listing_slug":null,"lifetime":{"text":"The Claude security page says credentials are released to one Claude session and discarded when the session ends, when the browser closes, or after a hard cap of nine hours.","source_url":"https://support.1password.com/1password-claude-security/","source_title":"1Password support: security of 1Password for Claude","checked":"2026-10-26"},"identity":{"text":"The Claude security page says pairing is per account, and each agent session enrolls on its own. Credentials granted to one session are invisible to every other session.","source_url":"https://support.1password.com/1password-claude-security/","source_title":"1Password support: security of 1Password for Claude","checked":"2026-10-26"},"sees_secret":{"text":"The integrations page says the agent does not receive or see the credential. 1Password fills the password or one-time code into the sign-in form, and the agent only sees that access is granted.","source_url":"https://1password.com/personal-ai-agent-integrations","source_title":"1Password for Agents","checked":"2026-10-26"},"scoping":{"text":"The Claude security page says approval releases only the items you selected, and a fill happens only on a page that matches the websites saved on that item.","source_url":"https://support.1password.com/1password-claude-security/","source_title":"1Password support: security of 1Password for Claude","checked":"2026-10-26"},"human_approval":{"text":"The Claude security page says a human approves every credential release, and there are no standing approvals. A new agent session means a new prompt.","source_url":"https://support.1password.com/1password-claude-security/","source_title":"1Password support: security of 1Password for Claude","checked":"2026-10-26"},"revocation":{"text":"The Claude security page says you can deny a request, and the credential cache is destroyed when the session ends, when the browser closes, or after nine hours. The next request starts with another prompt.","source_url":"https://support.1password.com/1password-claude-security/","source_title":"1Password support: security of 1Password for Claude","checked":"2026-10-26"},"audit":{"text":"The Claude security page says every grant is recorded in the account's item usage history.","source_url":"https://support.1password.com/1password-claude-security/","source_title":"1Password support: security of 1Password for Claude","checked":"2026-10-26"},"license":{"text":"Not documented as of 2026-10-26. The integrations page and the Claude security page do not name a software license.","source_url":"https://1password.com/personal-ai-agent-integrations","source_title":"1Password for Agents","checked":"2026-10-26"}},{"product":"Agent Vault","listing_slug":"agent-vault","lifetime":{"text":"The API keys page does not state an expiry for an av_ key. A hosted MCP connection that goes unused is revoked automatically, and the page says the default unused date is 31 days after the last use.","source_url":"https://docs.agentvault.io/dashboard/api-keys","source_title":"Agent Vault docs: API keys","checked":"2026-10-26"},"identity":{"text":"The API keys page says to give each agent its own API key, limited to the cards and logins it needs. A hosted MCP sign-in is its own connection on the account.","source_url":"https://docs.agentvault.io/dashboard/api-keys","source_title":"Agent Vault docs: API keys","checked":"2026-10-26"},"sees_secret":{"text":"The docs home says the agent is handed only placeholders, never the real card number or passwords, with one narrow read-back exception for text a site echoes back onto the page.","source_url":"https://docs.agentvault.io/","source_title":"Agent Vault docs: What is Agent Vault","checked":"2026-10-26"},"scoping":{"text":"The API keys page says card and login access can be all of them or only the ones you tick. Creating logins is off unless you turn it on.","source_url":"https://docs.agentvault.io/dashboard/api-keys","source_title":"Agent Vault docs: API keys","checked":"2026-10-26"},"human_approval":{"text":"The docs home says a checkout above an amount you choose waits for your yes, and bank checks, one-time codes, and CAPTCHAs come to you on the live page.","source_url":"https://docs.agentvault.io/","source_title":"Agent Vault docs: What is Agent Vault","checked":"2026-10-26"},"revocation":{"text":"The API keys page says revoking a key is permanent and the key stops working at once. An open browser session can no longer fill, and the proxy closes it within about a minute. Pause all agents stops every key from filling.","source_url":"https://docs.agentvault.io/dashboard/api-keys","source_title":"Agent Vault docs: API keys","checked":"2026-10-26"},"audit":{"text":"The docs home says an activity log records sessions, fields filled by kind, and refusals with their reasons.","source_url":"https://docs.agentvault.io/","source_title":"Agent Vault docs: What is Agent Vault","checked":"2026-10-26"},"license":{"text":"Not documented as of 2026-10-26. The docs home names Terms of Service and a Privacy Notice and does not name a software license.","source_url":"https://docs.agentvault.io/","source_title":"Agent Vault docs: What is Agent Vault","checked":"2026-10-26"}},{"product":"Alter","listing_slug":null,"lifetime":{"text":"The credentials page says a grant can expire when a grant-level lifetime elapses. OAuth access tokens expire separately, and Alter refreshes them while the grant stays active.","source_url":"https://docs.alterauth.com/concepts/credentials/","source_title":"Alter docs: Credentials","checked":"2026-10-26"},"identity":{"text":"The credentials page says a grant belongs to a user, a group, the system, or a named agent. An OAuth grant can be a user grant, a system grant, or a delegation to an agent.","source_url":"https://docs.alterauth.com/concepts/credentials/","source_title":"Alter docs: Credentials","checked":"2026-10-26"},"sees_secret":{"text":"The credentials page says a grant refers to the encrypted credential and does not contain it. Alter decrypts it, then the SDK or Alter's proxy injects it on the outgoing request. For an end user's own key, the application cannot read the key.","source_url":"https://docs.alterauth.com/concepts/credentials/","source_title":"Alter docs: Credentials","checked":"2026-10-26"},"scoping":{"text":"The credentials page says a provider has allowed API hosts and a delegation policy. A user can set a quota, active hours, and which operations a key may run. Alter says it cannot check a vendor scope, so a key is not refused for lacking one.","source_url":"https://docs.alterauth.com/concepts/credentials/","source_title":"Alter docs: Credentials","checked":"2026-10-26"},"human_approval":{"text":"The credentials page says an end user's own key is not stored until that user approves, and approving can also delegate the grant to an agent.","source_url":"https://docs.alterauth.com/concepts/credentials/","source_title":"Alter docs: Credentials","checked":"2026-10-26"},"revocation":{"text":"The credentials page says an end user or operator can revoke a grant, and the next call raises GrantRevokedError. Deleting a credential revokes every grant it serves.","source_url":"https://docs.alterauth.com/concepts/credentials/","source_title":"Alter docs: Credentials","checked":"2026-10-26"},"audit":{"text":"The audit page says logging is always enabled. It records credential retrievals, policy decisions, grant lifecycle events, and provider calls. Sensitive headers are stripped, and the record stores call metadata rather than the body unless payload capture is turned on.","source_url":"https://docs.alterauth.com/concepts/audit-logs/","source_title":"Alter docs: Audit Logs","checked":"2026-10-26"},"license":{"text":"Not documented as of 2026-10-26. The credentials page and the audit page do not name a software license.","source_url":"https://docs.alterauth.com/concepts/credentials/","source_title":"Alter docs: Credentials","checked":"2026-10-26"}},{"product":"Authsome","listing_slug":null,"lifetime":{"text":"The README says credentials are encrypted at rest and refreshed before expiry. It does not state one lifetime for every credential.","source_url":"https://github.com/agentrhq/authsome/blob/main/README.md","source_title":"Authsome README","checked":"2026-10-26"},"identity":{"text":"The audit page says each event has an identity, the agent handle, and a principal_id for the human or team that owns the vault.","source_url":"https://authsome.ai/docs/reference/audit-log","source_title":"Authsome docs: Audit events","checked":"2026-10-26"},"sees_secret":{"text":"The README says agents never see credentials. The proxy injects headers at request time without exposing secrets in the child process environment.","source_url":"https://github.com/agentrhq/authsome/blob/main/README.md","source_title":"Authsome README","checked":"2026-10-26"},"scoping":{"text":"The README says the proxy matches a provider by its api_url and injects headers for that request. It does not describe a separate permission scope list.","source_url":"https://github.com/agentrhq/authsome/blob/main/README.md","source_title":"Authsome README","checked":"2026-10-26"},"human_approval":{"text":"The README says a person completes login once, and that agents then need access that continues without a person in the loop. It does not state approval of each proxied request.","source_url":"https://github.com/agentrhq/authsome/blob/main/README.md","source_title":"Authsome README","checked":"2026-10-26"},"revocation":{"text":"The audit page includes revocation in credential lifecycle events and lists provider.revoked as an event type. It does not describe the revoke command.","source_url":"https://authsome.ai/docs/reference/audit-log","source_title":"Authsome docs: Audit events","checked":"2026-10-26"},"audit":{"text":"The audit page says Authsome keeps an append-only event log of outbound proxy calls and credential lifecycle events. The log records timestamps, providers, identities, and outcomes, and it does not record tokens or request payloads.","source_url":"https://authsome.ai/docs/reference/audit-log","source_title":"Authsome docs: Audit events","checked":"2026-10-26"},"license":{"text":"The README says the license is MIT.","source_url":"https://github.com/agentrhq/authsome/blob/main/README.md","source_title":"Authsome README","checked":"2026-10-26"}},{"product":"Composio","listing_slug":null,"lifetime":{"text":"The authentication page says Composio refreshes OAuth access tokens before they expire. If a refresh token is revoked or expires, the connection moves to EXPIRED. The page does not state one access-token lifetime.","source_url":"https://docs.composio.dev/docs/authentication","source_title":"Composio docs: Authentication","checked":"2026-10-26"},"identity":{"text":"The authentication page says authentication is per user, identified by a userID you choose, and one user can connect more than one account. It also links a shared connections guide for one connected account used by a controlled set of users.","source_url":"https://docs.composio.dev/docs/authentication","source_title":"Composio docs: Authentication","checked":"2026-10-26"},"sees_secret":{"text":"The authentication page says the user signs in on a hosted Connect Link, and credentials never pass through your app or the model.","source_url":"https://docs.composio.dev/docs/authentication","source_title":"Composio docs: Authentication","checked":"2026-10-26"},"scoping":{"text":"The authentication page says an auth config defines the method, the scopes, and whose credentials are used. A custom auth config is how you request specific scopes.","source_url":"https://docs.composio.dev/docs/authentication","source_title":"Composio docs: Authentication","checked":"2026-10-26"},"human_approval":{"text":"Not documented as of 2026-10-26. The authentication page describes a user signing in on a Connect Link and does not state approval of each tool call.","source_url":"https://docs.composio.dev/docs/authentication","source_title":"Composio docs: Authentication","checked":"2026-10-26"},"revocation":{"text":"The authentication page says if a refresh token is revoked or expires, the connection moves to EXPIRED and the user has to reconnect.","source_url":"https://docs.composio.dev/docs/authentication","source_title":"Composio docs: Authentication","checked":"2026-10-26"},"audit":{"text":"The data retention page says Composio stores tool execution logs, including the toolkit, action, status, user_id, and timing, for up to one year.","source_url":"https://docs.composio.dev/docs/security/data-retention","source_title":"Composio docs: Data retention and handling","checked":"2026-10-26"},"license":{"text":"The composio repository LICENSE file says MIT License, copyright 2025 Sampark Inc.","source_url":"https://github.com/ComposioHQ/composio/blob/master/LICENSE","source_title":"Composio LICENSE","checked":"2026-10-26"}},{"product":"Infisical open source Agent Vault","listing_slug":null,"lifetime":{"text":"The README says a long-running agent gets an agent token, and an orchestrator can mint a short-lived vault-scoped token for a sandbox. It does not state a duration for either token.","source_url":"https://github.com/Infisical/agent-vault/blob/main/README.md","source_title":"Infisical Agent Vault README","checked":"2026-10-26"},"identity":{"text":"The README says you create an agent record, or mint a token for a sandboxed agent, against a vault. It does not state a separate per end user identity.","source_url":"https://github.com/Infisical/agent-vault/blob/main/README.md","source_title":"Infisical Agent Vault README","checked":"2026-10-26"},"sees_secret":{"text":"The README says agents should not possess provider credentials. The proxy substitutes dummy header values, or replaces the auth header, before it forwards the request. The agent environment holds the vault token and those dummy values.","source_url":"https://github.com/Infisical/agent-vault/blob/main/README.md","source_title":"Infisical Agent Vault README","checked":"2026-10-26"},"scoping":{"text":"The README says egress filtering controls which agents can reach which services and API endpoints. Strict deny mode rejects requests that match no service.","source_url":"https://github.com/Infisical/agent-vault/blob/main/README.md","source_title":"Infisical Agent Vault README","checked":"2026-10-26"},"human_approval":{"text":"Not documented as of 2026-10-26. The README does not state a human approval step before a proxied request.","source_url":"https://github.com/Infisical/agent-vault/blob/main/README.md","source_title":"Infisical Agent Vault README","checked":"2026-10-26"},"revocation":{"text":"Not documented as of 2026-10-26. The README describes minting agent tokens and does not state how to revoke one.","source_url":"https://github.com/Infisical/agent-vault/blob/main/README.md","source_title":"Infisical Agent Vault README","checked":"2026-10-26"},"audit":{"text":"The README says request logging lets you inspect authenticated traffic to monitor and diagnose agent behavior.","source_url":"https://github.com/Infisical/agent-vault/blob/main/README.md","source_title":"Infisical Agent Vault README","checked":"2026-10-26"},"license":{"text":"The README says the repository is available under the MIT expat license, except the ee directory, which requires an Infisical license.","source_url":"https://github.com/Infisical/agent-vault/blob/main/README.md","source_title":"Infisical Agent Vault README","checked":"2026-10-26"}},{"product":"Stripe agent keys","listing_slug":null,"lifetime":{"text":"Not documented as of 2026-10-26. The API keys page does not state an automatic lifetime for an agent-tagged restricted key.","source_url":"https://docs.stripe.com/keys","source_title":"Stripe docs: API keys","checked":"2026-10-26"},"identity":{"text":"The MCP page says OAuth is for a client acting on behalf of your Stripe user, and an agent API key is for independent, persistent access. An agent-tagged key is a restricted key on the account.","source_url":"https://docs.stripe.com/mcp","source_title":"Stripe docs: Model Context Protocol","checked":"2026-10-26"},"sees_secret":{"text":"The MCP page says to pass the agent API key as a bearer token from an environment variable when the client does not use OAuth.","source_url":"https://docs.stripe.com/mcp","source_title":"Stripe docs: Model Context Protocol","checked":"2026-10-26"},"scoping":{"text":"The restricted keys page says you select None, Read, or Write for each resource, and that a restricted key is the key type to give an AI agent.","source_url":"https://docs.stripe.com/keys/restricted-api-keys","source_title":"Stripe docs: Restricted API keys","checked":"2026-10-26"},"human_approval":{"text":"The API keys page says agent-tagged keys are subject to approval rules. The default rules, added with the first agent-tagged key, cover payouts, refunds, and account configuration changes.","source_url":"https://docs.stripe.com/keys","source_title":"Stripe docs: API keys","checked":"2026-10-26"},"revocation":{"text":"The MCP page says you can revoke an OAuth session, and an administrator can revoke another user's sessions in the current account and environment. It also says to expire the old key when you replace it.","source_url":"https://docs.stripe.com/mcp","source_title":"Stripe docs: Model Context Protocol","checked":"2026-10-26"},"audit":{"text":"The MCP page points to MCP tool call logs in Workbench.","source_url":"https://docs.stripe.com/mcp","source_title":"Stripe docs: Model Context Protocol","checked":"2026-10-26"},"license":{"text":"Not documented as of 2026-10-26. The API keys page and the MCP page do not name a software license.","source_url":"https://docs.stripe.com/keys","source_title":"Stripe docs: API keys","checked":"2026-10-26"}},{"product":"Vercel Connect","listing_slug":null,"lifetime":{"text":"The tokens page says a token is a short-lived credential, cached in process and refreshed as it approaches expiry. The default validity buffer is 30 seconds. The page does not state one expiry length for every provider.","source_url":"https://vercel.com/docs/connect/concepts/tokens","source_title":"Vercel docs: Provider tokens in Vercel Connect","checked":"2026-10-26"},"identity":{"text":"The tokens page says a token subject can be the application, a specific user, or a jwt-bearer federated subject.","source_url":"https://vercel.com/docs/connect/concepts/tokens","source_title":"Vercel docs: Provider tokens in Vercel Connect","checked":"2026-10-26"},"sees_secret":{"text":"The Connect overview says no provider API key lives in environment variables. getToken returns a short-lived provider access token to the calling code. The tokens page says that code does not handle refresh.","source_url":"https://vercel.com/docs/connect","source_title":"Vercel docs: Vercel Connect","checked":"2026-10-26"},"scoping":{"text":"The tokens page says a request can pass the provider's scopes, resource indicators, and authorization details.","source_url":"https://vercel.com/docs/connect/concepts/tokens","source_title":"Vercel docs: Provider tokens in Vercel Connect","checked":"2026-10-26"},"human_approval":{"text":"The overview says a user authorizes once, and code can then request a refreshable user token. It does not state approval of each later token request.","source_url":"https://vercel.com/docs/connect","source_title":"Vercel docs: Vercel Connect","checked":"2026-10-26"},"revocation":{"text":"The tokens page says you can revoke from the dashboard, the CLI, the SDK, or the REST API. If the provider has a revocation endpoint, Connect calls it. If not, Connect deletes its copy and the provider credential may keep working until it expires.","source_url":"https://vercel.com/docs/connect/concepts/tokens","source_title":"Vercel docs: Provider tokens in Vercel Connect","checked":"2026-10-26"},"audit":{"text":"The observability page says every connector has an Observability tab for token requests, completed authorizations, revoked tokens, and triggers. Enterprise teams also get connector audit logs.","source_url":"https://vercel.com/docs/connect/observability","source_title":"Vercel docs: Vercel Connect observability","checked":"2026-10-26"},"license":{"text":"Not documented as of 2026-10-26. The Connect overview says the product is subject to the Vercel Connect terms and does not name a software license.","source_url":"https://vercel.com/docs/connect","source_title":"Vercel docs: Vercel Connect","checked":"2026-10-26"}}]}