List Skills
curl --request GET \
--url https://api.langdock.com/skills/v1 \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.langdock.com/skills/v1"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.langdock.com/skills/v1', 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",
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.langdock.com/skills/v1"
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.langdock.com/skills/v1")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.langdock.com/skills/v1")
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{
"skills": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"instructions": "<string>",
"integrationIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"nextCursor": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Skills API
List Skills
Retrieve Skills in your workspace
GET
/
skills
/
v1
List Skills
curl --request GET \
--url https://api.langdock.com/skills/v1 \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.langdock.com/skills/v1"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.langdock.com/skills/v1', 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",
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.langdock.com/skills/v1"
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.langdock.com/skills/v1")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.langdock.com/skills/v1")
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{
"skills": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"instructions": "<string>",
"integrationIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"nextCursor": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Returns Skills in your workspace. Use query parameters to paginate, search, or filter by slug.
Base URL
https://api.langdock.com/skills/v1
Dedicated deploymentsReplace
api.langdock.com with <your-deployment-url>/api/public in all requests.Required Scopes
This endpoint requires theSKILL_API scope.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of Skills to return. Default: 50. Maximum: 250. |
cursor | string | No | Cursor from the previous response for pagination. |
query | string | No | Search query for matching Skills. |
slug | string | No | Filter by Skill slug. Must use lowercase letters, numbers, and dashes. |
Example
const axios = require("axios");
async function listSkills() {
const response = await axios.get("https://api.langdock.com/skills/v1", {
params: {
limit: 25,
query: "support"
},
headers: {
Authorization: "Bearer YOUR_API_KEY"
}
});
console.log("Skills:", response.data.skills);
return response.data.nextCursor;
}
listSkills();
Response Format
Success Response (200 OK)
{
skills: Array<{
id: string;
name: string;
slug: string;
description: string;
instructions: string;
integrationIds: string[];
createdAt: string;
updatedAt: string;
}>;
nextCursor?: string;
}
Example Response
{
"skills": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Support Reply Style",
"slug": "support-reply-style",
"description": "Applies the support team's tone and escalation rules.",
"instructions": "Write concise replies, include the next best action, and escalate billing issues to the account owner.",
"integrationIds": [],
"createdAt": "2026-07-06T10:30:00.000Z",
"updatedAt": "2026-07-06T10:30:00.000Z"
}
],
"nextCursor": "550e8400-e29b-41d4-a716-446655440000"
}
Error Handling
| Status Code | Description |
|---|---|
| 400 | Invalid query parameter |
| 401 | Invalid or missing API key |
| 403 | Missing SKILL_API scope or Skills product access |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
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
API key as Bearer token. Format "Bearer YOUR_API_KEY"
Query Parameters
Number of Skills to return.
Required range:
1 <= x <= 250Cursor from the previous response for pagination.
Search query for matching Skills.
Filter by Skill slug.
Maximum string length:
100Pattern:
^[a-z0-9-]+$Was this page helpful?