Skip to content
ajan.io

Docs menu

On this page

Update Skill

Update an existing Skill

Updates an existing Skill in your workspace. Only include the fields you want to change.

Base URL

https://api.ajan.io/skills/v1/{skillId}

Required Scopes

This endpoint requires the SKILL_API scope.

Parameters

Path Parameters

ParameterTypeRequiredDescription
skillIdstringYesUUID of the Skill to update.

Request Body

ParameterTypeDescription
namestringSkill name. Maximum: 64 characters.
slugstringStable Skill slug. Must use lowercase letters, numbers, and dashes. Maximum: 100 characters.
descriptionstringDescription used to explain when the Skill should apply. Maximum: 1024 characters.
instructionsstringSkill instructions. Maximum: 50000 characters.
integrationIdsstring\[]Integration UUIDs to attach to the Skill. Replaces the current integration list. Each integration must be enabled in your workspace.

Example

javascript
const axios = require("axios");

async function updateSkill(skillId) {
  const response = await axios.patch(
    `https://api.ajan.io/skills/v1/${skillId}`,
    {
      description: "Applies the support team's latest tone and escalation rules.",
      instructions: "Write concise replies, include the next best action, and escalate billing or security issues to the account owner."
    },
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
      }
    }
  );

  console.log("Updated Skill:", response.data.skill.updatedAt);
}

updateSkill("550e8400-e29b-41d4-a716-446655440000");

Response Format

Success Response (200 OK)

typescript
{
  skill: {
    id: string;
    name: string;
    slug: string;
    description: string;
    instructions: string;
    integrationIds: string[];
    createdAt: string;
    updatedAt: string;
  };
}

Error Handling

Status CodeDescription
400Invalid request body, missing update fields, or inaccessible integrationIds
401Invalid or missing API key
403Missing SKILL_API scope, Skills product access, or editor access
404Skill not found
409Skill slug conflict
429Rate limit exceeded
500Internal server error

OpenAPI

openapi: 3.0.0
info:
  title: ajan API
  version: 3.0.0
servers:
  - url: https://api.ajan.io
    description: Production
security:
  - bearerAuth: []
paths:
  /skills/v1/{skillId}:
    patch:
      tags:
        - Skills
      summary: Update a Skill
      description: Updates an existing Skill in your workspace.
      operationId: updateSkill
      parameters:
        - $ref: '#/components/parameters/SkillId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSkillRequest'
      responses:
        '200':
          description: Skill updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillResponse'
        '400':
          description: Invalid request body
        '401':
          description: Invalid or missing API key
        '403':
          description: Missing required scope or editor access
        '404':
          description: Skill not found
        '409':
          description: Skill slug conflict
        '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:
    UpdateSkillRequest:
      type: object
      minProperties: 1
      additionalProperties: false
      properties:
        name:
          type: string
          maxLength: 64
          minLength: 1
          description: Skill name.
        slug:
          type: string
          maxLength: 100
          pattern: ^[a-z0-9-]+$
          description: Stable Skill slug.
        description:
          type: string
          maxLength: 1024
          description: Description used to explain when the Skill should apply.
        instructions:
          type: string
          maxLength: 50000
          minLength: 1
          description: Skill instructions.
        integrationIds:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            Integration IDs to attach to the Skill. Replaces the current
            integration list.
    SkillResponse:
      type: object
      required:
        - skill
      properties:
        skill:
          $ref: '#/components/schemas/Skill'
    Skill:
      type: object
      required:
        - id
        - name
        - slug
        - description
        - instructions
        - integrationIds
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the Skill.
        name:
          type: string
          maxLength: 64
          description: Skill name.
        slug:
          type: string
          maxLength: 100
          pattern: ^[a-z0-9-]+$
          description: Stable Skill slug.
        description:
          type: string
          maxLength: 1024
          description: Description used to explain when the Skill should apply.
        instructions:
          type: string
          maxLength: 50000
          description: Skill instructions.
        integrationIds:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            Integration IDs attached to the Skill. Each integration must be
            enabled in your workspace.
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp for Skill creation.
        updatedAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp for the latest Skill update.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key as Bearer token. Format "Bearer YOUR_API_KEY"