Skip to main content
DELETE
/
skills
/
v1
/
{skillId}
Delete a Skill
curl --request DELETE \
  --url https://api.langdock.com/skills/v1/{skillId} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.langdock.com/skills/v1/{skillId}"

headers = {"Authorization": "Bearer <token>"}

response = requests.delete(url, headers=headers)

print(response.text)
const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.langdock.com/skills/v1/{skillId}', 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.langdock.com/skills/v1/{skillId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
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.langdock.com/skills/v1/{skillId}"

req, _ := http.NewRequest("DELETE", 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.delete("https://api.langdock.com/skills/v1/{skillId}")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.langdock.com/skills/v1/{skillId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "success": true
}
Using our API via a dedicated deployment? Just replace api.langdock.com with your deployment’s base URL: <deployment-url>/api/public
Permanently deletes a Skill from your workspace. This action cannot be undone.

Required Scopes

This endpoint requires the SKILL_API scope.
Requires owner access to the Skill. Workspace admins can also delete Skills through this endpoint.

Path Parameters

ParameterTypeRequiredDescription
skillIdstringYesUUID of the Skill to delete.

Example

const axios = require("axios");

async function deleteSkill(skillId) {
  const response = await axios.delete(
    `https://api.langdock.com/skills/v1/${skillId}`,
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY"
      }
    }
  );

  console.log("Deleted:", response.data.success);
}

deleteSkill("550e8400-e29b-41d4-a716-446655440000");

Response Format

Success Response (200 OK)

{
  success: true;
}

Error Handling

Status CodeDescription
400Invalid Skill ID format
401Invalid or missing API key
403Missing SKILL_API scope, Skills product access, or owner access
404Skill not found
429Rate limit exceeded
500Internal server error
Deleting a Skill is permanent. Users, Agents, or Projects that relied on the Skill will no longer have those instructions available.
Langdock intentionally blocks browser-origin requests to protect your API key and ensure your applications remain secure. For more information, please see our guide on API Key Best Practices.

Authorizations

Authorization
string
header
required

API key as Bearer token. Format "Bearer YOUR_API_KEY"

Path Parameters

skillId
string<uuid>
required

UUID of the Skill.

Response

Skill deleted successfully

success
boolean
required
Example:

true