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

# Get Skill File

> Retrieve a stored Skill file by path

Retrieves a stored Skill file by path from your workspace.

## Base URL

```
https://api.langdock.com/skills/v1/{skillId}/files
```

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

<Info>
  Requires viewer access to the Skill.
</Info>

## Parameters

| Parameter | Type   | Required | Description                                                                                                                                                                                          |
| --------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `skillId` | string | Yes      | UUID of the Skill to retrieve.                                                                                                                                                                       |
| `path`    | string | Yes      | Relative path of the file inside the Skill, for example `references/template.md`. Maximum: 255 characters. Absolute paths, drive-prefixed paths, control characters, and `..` segments are rejected. |

The file must be valid UTF-8 and no larger than 512 KB. Readable extensions are `.md`, `.mdx`, `.txt`, `.py`, `.sh`, `.js`, `.ts`, `.json`, `.yaml`, `.yml`, `.toml`, `.csv`, `.xml`, `.xsd`, `.html`, `.css`, and `.svg`. Binary and other unsupported files stay listed on [Get Skill](/api-endpoints/skills/get-skill). This endpoint does not return their contents.

## Example

```javascript theme={null}
const axios = require("axios");

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

  console.log("Content:", response.data.content);
}

getSkillFile(
  "550e8400-e29b-41d4-a716-446655440000",
  "references/template.md"
);
```

## Response Format

### Success Response (200 OK)

```typescript theme={null}
{
  path: string;
  sizeBytes: number;
  extension: string;
  hasScript: boolean;
  sha256: string;
  content: string;
}
```

## Error Handling

| Status Code | Description                                                                                      |
| ----------- | ------------------------------------------------------------------------------------------------ |
| 400         | Invalid Skill ID, invalid path, unsupported file type, invalid UTF-8, or file larger than 512 KB |
| 401         | Invalid or missing API key                                                                       |
| 403         | Missing `SKILL_API` scope or Skills product access                                               |
| 404         | Skill or file not found, or not accessible                                                       |
| 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/{skillId}/files
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/{skillId}/files:
    get:
      tags:
        - Skills
      summary: Get a Skill file
      description: Retrieves a stored Skill file by path from your workspace.
      operationId: getSkillFile
      parameters:
        - $ref: '#/components/parameters/SkillId'
        - name: path
          in: query
          required: true
          description: Relative path of the file inside the Skill.
          schema:
            type: string
            minLength: 1
            maxLength: 255
      responses:
        '200':
          description: File returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillFileContent'
        '400':
          description: >-
            Invalid Skill ID, invalid path, unsupported file type, invalid
            UTF-8, or file larger than 512 KB
        '401':
          description: Invalid or missing API key
        '403':
          description: Missing required scope or access
        '404':
          description: Skill or file not found
        '429':
          description: Rate limit exceeded
        '500':
          description: Internal server error
components:
  parameters:
    SkillId:
      name: skillId
      in: path
      required: true
      description: UUID of the Skill.
      schema:
        type: string
        format: uuid
  schemas:
    SkillFileContent:
      allOf:
        - $ref: '#/components/schemas/SkillFile'
        - type: object
          required:
            - content
          properties:
            content:
              type: string
              description: UTF-8 file contents.
    SkillFile:
      type: object
      required:
        - path
        - sizeBytes
        - extension
        - hasScript
        - sha256
      properties:
        path:
          type: string
          description: Relative path inside the Skill.
        sizeBytes:
          type: integer
          description: File size in bytes.
        extension:
          type: string
          description: Lowercase file extension, including the leading dot.
        hasScript:
          type: boolean
          description: Whether the file is a script file (`.py`, `.sh`, `.js`, or `.ts`).
        sha256:
          type: string
          description: Lowercase SHA-256 hash of the original file bytes.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key as Bearer token. Format "Bearer YOUR_API_KEY"

````