curl -X PATCH https://app.runtm.com/api/knowledge/integrations/ki_01J... \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Prod warehouse (read-only)",
"default_mode": "ask",
"tool_permissions": {
"query": "allow"
}
}'
import requests
integration_id = "ki_01J..."
resp = requests.patch(
f"https://app.runtm.com/api/knowledge/integrations/{integration_id}",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
json={
"display_name": "Prod warehouse (read-only)",
"default_mode": "ask",
"tool_permissions": {"query": "allow"},
},
)
print(resp.json())
const integrationId = "ki_01J...";
const resp = await fetch(
`https://app.runtm.com/api/knowledge/integrations/${integrationId}`,
{
method: "PATCH",
headers: {
Authorization: "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
body: JSON.stringify({
display_name: "Prod warehouse (read-only)",
default_mode: "ask",
tool_permissions: { query: "allow" },
}),
}
);
const data = await resp.json();
{
"integration": {
"id": "ki_01J...",
"organization_id": "org_abc123",
"user_id": null,
"provider": "bigquery",
"auth_method": "service_account",
"display_name": "Prod warehouse (read-only)",
"status": "active",
"has_credentials": true,
"has_oauth_refresh": false,
"oauth_access_expires_at": null,
"provider_metadata": { "project_id": "my-gcp-project" },
"default_mode": "ask",
"tool_permissions": { "query": "allow" },
"connected_by_user_id": "usr_xyz",
"last_used_at": "2026-05-08T12:00:00Z",
"created_at": "2026-04-20T09:30:00Z",
"updated_at": "2026-05-09T18:30:00Z"
}
}
Knowledge
Update Knowledge Integration
Update display name, metadata, or tool permissions on an integration.
PATCH
/
api
/
knowledge
/
integrations
/
{integration_id}
curl -X PATCH https://app.runtm.com/api/knowledge/integrations/ki_01J... \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Prod warehouse (read-only)",
"default_mode": "ask",
"tool_permissions": {
"query": "allow"
}
}'
import requests
integration_id = "ki_01J..."
resp = requests.patch(
f"https://app.runtm.com/api/knowledge/integrations/{integration_id}",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
json={
"display_name": "Prod warehouse (read-only)",
"default_mode": "ask",
"tool_permissions": {"query": "allow"},
},
)
print(resp.json())
const integrationId = "ki_01J...";
const resp = await fetch(
`https://app.runtm.com/api/knowledge/integrations/${integrationId}`,
{
method: "PATCH",
headers: {
Authorization: "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
body: JSON.stringify({
display_name: "Prod warehouse (read-only)",
default_mode: "ask",
tool_permissions: { query: "allow" },
}),
}
);
const data = await resp.json();
{
"integration": {
"id": "ki_01J...",
"organization_id": "org_abc123",
"user_id": null,
"provider": "bigquery",
"auth_method": "service_account",
"display_name": "Prod warehouse (read-only)",
"status": "active",
"has_credentials": true,
"has_oauth_refresh": false,
"oauth_access_expires_at": null,
"provider_metadata": { "project_id": "my-gcp-project" },
"default_mode": "ask",
"tool_permissions": { "query": "allow" },
"connected_by_user_id": "usr_xyz",
"last_used_at": "2026-05-08T12:00:00Z",
"created_at": "2026-04-20T09:30:00Z",
"updated_at": "2026-05-09T18:30:00Z"
}
}
Partially updates a knowledge integration. Only the fields you include in the body are changed; omitted fields are left untouched.
This endpoint does not update credentials - use Rotate Credentials for that.
Required scope:
integrations:write
Requires organization context via the
X-Organization-Id header.string
required
The integration ID to update.
string
required
The organization the integration belongs to.
string
New display name (max 200 characters).
object
Replacement provider-specific configuration.
string
Default tool permission mode:
"auto", "allow", or "ask".object
Per-tool permission overrides. Keys are tool IDs, values are
"auto", "allow", or "ask".KnowledgeIntegrationResource
required
The updated integration resource. See List for the full resource shape.
curl -X PATCH https://app.runtm.com/api/knowledge/integrations/ki_01J... \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Prod warehouse (read-only)",
"default_mode": "ask",
"tool_permissions": {
"query": "allow"
}
}'
import requests
integration_id = "ki_01J..."
resp = requests.patch(
f"https://app.runtm.com/api/knowledge/integrations/{integration_id}",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
json={
"display_name": "Prod warehouse (read-only)",
"default_mode": "ask",
"tool_permissions": {"query": "allow"},
},
)
print(resp.json())
const integrationId = "ki_01J...";
const resp = await fetch(
`https://app.runtm.com/api/knowledge/integrations/${integrationId}`,
{
method: "PATCH",
headers: {
Authorization: "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
body: JSON.stringify({
display_name: "Prod warehouse (read-only)",
default_mode: "ask",
tool_permissions: { query: "allow" },
}),
}
);
const data = await resp.json();
{
"integration": {
"id": "ki_01J...",
"organization_id": "org_abc123",
"user_id": null,
"provider": "bigquery",
"auth_method": "service_account",
"display_name": "Prod warehouse (read-only)",
"status": "active",
"has_credentials": true,
"has_oauth_refresh": false,
"oauth_access_expires_at": null,
"provider_metadata": { "project_id": "my-gcp-project" },
"default_mode": "ask",
"tool_permissions": { "query": "allow" },
"connected_by_user_id": "usr_xyz",
"last_used_at": "2026-05-08T12:00:00Z",
"created_at": "2026-04-20T09:30:00Z",
"updated_at": "2026-05-09T18:30:00Z"
}
}