---
title: "Upload Skill"
method: POST
path: "/workspaces/{workspace_id}/agent/skills:upload"
tags: ["agent-skills"]
---

# Upload Skill

`POST /workspaces/{workspace_id}/agent/skills:upload`

## Request

- Base URL: `https://platform.tracecat.com/api`
- URL: `https://platform.tracecat.com/api/workspaces/{workspace_id}/agent/skills:upload`
- Auth: one of:
  - API key in cookie `fastapiusersauth`
  - HTTP bearer

Create a new skill by importing a full draft file tree.

## Path parameters

- `workspace_id` string, uuid, required

## Request body

- SkillUpload: Payload for importing a full skill draft in one request.
  - `name` string, required
  - `files` SkillUploadFile[], required
    - `path` string, required
    - `content_base64` string, required
    - `content_type` string, nullable

## Response `201`

Successful Response

- SkillRead: Full response model for a workspace skill.
  - `id` string, uuid, required
  - `workspace_id` string, uuid, required
  - `origin` 'workspace'
  - `name` string, required
  - `slug` string, required
  - `description` string, nullable
  - `current_version_id` string, uuid, nullable
  - `folder_id` string, uuid, nullable
  - `tags` TagRead[]
    - `id` string, uuid, required
    - `name` string, required
    - `ref` string, required: Slug-like identifier derived from name, used for API lookups
    - `color` string, nullable: Hex color code
  - `draft_revision` integer, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `deleted_at` string, date-time, nullable
  - `current_version` SkillVersionReadMinimal: Summary response model for published skill versions in list endpoints.
    - `id` string, uuid, required
    - `skill_id` string, uuid, required
    - `workspace_id` string, uuid, required
    - `version` integer, required
    - `manifest_sha256` string, required
    - `file_count` integer, required
    - `total_size_bytes` integer, required
    - `name` string, required
    - `description` string, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `is_draft_publishable` boolean, required
  - `draft_validation_errors` SkillValidationErrorDetail[]
    - `code` string, required
    - `message` string, required
    - `path` string, nullable
  - `draft_file_count` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tracecat/apis/tracecat-api.md) - [All operations](https://skmtc.dev/tracecat/apis/tracecat-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tracecat/apis/tracecat-api/revisions/2efdda25045f?raw)
