Templates
List template versions
List every published version of one template.
GET
/
templates
/
{namespace}
/
{name}
List template versions
curl --request GET \
--url https://www.orgo.ai/api/templates/{namespace}/{name} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.orgo.ai/api/templates/{namespace}/{name}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.orgo.ai/api/templates/{namespace}/{name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.orgo.ai/api/templates/{namespace}/{name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.orgo.ai/api/templates/{namespace}/{name}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.orgo.ai/api/templates/{namespace}/{name}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.orgo.ai/api/templates/{namespace}/{name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"versions": [
{
"ref": "default/claude-code@1.0.0",
"digest": "<string>",
"published": "2023-11-07T05:31:56Z",
"template": {
"api_version": "orgo.ai/v1",
"template": {
"name": "claude-code",
"version": "1.0.0",
"description": "<string>"
},
"hardware": {},
"secrets": [
{}
],
"vars": {},
"env": {},
"build": {},
"files": "<array>",
"apps": "<array>",
"triggers": "<array>",
"terminal": "<array>",
"hooks": {},
"telemetry": {},
"egress_policy": {},
"streaming": "<array>"
}
}
]
}{
"error": "Invalid API key"
}Lists all published versions of a single template, so you can show a version history or resolve the latest.
Path parameters
Template namespace.
Template name.
Response
Array of template list items, one per published version. Each has
ref, digest, published, and the full template document.Example
curl https://www.orgo.ai/api/templates/default/claude-code \
-H "Authorization: Bearer $ORGO_API_KEY"
import os, requests
r = requests.get(
"https://www.orgo.ai/api/templates/default/claude-code",
headers={"Authorization": f"Bearer {os.environ['ORGO_API_KEY']}"},
)
versions = [v["ref"] for v in r.json()["versions"]]
print(versions)
const r = await fetch(
"https://www.orgo.ai/api/templates/default/claude-code",
{ headers: { Authorization: `Bearer ${process.env.ORGO_API_KEY}` } },
);
const { versions } = await r.json();
console.log(versions.map((v) => v.ref));
Response
{
"versions": [
{
"ref": "default/claude-code@1.0.0",
"digest": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2",
"published": "2026-06-08T17:00:00Z"
}
]
}
⌘I
List template versions
curl --request GET \
--url https://www.orgo.ai/api/templates/{namespace}/{name} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.orgo.ai/api/templates/{namespace}/{name}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.orgo.ai/api/templates/{namespace}/{name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.orgo.ai/api/templates/{namespace}/{name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.orgo.ai/api/templates/{namespace}/{name}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.orgo.ai/api/templates/{namespace}/{name}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.orgo.ai/api/templates/{namespace}/{name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"versions": [
{
"ref": "default/claude-code@1.0.0",
"digest": "<string>",
"published": "2023-11-07T05:31:56Z",
"template": {
"api_version": "orgo.ai/v1",
"template": {
"name": "claude-code",
"version": "1.0.0",
"description": "<string>"
},
"hardware": {},
"secrets": [
{}
],
"vars": {},
"env": {},
"build": {},
"files": "<array>",
"apps": "<array>",
"triggers": "<array>",
"terminal": "<array>",
"hooks": {},
"telemetry": {},
"egress_policy": {},
"streaming": "<array>"
}
}
]
}{
"error": "Invalid API key"
}