curl -X POST "https://app.runtm.com/api/v1/linear/integration" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123" \
-H "Content-Type: application/json" \
-d '{
"default_github_repo": "acme-corp/backend",
"rate_limit_per_hour": 20,
"project_repo_map": {
"proj_123": "acme-corp/frontend"
}
}'
import requests
resp = requests.post(
"https://app.runtm.com/api/v1/linear/integration",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
json={
"default_github_repo": "acme-corp/backend",
"rate_limit_per_hour": 20,
"project_repo_map": {"proj_123": "acme-corp/frontend"},
},
)
print(resp.json())
const resp = await fetch(
"https://app.runtm.com/api/v1/linear/integration",
{
method: "POST",
headers: {
Authorization: "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
body: JSON.stringify({
default_github_repo: "acme-corp/backend",
rate_limit_per_hour: 20,
project_repo_map: { proj_123: "acme-corp/frontend" },
}),
}
);
const data = await resp.json();
{
"connected": true,
"workspace_name": "Acme Engineering",
"actor_name": "Runtime Bot",
"service_user_id": "usr_xyz",
"default_github_repo": "acme-corp/backend",
"default_template": null,
"default_agent": "claude-code",
"rate_limit_per_hour": 20,
"enabled": true,
"webhook_active": true,
"bot_linear_user_id": "lin_usr_abc",
"project_repo_map": { "proj_123": "acme-corp/frontend" }
}
Linear
Update Integration
Update the Linear integration configuration.
POST
/
api
/
v1
/
linear
/
integration
curl -X POST "https://app.runtm.com/api/v1/linear/integration" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123" \
-H "Content-Type: application/json" \
-d '{
"default_github_repo": "acme-corp/backend",
"rate_limit_per_hour": 20,
"project_repo_map": {
"proj_123": "acme-corp/frontend"
}
}'
import requests
resp = requests.post(
"https://app.runtm.com/api/v1/linear/integration",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
json={
"default_github_repo": "acme-corp/backend",
"rate_limit_per_hour": 20,
"project_repo_map": {"proj_123": "acme-corp/frontend"},
},
)
print(resp.json())
const resp = await fetch(
"https://app.runtm.com/api/v1/linear/integration",
{
method: "POST",
headers: {
Authorization: "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
body: JSON.stringify({
default_github_repo: "acme-corp/backend",
rate_limit_per_hour: 20,
project_repo_map: { proj_123: "acme-corp/frontend" },
}),
}
);
const data = await resp.json();
{
"connected": true,
"workspace_name": "Acme Engineering",
"actor_name": "Runtime Bot",
"service_user_id": "usr_xyz",
"default_github_repo": "acme-corp/backend",
"default_template": null,
"default_agent": "claude-code",
"rate_limit_per_hour": 20,
"enabled": true,
"webhook_active": true,
"bot_linear_user_id": "lin_usr_abc",
"project_repo_map": { "proj_123": "acme-corp/frontend" }
}
Updates settings for an existing Linear integration. Supports partial updates - only provided fields are changed. Requires org admin role.
Required scope:
integrations:write
Requires organization context via the
X-Organization-Id header.string
required
The organization owning the integration.
string
Default GitHub repo for agent sessions (
owner/repo). Set to "" to clear.string
Default sandbox template. Set to
"" to clear.string
Default coding agent (e.g.
"claude-code", "codex").integer
Maximum agent launches per hour. Range: 1–100.
object
Mapping of Linear project IDs to GitHub repos.
boolean
required
Always
true for a successful update.string
Linear workspace name.
string
Updated default repo.
string
required
Updated default agent.
integer
required
Updated rate limit.
curl -X POST "https://app.runtm.com/api/v1/linear/integration" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123" \
-H "Content-Type: application/json" \
-d '{
"default_github_repo": "acme-corp/backend",
"rate_limit_per_hour": 20,
"project_repo_map": {
"proj_123": "acme-corp/frontend"
}
}'
import requests
resp = requests.post(
"https://app.runtm.com/api/v1/linear/integration",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
json={
"default_github_repo": "acme-corp/backend",
"rate_limit_per_hour": 20,
"project_repo_map": {"proj_123": "acme-corp/frontend"},
},
)
print(resp.json())
const resp = await fetch(
"https://app.runtm.com/api/v1/linear/integration",
{
method: "POST",
headers: {
Authorization: "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
"Content-Type": "application/json",
},
body: JSON.stringify({
default_github_repo: "acme-corp/backend",
rate_limit_per_hour: 20,
project_repo_map: { proj_123: "acme-corp/frontend" },
}),
}
);
const data = await resp.json();
{
"connected": true,
"workspace_name": "Acme Engineering",
"actor_name": "Runtime Bot",
"service_user_id": "usr_xyz",
"default_github_repo": "acme-corp/backend",
"default_template": null,
"default_agent": "claude-code",
"rate_limit_per_hour": 20,
"enabled": true,
"webhook_active": true,
"bot_linear_user_id": "lin_usr_abc",
"project_repo_map": { "proj_123": "acme-corp/frontend" }
}