curl "https://app.runtm.com/api/github-app/installations/inst_01J.../repos?page=1&per_page=30" \
-H "Authorization: Bearer runtm_xxx"
import requests
installation_id = "inst_01J..."
resp = requests.get(
f"https://app.runtm.com/api/github-app/installations/{installation_id}/repos",
params={"page": 1, "per_page": 30},
headers={"Authorization": "Bearer runtm_xxx"},
)
print(resp.json())
const installationId = "inst_01J...";
const resp = await fetch(
`https://app.runtm.com/api/github-app/installations/${installationId}/repos?page=1&per_page=30`,
{
headers: {
Authorization: "Bearer runtm_xxx",
},
}
);
const data = await resp.json();
{
"repos": [
{
"id": 987654,
"name": "backend",
"full_name": "acme-corp/backend",
"private": true,
"description": "Main backend API",
"default_branch": "main",
"html_url": "https://github.com/acme-corp/backend",
"language": "Python",
"updated_at": "2026-05-09T12:00:00Z",
"size": 15400
}
],
"total_count": 12,
"page": 1,
"per_page": 30,
"has_next": false
}
GitHub App
Installation Repos
List repos for a specific GitHub App installation.
GET
/
api
/
github-app
/
installations
/
{installation_id}
/
repos
curl "https://app.runtm.com/api/github-app/installations/inst_01J.../repos?page=1&per_page=30" \
-H "Authorization: Bearer runtm_xxx"
import requests
installation_id = "inst_01J..."
resp = requests.get(
f"https://app.runtm.com/api/github-app/installations/{installation_id}/repos",
params={"page": 1, "per_page": 30},
headers={"Authorization": "Bearer runtm_xxx"},
)
print(resp.json())
const installationId = "inst_01J...";
const resp = await fetch(
`https://app.runtm.com/api/github-app/installations/${installationId}/repos?page=1&per_page=30`,
{
headers: {
Authorization: "Bearer runtm_xxx",
},
}
);
const data = await resp.json();
{
"repos": [
{
"id": 987654,
"name": "backend",
"full_name": "acme-corp/backend",
"private": true,
"description": "Main backend API",
"default_branch": "main",
"html_url": "https://github.com/acme-corp/backend",
"language": "Python",
"updated_at": "2026-05-09T12:00:00Z",
"size": 15400
}
],
"total_count": 12,
"page": 1,
"per_page": 30,
"has_next": false
}
Returns repositories accessible to a specific GitHub App installation with pagination. If the installation no longer exists on GitHub, the stale record is automatically removed.
Required scope:
integrations:read
string
required
Internal installation ID (not GitHub’s installation ID).
integer
default:"1"
Page number. Starts at 1.
integer
default:"30"
Number of repos per page. Range: 1–100.
RepoInfo[]
required
List of repositories.
integer
required
Total number of repos in this installation.
integer
required
Current page number.
integer
required
Results per page.
boolean
required
Whether there are more pages.
curl "https://app.runtm.com/api/github-app/installations/inst_01J.../repos?page=1&per_page=30" \
-H "Authorization: Bearer runtm_xxx"
import requests
installation_id = "inst_01J..."
resp = requests.get(
f"https://app.runtm.com/api/github-app/installations/{installation_id}/repos",
params={"page": 1, "per_page": 30},
headers={"Authorization": "Bearer runtm_xxx"},
)
print(resp.json())
const installationId = "inst_01J...";
const resp = await fetch(
`https://app.runtm.com/api/github-app/installations/${installationId}/repos?page=1&per_page=30`,
{
headers: {
Authorization: "Bearer runtm_xxx",
},
}
);
const data = await resp.json();
{
"repos": [
{
"id": 987654,
"name": "backend",
"full_name": "acme-corp/backend",
"private": true,
"description": "Main backend API",
"default_branch": "main",
"html_url": "https://github.com/acme-corp/backend",
"language": "Python",
"updated_at": "2026-05-09T12:00:00Z",
"size": 15400
}
],
"total_count": 12,
"page": 1,
"per_page": 30,
"has_next": false
}