Update Credential
Rotate a credential’s secret and/or rename it, in place, keeping the
same id so every referencing config picks up the change with no
re-wiring. Because the vault is write-only, rotation is the only way
to change a stored secret. The kind is immutable: a rotated config
must populate the same block as the credential’s existing kind.
Authentication
Enter your API key with the Bearer prefix, e.g. ‘Bearer sk_…’.
Path parameters
Credential id (prefixed external id, cred_...).
Headers
Request
New human-readable label, unique per workspace.
Move the credential between scopes: a proj_... id scopes it to
that project, an explicit null makes it workspace-shared,
omitted leaves it unchanged. Scoping to a project is refused
with 409 cross_project_reference while tools or agents outside
that project still reference the credential (the response lists
them); making it shared always succeeds. A project-pinned API
key may only scope a credential to its own project.
Kind-specific credential payload, used on WRITES only (create and
rotate). Exactly one block is populated — the one named by the
credential’s kind. The secret fields are write-only: they are
accepted here but are NEVER returned on reads — a read returns the
masked CredentialConfigView instead.
Response headers
Response
Workspace-scoped credential identifier (prefixed external id).
Human-readable label, unique per workspace among active credentials.
Discriminates the auth flow a credential carries. The matching
config.<kind> block is the one that must be populated, and the only
one.
oauth2_client_credentials: aclient_idandclient_secretthe platform exchanges at the vendor’stoken_urlfor a short-lived access token (the OAuth2 client-credentials flow). Backs anmcporopenapitool whoseauth.typeisoauth2_client_credentials.bearer: a static token sent asAuthorization: Bearer <token>. Backs anmcporopenapitool whoseauth.typeisbearer, an agent’s custom LLM endpoint key, a custom model’s key, and a messaging channel’s bot token.shared_secret: a secret that is never sent anywhere; an inbound callback’s signature is verified against it, such as a messaging channel’s signing secret.oauth2_jwt: a signing key for the JWT-bearer flow (RFC 7523).basic: a username and password.custom_headers: a set of header names and values.
The vault stores oauth2_jwt, basic and custom_headers, but no
tool auth type references them yet: an mcp or openapi tool
authenticates with bearer or oauth2_client_credentials only.
The masked, read-safe projection of a credential’s config. Returned
on every read (list / get / create / rotate response). Non-secret
fields (token URLs, client ids, issuer, header names) pass through;
each secret is replaced by a *_set boolean. Secret values are never
returned - to change one, rotate it via PATCH /v1/credentials/{credential_id}.
Exactly one block is populated, matching the credential’s kind.
Dependency tracking for a credential: the resources that reference it,
so a rotate/delete can’t silently break a live integration. count is
the total; references lists them (empty when unreferenced).
The project this credential is scoped to (prefixed external id). Null means workspace-shared - usable from every project. Credentials have no Default project.