> ## 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.

# List Skills

> Retrieve Skills in your workspace

Returns Skills in your workspace. Use query parameters to paginate, search, or filter by slug.

## Base URL

```
https://api.langdock.com/skills/v1
```

<Warning>
  **Dedicated deployments**

  Replace `api.langdock.com` with `<your-deployment-url>/api/public` in all requests.
</Warning>

## Required Scopes

This endpoint requires the `SKILL_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

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

```typescript theme={null}
{
  skills: Array<{
    id: string;
    name: string;
    slug: string;
    description: string;
    instructions: string;
    integrationIds: string[];
    createdAt: string;
    updatedAt: string;
  }>;
  nextCursor?: string;
}
```

## Example Response

```json theme={null}
{
  "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 |

<Info>
  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](/administration/api-key-best-practices).
</Info>


## OpenAPI

````yaml GET /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:
    get:
      tags:
        - Skills
      summary: List Skills
      description: Returns Skills in your workspace.
      operationId: listSkills
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 250
            default: 50
          description: Number of Skills to return.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Cursor from the previous response for pagination.
        - name: query
          in: query
          required: false
          schema:
            type: string
          description: Search query for matching Skills.
        - name: slug
          in: query
          required: false
          schema:
            type: string
            maxLength: 100
            pattern: ^[a-z0-9-]+$
          description: Filter by Skill slug.
      responses:
        '200':
          description: Skills returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSkillsResponse'
        '400':
          description: Invalid query parameter
        '401':
          description: Invalid or missing API key
        '403':
          description: Missing required scope or access
        '429':
          description: Rate limit exceeded
        '500':
          description: Internal server error
components:
  schemas:
    ListSkillsResponse:
      type: object
      required:
        - skills
      properties:
        skills:
          type: array
          items:
            $ref: '#/components/schemas/Skill'
        nextCursor:
          type: string
          format: uuid
          description: Cursor for the next page, if more results are available.
    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"

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.