Create Credential
Authentication
Enter your API key with the Bearer prefix, e.g. ‘Bearer sk_…’.
Headers
Request
Human-readable label, unique per workspace.
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.
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.
Optional project to scope this credential to (prefixed
proj_... id): a scoped credential is referenceable only from
tools in that project. Omit (or null) for workspace-shared -
usable from every project. An unknown id returns 404
project_not_found. A project-pinned API key creates into its
own project and cannot name the shared tier.
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.