Skills
Create a skill version
Requires skills:write.
POST
/
skills
/
{skill_id_or_name}
/
versions
Create a skill version
curl --request POST \
--url https://api.guild.ai/v1/skills/{skill_id_or_name}/versions \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"version_number": "<string>",
"description": "<string>",
"body": "<string>"
}
'import requests
url = "https://api.guild.ai/v1/skills/{skill_id_or_name}/versions"
payload = {
"version_number": "<string>",
"description": "<string>",
"body": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version_number: '<string>',
description: '<string>',
body: JSON.stringify('<string>')
})
};
fetch('https://api.guild.ai/v1/skills/{skill_id_or_name}/versions', 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.guild.ai/v1/skills/{skill_id_or_name}/versions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'version_number' => '<string>',
'description' => '<string>',
'body' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.guild.ai/v1/skills/{skill_id_or_name}/versions"
payload := strings.NewReader("{\n \"version_number\": \"<string>\",\n \"description\": \"<string>\",\n \"body\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.guild.ai/v1/skills/{skill_id_or_name}/versions")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"version_number\": \"<string>\",\n \"description\": \"<string>\",\n \"body\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.guild.ai/v1/skills/{skill_id_or_name}/versions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"version_number\": \"<string>\",\n \"description\": \"<string>\",\n \"body\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"author_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"body": "<string>",
"description": "<string>",
"skill_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_number": "<string>",
"author": "<unknown>",
"skill": "<unknown>",
"type": "<unknown>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
apiKeybearerApiKeyoauth2
API key: key id as the username, secret as the password. An account API key carries the same scopes as an OAuth token and is checked against the scopes listed under oauth2 on each operation. A trigger API key is limited to its trigger's workspace and reaches only the session operations that list this scheme alongside the oauth2 scopes.
Path Parameters
Body
application/json
Response
Successful response
The user or API key that created this skill version.
Full markdown content for this skill version.
Maximum string length:
262144Runtime-facing description that tells the LLM when to activate this skill.
Maximum string length:
8192The skill this version belongs to.
The semantic version number (MAJOR.MINOR.PATCH).
Maximum string length:
64⌘I
Create a skill version
curl --request POST \
--url https://api.guild.ai/v1/skills/{skill_id_or_name}/versions \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"version_number": "<string>",
"description": "<string>",
"body": "<string>"
}
'import requests
url = "https://api.guild.ai/v1/skills/{skill_id_or_name}/versions"
payload = {
"version_number": "<string>",
"description": "<string>",
"body": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version_number: '<string>',
description: '<string>',
body: JSON.stringify('<string>')
})
};
fetch('https://api.guild.ai/v1/skills/{skill_id_or_name}/versions', 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.guild.ai/v1/skills/{skill_id_or_name}/versions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'version_number' => '<string>',
'description' => '<string>',
'body' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.guild.ai/v1/skills/{skill_id_or_name}/versions"
payload := strings.NewReader("{\n \"version_number\": \"<string>\",\n \"description\": \"<string>\",\n \"body\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.guild.ai/v1/skills/{skill_id_or_name}/versions")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"version_number\": \"<string>\",\n \"description\": \"<string>\",\n \"body\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.guild.ai/v1/skills/{skill_id_or_name}/versions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"version_number\": \"<string>\",\n \"description\": \"<string>\",\n \"body\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"author_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"body": "<string>",
"description": "<string>",
"skill_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_number": "<string>",
"author": "<unknown>",
"skill": "<unknown>",
"type": "<unknown>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}