Zum Hauptinhalt springen
POST
/
skills
/
v1
Create a Skill
curl --request POST \
  --url https://api.langdock.com/skills/v1 \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "instructions": "<string>",
  "slug": "<string>",
  "description": "<string>",
  "integrationIds": [
    "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  ]
}
'
import requests

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

payload = {
    "name": "<string>",
    "instructions": "<string>",
    "slug": "<string>",
    "description": "<string>",
    "integrationIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    name: '<string>',
    instructions: '<string>',
    slug: '<string>',
    description: '<string>',
    integrationIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']
  })
};

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 => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'name' => '<string>',
    'instructions' => '<string>',
    'slug' => '<string>',
    'description' => '<string>',
    'integrationIds' => [
        '3c90c3cc-0d44-4b50-8888-8dd25736052a'
    ]
  ]),
  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://api.langdock.com/skills/v1"

	payload := strings.NewReader("{\n  \"name\": \"<string>\",\n  \"instructions\": \"<string>\",\n  \"slug\": \"<string>\",\n  \"description\": \"<string>\",\n  \"integrationIds\": [\n    \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n  ]\n}")

	req, _ := http.NewRequest("POST", 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.post("https://api.langdock.com/skills/v1")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"<string>\",\n  \"instructions\": \"<string>\",\n  \"slug\": \"<string>\",\n  \"description\": \"<string>\",\n  \"integrationIds\": [\n    \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n  ]\n}")
  .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::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"name\": \"<string>\",\n  \"instructions\": \"<string>\",\n  \"slug\": \"<string>\",\n  \"description\": \"<string>\",\n  \"integrationIds\": [\n    \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n  ]\n}"

response = http.request(request)
puts response.read_body
{
  "skill": {
    "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"
  }
}
Nutzt du unsere API über ein Dedicated Deployment? Ersetze einfach api.langdock.com mit der Basis-URL deines Deployments: <deployment-url>/api/public
Erstellt einen Skill in deinem Workspace. Der User, der den API Key erstellt hat, wird Owner des Skills und kann ihn in der UI verwalten. Ausgenommen sind System Skills, Templates und Skill Packs.

Erforderliche Scopes

Dieser Endpoint erfordert den SKILL_API Scope.
Erfordert die Workspace-Berechtigung createSkills.

Request-Parameter

ParameterTypErforderlichBeschreibung
namestringJaSkill-Name. Maximum: 64 Zeichen.
slugstringNeinStabiler Skill-Slug. Nur Kleinbuchstaben, Zahlen und Bindestriche. Maximum: 100 Zeichen.
descriptionstringNeinBeschreibung, wann der Skill angewendet werden soll. Maximum: 1024 Zeichen.
instructionsstringJaSkill-Anweisungen. Maximum: 50000 Zeichen.
integrationIdsstring[]NeinIntegration-UUIDs, die an den Skill angehängt werden. Jede Integration muss in deinem Workspace aktiviert sein.

Beispiel

const axios = require("axios");

async function createSkill() {
  const response = await axios.post(
    "https://api.langdock.com/skills/v1",
    {
      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: []
    },
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
      }
    }
  );

  console.log("Created Skill:", response.data.skill.id);
}

createSkill();

Antwortformat

Erfolgsantwort (201 Created)

{
  skill: {
    id: string;
    name: string;
    slug: string;
    description: string;
    instructions: string;
    integrationIds: string[];
    createdAt: string;
    updatedAt: string;
  };
}

Fehlerbehandlung

StatuscodeBeschreibung
400Ungültiger Request Body oder nicht zugängliche integrationIds
401Ungültiger oder fehlender API Key
403Fehlender SKILL_API Scope, kein Skills-Produktzugriff oder keine Erstellberechtigung
409Skill-Slug-Konflikt
429Rate Limit überschritten
500Interner Serverfehler
Langdock blockiert bewusst Browser-basierte Anfragen, um deinen API-Schlüssel zu schützen und die Sicherheit deiner Anwendungen zu gewährleisten. Weitere Informationen findest du in unserem Guide zu Best Practices für API-Schlüssel.

Autorisierungen

Authorization
string
header
erforderlich

API key as Bearer token. Format "Bearer YOUR_API_KEY"

Body

application/json
name
string
erforderlich

Skill name.

Required string length: 1 - 64
instructions
string
erforderlich

Skill instructions.

Required string length: 1 - 50000
slug
string

Stable Skill slug.

Maximum string length: 100
Pattern: ^[a-z0-9-]+$
description
string

Description used to explain when the Skill should apply.

Maximum string length: 1024
integrationIds
string<uuid>[]

Integration IDs to attach to the Skill.

Antwort

Skill created successfully

skill
object
erforderlich