curl "https://app.runtm.com/api/cloud/user/provider-keys/anthropic/resolved" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123"
import requests
response = requests.get(
"https://app.runtm.com/api/cloud/user/provider-keys/anthropic/resolved",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
)
data = response.json()
if data["has_key"]:
print(f"Using {data['source']} key: {data['key_preview']}")
else:
print("No key available - configure one in settings")
const response = await fetch(
"https://app.runtm.com/api/cloud/user/provider-keys/anthropic/resolved",
{
headers: {
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
}
);
const data = await response.json();
if (data.has_key) {
console.log(`Using ${data.source} key: ${data.key_preview}`);
} else {
console.log("No key available");
}
{
"provider": "anthropic",
"has_key": true,
"source": "org_enforced",
"key_preview": "sk-ant-...org1"
}
{
"provider": "anthropic",
"has_key": true,
"source": "user_personal",
"key_preview": "sk-ant-...x7f2"
}
{
"provider": "openai",
"has_key": false,
"source": "none",
"key_preview": null
}
Provider Keys
Resolved Key
Get the resolved provider key after applying the org → user fallback chain
GET
/
api
/
user
/
provider-keys
/
{provider}
/
resolved
curl "https://app.runtm.com/api/cloud/user/provider-keys/anthropic/resolved" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123"
import requests
response = requests.get(
"https://app.runtm.com/api/cloud/user/provider-keys/anthropic/resolved",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
)
data = response.json()
if data["has_key"]:
print(f"Using {data['source']} key: {data['key_preview']}")
else:
print("No key available - configure one in settings")
const response = await fetch(
"https://app.runtm.com/api/cloud/user/provider-keys/anthropic/resolved",
{
headers: {
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
}
);
const data = await response.json();
if (data.has_key) {
console.log(`Using ${data.source} key: ${data.key_preview}`);
} else {
console.log("No key available");
}
{
"provider": "anthropic",
"has_key": true,
"source": "org_enforced",
"key_preview": "sk-ant-...org1"
}
{
"provider": "anthropic",
"has_key": true,
"source": "user_personal",
"key_preview": "sk-ant-...x7f2"
}
{
"provider": "openai",
"has_key": false,
"source": "none",
"key_preview": null
}
Returns the effective provider key for the authenticated user after applying the resolution chain. The platform resolves keys in this order:
- Org enforced key - if the user’s organization has set a key with
enforcedpolicy, it wins - User org key - a personal key the user stored while in an org context
- User personal key - the user’s own key outside any org
Path Parameters
string
required
The provider name. One of:
anthropic, openai, cursor, devin, gemini, copilotHeaders
string
required
Bearer token.
Authorization: Bearer runtm_xxxstring
Include to resolve within an organization context. Omit for personal resolution only.
Response
string
The provider name
boolean
Whether a key was resolved from any source
string
Where the key came from:
org_enforced, user_org, user_personal, or nonestring
Masked key preview. Null if no key resolved.
curl "https://app.runtm.com/api/cloud/user/provider-keys/anthropic/resolved" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123"
import requests
response = requests.get(
"https://app.runtm.com/api/cloud/user/provider-keys/anthropic/resolved",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
)
data = response.json()
if data["has_key"]:
print(f"Using {data['source']} key: {data['key_preview']}")
else:
print("No key available - configure one in settings")
const response = await fetch(
"https://app.runtm.com/api/cloud/user/provider-keys/anthropic/resolved",
{
headers: {
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
}
);
const data = await response.json();
if (data.has_key) {
console.log(`Using ${data.source} key: ${data.key_preview}`);
} else {
console.log("No key available");
}
{
"provider": "anthropic",
"has_key": true,
"source": "org_enforced",
"key_preview": "sk-ant-...org1"
}
{
"provider": "anthropic",
"has_key": true,
"source": "user_personal",
"key_preview": "sk-ant-...x7f2"
}
{
"provider": "openai",
"has_key": false,
"source": "none",
"key_preview": null
}
Scopes
| Method | Required scope |
|---|---|
| GET | integrations:read |