# Create a skill

Launch stage: Beta

`POST /api/2.1/unity-catalog/skills`

Creates a skill in a Unity Catalog schema and provisions its managed bundle
 storage. Specify its name in `skill_id`. The request contains an optional
 comment but no bundle bytes. Upload bundle files through the Files API,
 then call FinalizeSkill.

 You must be the owner of the parent schema or have `CREATE_VOLUME` and
 `USE_SCHEMA` on it, plus `USE_CATALOG` on the parent catalog.

API scopes: unity-catalog

## Query parameters

- `parent` (string, required)
  Name of the parent schema.
   Format: `schemas/{catalog}.{schema}`.
   Each `{...}` component is capped at 255 characters individually.
- `skill_id` (string, required)
  Name for the skill, e.g. "basic-math". The server normalizes this
   identifier to lowercase. It is independent of the bundle name read from
   SKILL.md.

## Request body

The skill to create. `comment` is the only accepted client input and may be
 omitted. Do not set `name`; the server derives it from `parent` and
 `skill_id`.
- `name` (string, optional, ID, Immutable)
  Resource name of the skill.
   Format: `skills/{catalog}.{schema}.{skill}`.
   Each `{...}` component is capped at 255 characters individually.
    Server-derived on Create from `parent` +
   `skill_id`; required and immutable on Update/Get/Delete.
- `comment` (string, optional)
  User-provided comment for the skill. Free-text, user-editable via
   UpdateSkill (listed in its `update_mask`). DISTINCT from `description`,
   which is the server-parsed, OUTPUT_ONLY SKILL.md frontmatter value: `comment`
   is the customer's own annotation and is preserved across bundle re-uploads.
   When `comment` is in the update mask, omitting it clears the field, while
   an explicitly empty string is retained.

## Returns

Returns the Skill object.

## Response

```json
{
  "name": "string",
  "bundle_name": "string",
  "description": "string",
  "etag": "string",
  "create_time": "string",
  "update_time": "string",
  "finalize_time": "string",
  "created_by": "string",
  "updated_by": "string",
  "effective_owner": "string",
  "metastore_id": "string",
  "comment": "string"
}
```

