curl --request GET \
--url https://api.decimal.ai/api/v1/registry/install/bundles/{version_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.decimal.ai/api/v1/registry/install/bundles/{version_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.decimal.ai/api/v1/registry/install/bundles/{version_id}', 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://api.decimal.ai/api/v1/registry/install/bundles/{version_id}",
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://api.decimal.ai/api/v1/registry/install/bundles/{version_id}"
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://api.decimal.ai/api/v1/registry/install/bundles/{version_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decimal.ai/api/v1/registry/install/bundles/{version_id}")
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{
"skill_id": "<string>",
"version_id": "<string>",
"install_name": "<string>",
"render": {
"format": 123,
"hash": "<string>",
"variant": "<string>"
},
"body_sha256": "<string>",
"description_sha256": "<string>",
"invocation": "<string>",
"files": [
{
"path": "<string>",
"sha256": "<string>",
"size": 123,
"mode": "<string>",
"encoding": "<string>",
"content": "<string>"
}
],
"unavailable": [
{
"path": "<string>",
"reason": "<string>"
}
],
"policy_notes": [
"<string>"
]
}Get the files of one public skill rendering, without an API key
The anonymous twin of GET /install/bundles/{version_id}: public skills only, the
foreign variant only. Cached publicly for five minutes.
curl --request GET \
--url https://api.decimal.ai/api/v1/registry/install/bundles/{version_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.decimal.ai/api/v1/registry/install/bundles/{version_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.decimal.ai/api/v1/registry/install/bundles/{version_id}', 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://api.decimal.ai/api/v1/registry/install/bundles/{version_id}",
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://api.decimal.ai/api/v1/registry/install/bundles/{version_id}"
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://api.decimal.ai/api/v1/registry/install/bundles/{version_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decimal.ai/api/v1/registry/install/bundles/{version_id}")
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{
"skill_id": "<string>",
"version_id": "<string>",
"install_name": "<string>",
"render": {
"format": 123,
"hash": "<string>",
"variant": "<string>"
},
"body_sha256": "<string>",
"description_sha256": "<string>",
"invocation": "<string>",
"files": [
{
"path": "<string>",
"sha256": "<string>",
"size": 123,
"mode": "<string>",
"encoding": "<string>",
"content": "<string>"
}
],
"unavailable": [
{
"path": "<string>",
"reason": "<string>"
}
],
"policy_notes": [
"<string>"
]
}Authorizations
Enter your API key (e.g. dai_sk_test_key_001)
Path Parameters
The skill version, from resolve or the lock.
Query Parameters
The folder name to render into name:: either install name the resolve answer gave, or the name a project already locked.
The rendering to serve (render.hash from resolve, or the lock's). Omit for the current one.
128Exactly this format.
Formats the client reads, repeated or comma-separated (default 1); the highest one supported is served.
authored or foreign; default: authored for your organization's own original skill, foreign otherwise.
Who is fetching (cli, sdk, plugin, ...).
Why (add, install, frozen, update, ...).
Response
Successful Response
Show child attributes
Show child attributes
model, or user for a skill only a person may invoke.
SKILL.md first, then attachments by path.
Show child attributes
Show child attributes
Files listed but not served (binary attachments, a nested SKILL.md).
Show child attributes
Show child attributes