curl -X PUT "https://app.runtm.com/api/cloud/secrets/team" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123" \
-H "Content-Type: application/json" \
-d '{
"secrets": [
{
"name": "DATABASE_URL",
"value": "postgres://user:pass@host:5432/prod",
"description": "Production database"
},
{
"name": "STRIPE_SECRET_KEY",
"value": "sk_live_abc123...",
"description": "Stripe API secret key"
}
]
}'
import requests
response = requests.put(
"https://app.runtm.com/api/cloud/secrets/team",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
json={
"secrets": [
{
"name": "DATABASE_URL",
"value": "postgres://user:pass@host:5432/prod",
"description": "Production database",
},
{
"name": "STRIPE_SECRET_KEY",
"value": "sk_live_abc123...",
"description": "Stripe API secret key",
},
]
},
)
data = response.json()
print(f"Set {data['count']} team secrets")
const response = await fetch(
"https://app.runtm.com/api/cloud/secrets/team",
{
method: "PUT",
headers: {
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
body: JSON.stringify({
secrets: [
{
name: "DATABASE_URL",
value: "postgres://user:pass@host:5432/prod",
description: "Production database",
},
{
name: "STRIPE_SECRET_KEY",
value: "sk_live_abc123...",
description: "Stripe API secret key",
},
],
}),
}
);
const data = await response.json();
console.log(`Set ${data.count} team secrets`);
{
"status": "ok",
"count": 2
}
Team
Set Team Secret
Create or update team secrets for the organization
PUT
/
api
/
secrets
/
team
curl -X PUT "https://app.runtm.com/api/cloud/secrets/team" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123" \
-H "Content-Type: application/json" \
-d '{
"secrets": [
{
"name": "DATABASE_URL",
"value": "postgres://user:pass@host:5432/prod",
"description": "Production database"
},
{
"name": "STRIPE_SECRET_KEY",
"value": "sk_live_abc123...",
"description": "Stripe API secret key"
}
]
}'
import requests
response = requests.put(
"https://app.runtm.com/api/cloud/secrets/team",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
json={
"secrets": [
{
"name": "DATABASE_URL",
"value": "postgres://user:pass@host:5432/prod",
"description": "Production database",
},
{
"name": "STRIPE_SECRET_KEY",
"value": "sk_live_abc123...",
"description": "Stripe API secret key",
},
]
},
)
data = response.json()
print(f"Set {data['count']} team secrets")
const response = await fetch(
"https://app.runtm.com/api/cloud/secrets/team",
{
method: "PUT",
headers: {
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
body: JSON.stringify({
secrets: [
{
name: "DATABASE_URL",
value: "postgres://user:pass@host:5432/prod",
description: "Production database",
},
{
name: "STRIPE_SECRET_KEY",
value: "sk_live_abc123...",
description: "Stripe API secret key",
},
],
}),
}
);
const data = await response.json();
console.log(`Set ${data.count} team secrets`);
{
"status": "ok",
"count": 2
}
Bulk upserts team (organization-scoped) secrets. Values are encrypted before storage and can never be read back. Requires admin or owner role and
X-Organization-Id header.
Required scope: secrets:write
Headers
string
required
Bearer token. Example:
Bearer runtm_xxxstring
required
Organization ID. Required for team secrets.
Body
array
required
Array of secret objects to upsert.
string
required
Secret name (max 255 characters).
string
required
Secret value (1–10240 characters). Encrypted before storage.
string
Optional description (max 500 characters).
Response
string
Operation result (
ok).integer
Number of secrets upserted.
curl -X PUT "https://app.runtm.com/api/cloud/secrets/team" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123" \
-H "Content-Type: application/json" \
-d '{
"secrets": [
{
"name": "DATABASE_URL",
"value": "postgres://user:pass@host:5432/prod",
"description": "Production database"
},
{
"name": "STRIPE_SECRET_KEY",
"value": "sk_live_abc123...",
"description": "Stripe API secret key"
}
]
}'
import requests
response = requests.put(
"https://app.runtm.com/api/cloud/secrets/team",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
json={
"secrets": [
{
"name": "DATABASE_URL",
"value": "postgres://user:pass@host:5432/prod",
"description": "Production database",
},
{
"name": "STRIPE_SECRET_KEY",
"value": "sk_live_abc123...",
"description": "Stripe API secret key",
},
]
},
)
data = response.json()
print(f"Set {data['count']} team secrets")
const response = await fetch(
"https://app.runtm.com/api/cloud/secrets/team",
{
method: "PUT",
headers: {
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
body: JSON.stringify({
secrets: [
{
name: "DATABASE_URL",
value: "postgres://user:pass@host:5432/prod",
description: "Production database",
},
{
name: "STRIPE_SECRET_KEY",
value: "sk_live_abc123...",
description: "Stripe API secret key",
},
],
}),
}
);
const data = await response.json();
console.log(`Set ${data.count} team secrets`);
{
"status": "ok",
"count": 2
}