Save a secret. The value is sealed and never returned.

POST/o/{org}/secrets
View .md

kind: env sets the environment variable name on every session that uses it; name follows environment-variable rules and may not be one Rush sets itself. kind: header never reaches the session's environment: E2B's egress proxy adds header_name: header_format(value) to the session's HTTPS requests to each host in targets, outside the sandbox. Basic {value} takes username:password and encodes it. A header secret's name is a label (letters, digits, ., -, _). kind: login takes one https origin in targets plus username, password and an optional base32 totp_secret. Its value is never in the session's environment or conversation: the agent runs rush-sign-in <name> and Rush types it into the session's browser on that origin only. The agent shares that browser, so this keeps the value out of the transcript, not out of the sandbox. project_id is required: the secret reaches every session in that Project.

Authenticate with a signed-in session token (an API key cannot call this route).

Path parameters

orgstringrequired

The org's slug or id. A caller with no role in the org gets 404.

Request body

project_idstringrequired

A Project of this org; every session in it gets the secret.

Format uuid
namestringrequired
at most 128 characters
kindstringoptional
One ofenvheaderloginDefault "env"
valuestringrequired
at most 32768 characters
descriptionstringoptional
at most 500 characters
targetsarray of stringoptional

header only: bare lowercase hostnames, such as api.stripe.com (no scheme, port, path, wildcard or IP).

header_namestringoptional

header only: the header to set; Host, Content-Length and hop-by-hop headers are refused.

header_formatstringoptional

header only.

One of{value}Bearer {value}Basic {value}
usernamestringoptional

login only.

at most 1024 characters
passwordstringoptional

login only.

at most 1024 characters
totp_secretstringoptional

login only: the base32 two-factor setup key.

Responses

201Saved.
dataSecretrequired

A secret without its value.

13 fields
idstringrequired
Format uuid
namestringrequired
kindstringrequired
One ofenvheaderlogin
descriptionstringrequired
project_idstringrequired
Format uuid
targetsarray of stringrequired

Hosts (header) or one origin (login); empty for env.

header_namestring | nulloptional
header_formatstring | nulloptional
has_totpbooleanrequired
created_bystring | nullrequired

Null once the member who added it has deleted their account; the secret stays with the Project.

Format uuid
created_atstringrequired
Format date-time
value_updated_atstringrequired
Format date-time
last_used_atstring | nulloptional
Format date-time
409SECRET_NAME_TAKEN: a secret with this name already exists in the same scope.
errorstringoptional

A sentence for a person.

codestringoptional

Stable machine code, e.g. AUTH_FAILED, NOT_FOUND, VALIDATION_ERROR, RATE_LIMITED, TOKEN_LIMIT_REACHED.

error_codestringoptional

The machine code on routes that name it this way.

messagestringoptional
requestIdstringoptional
422SECRET_PROJECT_REQUIRED, SECRET_PROJECT_NOT_IN_ORG, SECRET_NAME_INVALID, SECRET_VALUE_INVALID, SECRET_KIND_INVALID, SECRET_TARGET_INVALID or SECRET_DESCRIPTION_INVALID.
errorstringoptional

A sentence for a person.

codestringoptional

Stable machine code, e.g. AUTH_FAILED, NOT_FOUND, VALIDATION_ERROR, RATE_LIMITED, TOKEN_LIMIT_REACHED.

error_codestringoptional

The machine code on routes that name it this way.

messagestringoptional
requestIdstringoptional