curl "https://app.runtm.com/api/cloud/org-templates?page_size=10" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123"
import requests
response = requests.get(
"https://app.runtm.com/api/cloud/org-templates",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
params={"page_size": 10},
)
data = response.json()
for t in data["templates"]:
print(f"{t['display_name']} ({t['build_status']})")
const params = new URLSearchParams({ page_size: "10" });
const response = await fetch(
`https://app.runtm.com/api/cloud/org-templates?${params}`,
{
headers: {
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
}
);
const data = await response.json();
data.templates.forEach((t) =>
console.log(`${t.display_name} (${t.build_status})`)
);
{
"templates": [
{
"id": "tmpl_abc123",
"name": "nextjs-starter",
"display_name": "Next.js Starter",
"description": "Pre-configured Next.js template with Tailwind",
"repo_patterns": ["owner/nextjs-*"],
"required_secrets": ["DATABASE_URL"],
"secrets_configured": ["DATABASE_URL"],
"has_all_required": true,
"tier": "starter",
"e2b_template_id": "e2b_tmpl_xyz",
"docker_image": null,
"created_at": "2026-04-15T10:00:00Z",
"updated_at": "2026-05-01T12:00:00Z",
"build_status": "completed",
"build_started_at": "2026-05-01T11:00:00Z",
"build_completed_at": "2026-05-01T11:05:00Z",
"framework": "next",
"github_repo": "owner/nextjs-starter",
"github_branch": "main",
"agents": ["claude-code"],
"e2b_agent_templates": null,
"repos": null,
"build_spec": null,
"workdir": "/home/user/project"
}
]
}
Templates
List Templates
List organization templates with pagination
GET
/
api
/
org-templates
curl "https://app.runtm.com/api/cloud/org-templates?page_size=10" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123"
import requests
response = requests.get(
"https://app.runtm.com/api/cloud/org-templates",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
params={"page_size": 10},
)
data = response.json()
for t in data["templates"]:
print(f"{t['display_name']} ({t['build_status']})")
const params = new URLSearchParams({ page_size: "10" });
const response = await fetch(
`https://app.runtm.com/api/cloud/org-templates?${params}`,
{
headers: {
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
}
);
const data = await response.json();
data.templates.forEach((t) =>
console.log(`${t.display_name} (${t.build_status})`)
);
{
"templates": [
{
"id": "tmpl_abc123",
"name": "nextjs-starter",
"display_name": "Next.js Starter",
"description": "Pre-configured Next.js template with Tailwind",
"repo_patterns": ["owner/nextjs-*"],
"required_secrets": ["DATABASE_URL"],
"secrets_configured": ["DATABASE_URL"],
"has_all_required": true,
"tier": "starter",
"e2b_template_id": "e2b_tmpl_xyz",
"docker_image": null,
"created_at": "2026-04-15T10:00:00Z",
"updated_at": "2026-05-01T12:00:00Z",
"build_status": "completed",
"build_started_at": "2026-05-01T11:00:00Z",
"build_completed_at": "2026-05-01T11:05:00Z",
"framework": "next",
"github_repo": "owner/nextjs-starter",
"github_branch": "main",
"agents": ["claude-code"],
"e2b_agent_templates": null,
"repos": null,
"build_spec": null,
"workdir": "/home/user/project"
}
]
}
Returns a paginated list of organization templates. Templates define pre-configured sandbox environments with custom images, repo patterns, and secrets.
Required scope:
templates:read
Query Parameters
integer
default:"20"
Number of results per page (1–100).
string
Opaque cursor from a previous response for pagination.
Headers
string
required
Bearer token. Example:
Bearer runtm_xxxstring
required
Organization ID. Templates are org-scoped.
Response
array
Array of template resources with metadata, build status, and configuration.
curl "https://app.runtm.com/api/cloud/org-templates?page_size=10" \
-H "Authorization: Bearer runtm_xxx" \
-H "X-Organization-Id: org_abc123"
import requests
response = requests.get(
"https://app.runtm.com/api/cloud/org-templates",
headers={
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
params={"page_size": 10},
)
data = response.json()
for t in data["templates"]:
print(f"{t['display_name']} ({t['build_status']})")
const params = new URLSearchParams({ page_size: "10" });
const response = await fetch(
`https://app.runtm.com/api/cloud/org-templates?${params}`,
{
headers: {
"Authorization": "Bearer runtm_xxx",
"X-Organization-Id": "org_abc123",
},
}
);
const data = await response.json();
data.templates.forEach((t) =>
console.log(`${t.display_name} (${t.build_status})`)
);
{
"templates": [
{
"id": "tmpl_abc123",
"name": "nextjs-starter",
"display_name": "Next.js Starter",
"description": "Pre-configured Next.js template with Tailwind",
"repo_patterns": ["owner/nextjs-*"],
"required_secrets": ["DATABASE_URL"],
"secrets_configured": ["DATABASE_URL"],
"has_all_required": true,
"tier": "starter",
"e2b_template_id": "e2b_tmpl_xyz",
"docker_image": null,
"created_at": "2026-04-15T10:00:00Z",
"updated_at": "2026-05-01T12:00:00Z",
"build_status": "completed",
"build_started_at": "2026-05-01T11:00:00Z",
"build_completed_at": "2026-05-01T11:05:00Z",
"framework": "next",
"github_repo": "owner/nextjs-starter",
"github_branch": "main",
"agents": ["claude-code"],
"e2b_agent_templates": null,
"repos": null,
"build_spec": null,
"workdir": "/home/user/project"
}
]
}