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>"
}
}
]
}Lists all published versions of a single template, so you can show a version history or resolve the latest. The lookup is scoped to your own templates; another account’s template with the same name is invisible.
For the versions of a curated template, call
GET /templates/global/{namespace}/{name} instead, e.g. https://www.orgo.ai/api/templates/global/system/claude-code.Path parameters
string
required
Template namespace. Your own templates default to
default.string
required
Template name.
Response
array
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"
}
]
}
Errors
| Status | Body | Meaning |
|---|---|---|
401 | { "error": "Invalid API key" } | The Bearer token starts with sk_ but is not a known Orgo key. |
401 | { "error": "Authentication required" } | No Authorization header, or a Bearer token that is not an sk_ key. |
404 | { "error": string } | No template with this namespace and name in your registry. |
500 | { "error": "internal error" } | Unexpected server error. |
503 | { "error": string } | No fleet host is available to serve the template registry. Retry. |
⌘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>"
}
}
]
}