---
title: "Uploads a skill file."
method: POST
path: "/agents/skills/{skillId}/files"
tags: ["agentSkills"]
---

# Uploads a skill file.

`POST /agents/skills/{skillId}/files`

Uploads or replaces a bundled file. The relative path defaults to the uploaded file name and can be overridden with the relativePath query parameter, for example scripts/sync.py.

<Check title="Required Permissions" icon="key">Any authenticated user.</Check>

## Path parameters

- `skillId` string, uuid, required

## Query parameters

- `relativePath` string

## Response `200`

OK

- SkillFileResponseModel — Represents a bundled skill file in API responses.
  - `relativePath` string, nullable — The path of the file relative to the skill root (for example "scripts/sync.py").
  - `sizeBytes` integer — The file size in bytes.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found

## Changes

- **2026-09-20** `5332322ffca3` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/awork-io/apis/api-v1-reference/changes/agents/skills/:skillId/files/post.md)

---

[API](https://skmtc.dev/awork-io/apis/api-v1-reference.md) · [All operations](https://skmtc.dev/awork-io/apis/api-v1-reference/llms.txt) · [OpenAPI document](https://skmtc.dev/awork-io/apis/api-v1-reference/revisions/eadefd26df12?raw)
