> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langdock.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Skill erstellen

> Erstelle einen neuen Skill in deinem Workspace

<Info>
  **Nutzt du unsere API über ein Dedicated Deployment?** Ersetze einfach `api.langdock.com` mit der Basis-URL deines Deployments: **`<deployment-url>/api/public`**
</Info>

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.

<Info>
  Erfordert die Workspace-Berechtigung `createSkills`.
</Info>

## Request-Parameter

| Parameter        | Typ       | Erforderlich | Beschreibung                                                                                                    |
| ---------------- | --------- | ------------ | --------------------------------------------------------------------------------------------------------------- |
| `name`           | string    | Ja           | Skill-Name. Maximum: 64 Zeichen.                                                                                |
| `slug`           | string    | Nein         | Stabiler Skill-Slug. Nur Kleinbuchstaben, Zahlen und Bindestriche. Maximum: 100 Zeichen.                        |
| `description`    | string    | Nein         | Beschreibung, wann der Skill angewendet werden soll. Maximum: 1024 Zeichen.                                     |
| `instructions`   | string    | Ja           | Skill-Anweisungen. Maximum: 50000 Zeichen.                                                                      |
| `integrationIds` | string\[] | Nein         | Integration-UUIDs, die an den Skill angehängt werden. Jede Integration muss in deinem Workspace aktiviert sein. |

## Beispiel

```javascript theme={null}
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)

```typescript theme={null}
{
  skill: {
    id: string;
    name: string;
    slug: string;
    description: string;
    instructions: string;
    integrationIds: string[];
    createdAt: string;
    updatedAt: string;
  };
}
```

## Fehlerbehandlung

| Statuscode | Beschreibung                                                                           |
| ---------- | -------------------------------------------------------------------------------------- |
| 400        | Ungültiger Request Body oder nicht zugängliche `integrationIds`                        |
| 401        | Ungültiger oder fehlender API Key                                                      |
| 403        | Fehlender `SKILL_API` Scope, kein Skills-Produktzugriff oder keine Erstellberechtigung |
| 409        | Skill-Slug-Konflikt                                                                    |
| 429        | Rate Limit überschritten                                                               |
| 500        | Interner Serverfehler                                                                  |

<Info>
  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](/de/admin/ai-adoption-and-rollout/best-practices/api-key-best-practices).
</Info>


## OpenAPI

````yaml POST /skills/v1
openapi: 3.0.0
info:
  title: Langdock API
  version: 3.0.0
servers:
  - url: https://api.langdock.com
    description: Production
security:
  - bearerAuth: []
paths:
  /skills/v1:
    post:
      tags:
        - Skills
      summary: Create a Skill
      description: Creates a Skill in your workspace.
      operationId: createSkill
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSkillRequest'
      responses:
        '201':
          description: Skill created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillResponse'
        '400':
          description: Invalid request body
        '401':
          description: Invalid or missing API key
        '403':
          description: Missing required scope or create permission
        '409':
          description: Skill slug conflict
        '429':
          description: Rate limit exceeded
        '500':
          description: Internal server error
components:
  schemas:
    CreateSkillRequest:
      type: object
      required:
        - name
        - instructions
      additionalProperties: false
      properties:
        name:
          type: string
          maxLength: 64
          minLength: 1
          description: Skill name.
        slug:
          type: string
          maxLength: 100
          pattern: ^[a-z0-9-]+$
          description: Stable Skill slug.
        description:
          type: string
          maxLength: 1024
          description: Description used to explain when the Skill should apply.
        instructions:
          type: string
          maxLength: 50000
          minLength: 1
          description: Skill instructions.
        integrationIds:
          type: array
          items:
            type: string
            format: uuid
          description: Integration IDs to attach to the Skill.
    SkillResponse:
      type: object
      required:
        - skill
      properties:
        skill:
          $ref: '#/components/schemas/Skill'
    Skill:
      type: object
      required:
        - id
        - name
        - slug
        - description
        - instructions
        - integrationIds
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the Skill.
        name:
          type: string
          maxLength: 64
          description: Skill name.
        slug:
          type: string
          maxLength: 100
          pattern: ^[a-z0-9-]+$
          description: Stable Skill slug.
        description:
          type: string
          maxLength: 1024
          description: Description used to explain when the Skill should apply.
        instructions:
          type: string
          maxLength: 50000
          description: Skill instructions.
        integrationIds:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            Integration IDs attached to the Skill. Each integration must be
            enabled in your workspace.
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp for Skill creation.
        updatedAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp for the latest Skill update.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key as Bearer token. Format "Bearer YOUR_API_KEY"

````