---
title: "Add an AI skill"
method: POST
path: "/ais/{aiId}/skills"
tags: ["Skills"]
---

# Add an AI skill

`POST /ais/{aiId}/skills`

## Request

- Base URL: `https://api.darwin.so/api/v1`
- URL: `https://api.darwin.so/api/v1/ais/{aiId}/skills`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

## Path parameters

- `aiId` string, required

## Request body

- CreateAISkillRequest
  - `name` string, required
  - `slug` string
  - `description` string, nullable
  - `category` 'ai' | 'human' | 'hybrid'
  - `visibility` 'PRIVATE' | 'PUBLIC'
  - `instructions` string
  - `enabledActions` string[]
  - `enabled` boolean
  - `metadata` object

## Response `201`

The added skill.

- object
  - `skill` AISkill, required
    - `id` string, required
    - `aiId` string, nullable, required
    - `name` string, required
    - `slug` string, nullable
    - `description` string, nullable
    - `category` 'ai' | 'human' | 'hybrid', required
    - `source` string, required
    - `visibility` 'PRIVATE' | 'PUBLIC', required
    - `status` string, required
    - `enabled` boolean, required
    - `executable` boolean, required
    - `enabledActions` string[]
    - `instructions` string
    - `version` integer, nullable
    - `versionId` string, nullable
    - `metadata` object
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `400`: The request was invalid.
- `401`: The API key or access token is missing, invalid, expired, or revoked.
- `403`: The principal does not have the required scope or resource access.
- `404`: The resource was not found for this principal.

---

[API](https://skmtc.dev/darwin/apis/darwin-api.md) · [All operations](https://skmtc.dev/darwin/apis/darwin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/darwin/apis/darwin-api/revisions/56166fce7bfb?raw)
