curl --request PUT \
--url https://app.apigene.ai/api/skill/{skill_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"content": "<string>",
"license": "",
"compatibility": "",
"metadata": {},
"allowed_tools": "",
"status": "active",
"scripts": {},
"references": {},
"assets": {}
}
'import requests
url = "https://app.apigene.ai/api/skill/{skill_id}"
payload = {
"name": "<string>",
"description": "<string>",
"content": "<string>",
"license": "",
"compatibility": "",
"metadata": {},
"allowed_tools": "",
"status": "active",
"scripts": {},
"references": {},
"assets": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
content: '<string>',
license: '',
compatibility: '',
metadata: {},
allowed_tools: '',
status: 'active',
scripts: {},
references: {},
assets: {}
})
};
fetch('https://app.apigene.ai/api/skill/{skill_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://app.apigene.ai/api/skill/{skill_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'content' => '<string>',
'license' => '',
'compatibility' => '',
'metadata' => [
],
'allowed_tools' => '',
'status' => 'active',
'scripts' => [
],
'references' => [
],
'assets' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://app.apigene.ai/api/skill/{skill_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"content\": \"<string>\",\n \"license\": \"\",\n \"compatibility\": \"\",\n \"metadata\": {},\n \"allowed_tools\": \"\",\n \"status\": \"active\",\n \"scripts\": {},\n \"references\": {},\n \"assets\": {}\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://app.apigene.ai/api/skill/{skill_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"content\": \"<string>\",\n \"license\": \"\",\n \"compatibility\": \"\",\n \"metadata\": {},\n \"allowed_tools\": \"\",\n \"status\": \"active\",\n \"scripts\": {},\n \"references\": {},\n \"assets\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.apigene.ai/api/skill/{skill_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"content\": \"<string>\",\n \"license\": \"\",\n \"compatibility\": \"\",\n \"metadata\": {},\n \"allowed_tools\": \"\",\n \"status\": \"active\",\n \"scripts\": {},\n \"references\": {},\n \"assets\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"content": "<string>",
"created_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"license": "",
"compatibility": "",
"metadata": {},
"allowed_tools": "",
"status": "active",
"scripts": {},
"references": {},
"assets": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Skill Update
Endpoint to update an existing skill by its ID.
Args: skill_id: The unique identifier of the skill to update. skill_update: The updated skill data.
Returns: Skill: The updated skill object.
Raises: HTTPException 400: If input validation fails HTTPException 404: If the skill with the given ID does not exist. HTTPException 500: If a runtime error occurs during the update process.
curl --request PUT \
--url https://app.apigene.ai/api/skill/{skill_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"content": "<string>",
"license": "",
"compatibility": "",
"metadata": {},
"allowed_tools": "",
"status": "active",
"scripts": {},
"references": {},
"assets": {}
}
'import requests
url = "https://app.apigene.ai/api/skill/{skill_id}"
payload = {
"name": "<string>",
"description": "<string>",
"content": "<string>",
"license": "",
"compatibility": "",
"metadata": {},
"allowed_tools": "",
"status": "active",
"scripts": {},
"references": {},
"assets": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
content: '<string>',
license: '',
compatibility: '',
metadata: {},
allowed_tools: '',
status: 'active',
scripts: {},
references: {},
assets: {}
})
};
fetch('https://app.apigene.ai/api/skill/{skill_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://app.apigene.ai/api/skill/{skill_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'content' => '<string>',
'license' => '',
'compatibility' => '',
'metadata' => [
],
'allowed_tools' => '',
'status' => 'active',
'scripts' => [
],
'references' => [
],
'assets' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://app.apigene.ai/api/skill/{skill_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"content\": \"<string>\",\n \"license\": \"\",\n \"compatibility\": \"\",\n \"metadata\": {},\n \"allowed_tools\": \"\",\n \"status\": \"active\",\n \"scripts\": {},\n \"references\": {},\n \"assets\": {}\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://app.apigene.ai/api/skill/{skill_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"content\": \"<string>\",\n \"license\": \"\",\n \"compatibility\": \"\",\n \"metadata\": {},\n \"allowed_tools\": \"\",\n \"status\": \"active\",\n \"scripts\": {},\n \"references\": {},\n \"assets\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.apigene.ai/api/skill/{skill_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"content\": \"<string>\",\n \"license\": \"\",\n \"compatibility\": \"\",\n \"metadata\": {},\n \"allowed_tools\": \"\",\n \"status\": \"active\",\n \"scripts\": {},\n \"references\": {},\n \"assets\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"content": "<string>",
"created_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"license": "",
"compatibility": "",
"metadata": {},
"allowed_tools": "",
"status": "active",
"scripts": {},
"references": {},
"assets": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
JWT Authorization header using the Bearer scheme. Example: 'Authorization: Bearer {token}'
Path Parameters
Body
Name of the skill
Description of the skill
Full SKILL.md content
Optional license field
Optional compatibility field
Optional metadata dict
Optional allowed-tools field
Status of the skill: active or disabled
Optional scripts/ files: path -> content (per Agent Skills spec)
Show child attributes
Show child attributes
Optional references/ files: path -> content (per Agent Skills spec)
Show child attributes
Show child attributes
Optional assets/ files: path -> content (per Agent Skills spec)
Show child attributes
Show child attributes
Response
Successful Response
Unique identifier for the skill
Name of the skill
Description of the skill
Full SKILL.md content
User who created the skill
The date and time when the skill was created.
The date and time when the skill was last updated.
License field
Compatibility field
Metadata dict
Allowed-tools field
Status of the skill: active or disabled
Optional scripts/ files (path -> content)
Show child attributes
Show child attributes
Optional references/ files (path -> content)
Show child attributes
Show child attributes
Optional assets/ files (path -> content)
Show child attributes
Show child attributes
