BashBrainTeammatesPricingDevelopersGet a test key

Skills

Skills your Bash may use: upload one, give it new versions, list them.

Send Authorization: Bearer vk_test_... on every call.

RoutesOpen one for every field it takes and answers.

GET/v1/skillsYour company skills, plus the skills Bash already has.

A company skill carries sha256, the hash of its files as uploaded, computed the way the SDKs compute a folder's, so an unchanged folder is never uploaded again.

Your API key, scope setup or all. On the card: deploy. Over HTTP it is made from the contract: fill in every value.

Request3 fields

Query

limitintegerHow many items per page, 1 to 100. Default 20.
Type
integer
cursorstringWhere to go on from: the next_cursor of the page before, unchanged. Absent: the first page.
Type
string
source"company" | "built_in"company (the default): the skills you uploaded. built_in: the skills Bash already has.
Type
"company" | "built_in"
Answers 2002 fields
dataobject[]The items on this page.
object"skill"Always skill.
Type
"skill"
idstring | nullThe skill's id (skl_); null for a skill Bash already has.
Type
string | null
source"company" | "built_in"company: one you uploaded. built_in: one Bash already has.
Type
"company" | "built_in"
slugstringIts name in a deployment: what skills takes for one Bash already has.
Type
string
namestringIts name, from its SKILL.md.
Type
string
descriptionstringWhat it does, from its SKILL.md: Bash reads this to know when to use it.
Type
string
versionstring | nullThe current version's content hash; null for a skill Bash already has.
Type
string | null
sha256string | nullA hash of the files as uploaded, which the SDKs and the CLI compute over a folder the same way, to upload only a folder that changed. Null for a skill Bash already has, and for one uploaded before this field.
Type
string | null
filesobject[]may be absentIts files, on GET /v1/skills/{skill_id}; absent in lists.
pathstringThe file's path inside the skill.
Type
string
bytesintegerIts size, in bytes.
Type
integer
contentstringIts text.
Type
string
created_atstring | nullWhen it was uploaded; null for a skill Bash already has.
Type
string | null
updated_atstring | nullWhen its newest version was uploaded; null for a skill Bash already has.
Type
string | null
next_cursorstring | nullSend it as cursor for the next page; null on the last page.
Type
string | null
HTTP

No sample in your language for this route, so here it is over HTTP.

curl "$VESTRA_BASE_URL/v1/skills" \  -H "Authorization: Bearer $VESTRA_API_KEY"
POST/v1/skillsUpload a skill folder as a zip, or as JSON files.

Your API key, scope setup or all. On the card: deploy. Over HTTP it is made from the contract: fill in every value.

GET/v1/skills/{skill_id}One skill and its files.

Your API key, scope setup or all. On the card: deploy. Over HTTP it is made from the contract: fill in each {…} and every value.

PUT/v1/skills/{skill_id}Upload a new version.

Your API key, scope setup or all. On the card: deploy. Over HTTP it is made from the contract: fill in each {…} and every value.

DELETE/v1/skills/{skill_id}Remove it from every user.

Your API key, scope setup or all. On the card: deploy. Over HTTP it is made from the contract: fill in each {…} and every value.

GET/v1/skills/{skill_id}/versionsEvery version, each with a content hash.

Your API key, scope setup or all. On the card: deploy. Over HTTP it is made from the contract: fill in each {…} and every value.